<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="Fawcett">

  <btitle>Master's Theses</btitle>
  <theme src="ResearchTheme.css" />

  <visible>
  <title>Master's Theses</title>
  <revised>29 July 2006</revised>
  
  <hnav/>
  <cnav/>

  <hilight>
    <ifile title="Project Topics">Projects.xml</ifile>&#32;
    <ifile title="Master's Projects">MastersProjects.xml</ifile>&#32;
    <ifile title="Master's Theses">MastersTheses.xml</ifile>&#32;
    <ifile title="Research">research.xml</ifile>&#32;
    <ifile title="References">references.xml</ifile>&#32;
    <ifile title="Cloner">Cloner.xml</ifile>&#32;
    <ifile title="Software Foundry">Foundry.xml</ifile>&#32;
  </hilight>

<!--
  <image src="project.jpg" size="200" />
  <caption></caption>
  -->
  <quote source="Yoda (The Empire Strikes Back)">
     Do, or do not. There is no try.
  </quote>

  <html><a name="contents"/></html>

    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.

  <section title="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:
    <olist>
      <litem>
        Introduces your research problem, states your objectives, and summarizes the original 
        contributions you've made.
      </litem>
      <litem>
        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.
      </litem>
      <litem>
        Thorough discussion of one of your main ideas, description of the processes used to get your results,
        and a detailed presentation of the results.
      </litem>
      <litem>
        Repeat for each of your major ideas.  For a Master's Thesis there should be perhaps three of these.
      </litem>
      <litem>
        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.
        <p/>
        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.
      </litem>
    </olist>
    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.
    <p/>
    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.
  </section>

  <section title="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:
    <olist>
      <litem>
        <ilink title="Microsoft Research">www.research.microsoft.com</ilink> has lots of 
        <ilink title="topics">www.research.microsoft.com/research/topics</ilink>,&#160;
        <ilink title="projects">www.research.microsoft.com/research/projects</ilink>,&#160; and 
        <ilink title="demonstrations">www.research.microsoft.com/research/downloads</ilink> that may give you ideas.
      </litem>
      <litem>
        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 <ilink title="Cooperative Association for Internet Data Analysis">www.caida.org</ilink>.
      </litem>
      <litem>
        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.
      </litem>
      <litem>
        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.
      </litem>
    </olist>
  </section>

  <section title="Current Master's Thesis Work">
    Here is some Master's Thesis work already in progress or completed recently: 
    <olist>
      <litem>
        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.
      </litem>
      <litem>
        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!
      </litem>
      <litem>
        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.
      </litem>
      <litem>
        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.
      </litem>
      <litem>
        C++ Beans, An Experiment in Simplification, Siddhartha Azad, completed October 2002
      </litem>
      <litem>
        Dynamic Internet Communities : A Comparison between Grid and Peer-to-Peer Computing,
        Shawn Dahlen <!-- <ilink title="Shawn Dahlen">www.paragonProject.com/~smdahlen</ilink> --> [converted to an
        independent study].
      </litem>
      <litem>
        Performance Comparison of .Net and J2EE for some typical remoting and web service applications,
        Srinivas Shilagani [converted to an independent study].
      </litem>
    </olist>
  </section>
  
  </visible>
</courses>
