<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="Fawcett">

  <btitle>Master's Projects</btitle>
  <theme src="ResearchTheme.css" />

  <visible>
  <title>Master's Projects</title>
  <revised>11 July 2004</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="fawcett.jpg" size="200" />
  <caption></caption>

  <quote source="Charles Wadsworth">
    By the time a man realizes that maybe his father was right, 
    he usually has a son who thinks he's wrong.
  </quote>

  <html><a name="contents"/></html>

    Master's Projects are required for the Master of Science in Computer Engineering and Master of Science in 
    Electrical Engineering programs.  A project is not required for a Master of Science in Computer Science degree.
    Master's Projects are awarded no credits, but you must register for them (at no cost).

  <section title="Distinction between a Master's Project and Thesis">
    The scope of a Master's Project is approximately equivalent to a software design course project, e.g., 
    CSE687, <u>plus</u>
    a report.  The report is like a C-Specification, but a little less formal.  So, you should expect to spend 20
    to 30 hours on an implementation and another 10 to 20 hours on a report.  You have satisfied this requirement when
    your faculty advisor and Program Director approve the project.  Note that there are other
    forms of Master's Projects, discussed below in items 2 and 3.
    <p/>
    A <ifile title="Master's Theses">MastersTheses.xml</ifile> is much more work.  You should expect to spend 
    six months of half time work conducting a research project and documenting your results.
  </section>

  <section title="Project Topics">
  For students who perpare a Master's Project under my direction,
  these projects may take any of the forms:
  <olist>
    <litem>Software project on some interesting topic, submitted with a comprehensive report.</litem>
    <litem>
      Survey paper on a significant technology that you may not have addressed in your program, but is
      something you want to learn about.
    </litem>
    <litem>
      White paper that explores some technical area in detail.
    </litem>
  </olist> 
  The primary difference between the survey and whitepaper options is a matter of breadth versus depth.
  </section>
  
  <section title="Requirements">
  I have two main requirements for this work:
  <olist>
    <litem>
      You should explore some area that is new enough to you that you learn something significant.
      Pick a topic that interests you.
    </litem>
    <litem>
      The project should involve about as much work as any of the class projects you do in my courses
      and must also be documented by a report that, for software projects, is structured much like a 
      software Design Document.
    </litem>
  </olist>
  I prefer students to select their own topics, rather that have me assign one.  I have too many students
  concurrently working on projects to give each one a unique topic.  By this point in your program you 
  should be able to identify an interesting topic.  Below is a link to topics to think about.
  </section>

  <isection title="Topic Ideas:">&#160;&#160;&#160;
    <file title="Projects Page">Projects.xml</file>
  </isection>

  <section title="Remediation for Data Structures and Algorithms">
    <note>
      This year I have had a huge number of requests to supervise MS Projects that will, in part, be used to
      waive a requirement for remediation of CSE382.  Due to the large volume of requests I am no longer able
      to do this and will accept no more requests of this kind.
      <p/>
      Note that, as always, I am pleased to supervise your MS Projects.  I just will not supervise remediation
      of CSE382 requirements.  Note that you can either take the course, as indicated in your acceptance letter,
      or you can take the exemption examination which is given every year.
      <p/>
      I've left the instructions for remediation on this page for the students with whom I have already agreed
      to supervise remediation.  But I will not accept any more, this semester, or later.
    </note>
    <p/>
    Students who have been levied a remedial program requirement to take CSE382 - Data Structures and Algorithms
    may satisfy this requirement by preparing a Master's Project that demonstrates the requisite knowledge.  Here are
    the steps necessary to complete this process:
    <ulist>
      <litem>
        See me regarding your interest in acquiring the required background via a Master's Project.  I will discuss the
        project with you and, should you wish to proceed, I will notify Dr. Hartmann and Barbara Hazard that you 
        are working on the project under my supervision and that I will not approve your report until you demonstrate
        the required knowledge.
      </litem>
      <litem>
        You purchase or borrow the text used in CSE382, e.g., Algorithms, parts 1-4, Sedgewick, Addison-Wesley.  Bring
        the text to my office and I will assign material for you to skim and material to read thoroughly.
      </litem>
      <litem>
        Complete an implementation, in either C++ or C#, the following:
        <olist>
          HashTable that supports either Standard C++ iterators or a .Net IEnumerable interface.
        </olist>
        <olist>
          External Sort - use the Merge Sort algorithm
        </olist>
        <olist>
          A Symbol Table based on a Balanced Binary Tree - red/black algorithm recommended.
        </olist>
      </litem>
      <litem>
        You are required to measure the performance of your implementations and compare the results you achieve
        with results predicted by a complexity analysis, as described in Sedgewick, Chapter 2 and analysis in each of the
        chapters related to the topics above.  Specifically, you plot the ratio of time to carry out the computation with
        10, 100, 1000, and 10,000 items and compare with the theoretical asymptotic ratios.
      </litem>
      <litem>
        Meet with me to present your results.  I will question you about your analysis to ensure that you have the
        required knowledge to satisfy the remedial requirement.  <note>Please note that I will not recommend waiving
        the CSE382 requirement without this presentation.</note>
      </litem>
      <litem>
        When I am satisfied that your report describes work you completed and demostrates the requiste knowledge
        then I will approve it and turn it in to the department.  that will complete the process.
      </litem>
    </ulist>
    </section>

  </visible>
</courses>
