Master's Theses
Revised: 5/24/2011
"
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:
-
Introduces your research problem, states your objectives, and summarizes the original
contributions you've made.
-
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.
-
Thorough discussion of one of your main ideas, description of the processes used to get your results,
and a detailed presentation of the results.
-
Repeat for each of your major ideas. For a Master's Thesis there should be perhaps three of these.
-
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:
- Microsoft Research has lots of
topics,
projects, and
demonstrations that may give you ideas.
-
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.
-
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.
-
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:
-
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.
-
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!
-
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.
-
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.
-
C++ Beans, An Experiment in Simplification, Siddhartha Azad, completed October 2002
-
Dynamic Internet Communities : A Comparison between Grid and Peer-to-Peer Computing,
Shawn Dahlen [converted to an
independent study].
-
Performance Comparison of .Net and J2EE for some typical remoting and web service applications,
Srinivas Shilagani [converted to an independent study].