Master's Theses

Revised: 5/24/2011
Home  Courses  SWTrack  Code  Handouts  StudCult  CoreTech  Books  Articles  Math  Research  TechnicalLinks  Student Projects  CASE Projects  Project Topics  SWDev  WebDev  News  OtherLinks  SiteDesign  Graduates  AllPages  Office Hours  Seminars  Notices  Summer Projects 


Project Topics Master's Projects Master's Theses Research References Cloner Software Foundry

" Do, or do not. There is no try. "
- Yoda (The Empire Strikes Back)

You may elect to do Master's Thesis research for any of our three Master of Science programs. This will count for three to six credits of your program and will also fulfill the requirement for a Master of Science project in the Engineering programs.

Scope of a Master's Thesis

A Master's Theses involves a significant amout of work and creativity. You should expect to spend six months of half time work conducting a research project and documenting your results. A Thesis document is typically 60 to 80 pages and may be structured into the following chapters:
  1. Introduces your research problem, states your objectives, and summarizes the original contributions you've made.
  2. Provides a clear statement of each of your research questions and goals, the approach you've used to investigate the questions, and describes any tools you have used, either of your own design, or acquired from the research community.
  3. Thorough discussion of one of your main ideas, description of the processes used to get your results, and a detailed presentation of the results.
  4. Repeat for each of your major ideas. For a Master's Thesis there should be perhaps three of these.
  5. Conclusions: Provide a detailed summary of the results of the preceding chapters. The most important part follows now - you must draw conclusions which are concerned with the answers to your research questions posed in the second chapter. The value of your thesis lies in the conclusions you make, based on strong arguments and experimental results discussed in the preceding chapters.

    Finally, you discuss future work. This is, esentially, a thank-you to your advisor, that helps him or her to stear other advisees toward follow-on research.

Your Thesis should also provide, at the end, a bibliography, often cited in the body of your work. For a Master's Thesis this should consist of perhaps 20 or 30 papers you have digested as a prelude to your own research.

As you can see from this discussion, you must do more than design some software system, although that may be part of what you do. If so, its purpose is to serve as a test-bed to collect experimental results, not as an end in itself.

Things to Think About - Starter Topics

As a graduate student researcher, you must find your own topics. Here, however, are a few things to think about:
  1. Microsoft Research has lots of topicsprojects,  and demonstrations that may give you ideas.
  2. Software visualization - can you think of interesting ways to display properties of a software system, e.g., size, complexity, density of comments, depth of calling tree, ... The issue here is to find unique ways to characterize and display the complex relationships in a large software system. What I have in mind here is similar to the interesting work done on disclosing relationships between internet sites by the Cooperative Association for Internet Data Analysis.
  3. Text to Speech - Microsoft has available for download its beta Speech SDK, and the World Wide Web Consortium has tutorials and specifications for VXML. You could explore making web pages vocal. There is a lot of interest in making the web accessible for those with handicaps, in this case, for the visually impared.
  4. Scalable Vector Graphics Markup Language (SVGML) - The W3C has a recommendation on a markup language called SVG. Its purpose is to display line drawings efficiently on a web page. Internet Explorer 6.0 does not support SVG natively, but Adobe has a free plug-in for IE6 that does render that markup. This could support some interesting uses of web pages for instruction, collaboration, and help systems.

Current Master's Thesis Work

Here is some Master's Thesis work already in progress or completed recently:
  1. Cross-platform Software Developement using a software repository build according to the Software Matrix paradigm. This work is being conducted by Vijay Appurdai, and we expect him to defend his research work during the Fall of 2006.
  2. Self-Healing Systems using the Software Matrix structure, Anirudha Krishna, completed December 2005. Uses the mediator-based, message-passing structure of the Software Matrix substrate to support an effective means to build self-healing systems. During his defense, in a demonstration, Anirudha presented a distributed system, running different significant functionalities on three computers. We turned the power off one machine and observed the missing components rebuild themselves on one of the two running machines and continue operation. Voila!
  3. Aspect Oriented Programming, using the .Net platform, Ramiswamy Krishna-Chittur, completed April 2005. Uses interception based on context-bound objects to affect AOP operations. Ramiswamy demonstrated the application of AOP to several areas in novel ways, including the development of an AOP debugger that provided some interesting functionalities.
  4. Software Matrix, Riddhiman Ghosh, completed December 2004. This was an experiment using message-passing and broad use of the observer pattern to make software salvage a useful paradigm. By salvage, we mean the lifting of a significant block of one system to be used within another without terminal arterial bleeding.
  5. C++ Beans, An Experiment in Simplification, Siddhartha Azad, completed October 2002
  6. Dynamic Internet Communities : A Comparison between Grid and Peer-to-Peer Computing, Shawn Dahlen [converted to an independent study].
  7. Performance Comparison of .Net and J2EE for some typical remoting and web service applications, Srinivas Shilagani [converted to an independent study].