Master's Projects

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 

CSE382-AADS  CSE681-SWMAA  CSE686-IP  CSE687-OOD  CSE775-DO  CSE776-DP  CSE778-AWP  CSE784-SWS 

image file not found


" By the time a man realizes that maybe his father was right, he usually has a son who thinks he's wrong. "
- Charles Wadsworth


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, plus 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.

A Master's Theses is much more work. You should expect to spend six months of half time work conducting a research project and documenting your results.

Project Topics

The Department of Electrical Engineering and Computer Science has three programs: Computer Engineering, Computer Science, and Electrical Engineering. Of these, the two Engineering programs require completion of a Master's Project as a final step in your academic experience. For students who perpare a Master's Project under my direction, these projects may take any of the forms:
  1. Software project on some interesting topic, submitted with a comprehensive report.
  2. Survey paper on a significant technology that you may not have addressed in your program, but is something you want to learn about.
  3. White paper that explores some technical area in detail.
The primary difference between the survey and whitepaper options is a matter of breadth versus depth.

Requirements

I have two main requirements for this work:
  1. You should explore some area that is new enough to you that you learn something significant. Pick a topic that interests you.
  2. 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.
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 easily identify an interesting topic.

Things to Think About - Starter Topics

While I want you to come up with your own topics, here are a few starters to think about:
  1. Microsoft Research has lots of topicsprojects,  and demonstrations that may give you ideas.
  2. Lucent/Bell Labs Research in Computing 
  3. Object-Oriented Relationship code analyzer - for each class, evaluate its static relationships with others, e.g., public inheritance, inheritance of implementation, composition, aggregation, and using relationships. Also evaluate its dynamic relationships, e.g., for each class, evaluate the types of objects it creates, communicates with, and destroys.
  4. Class diagram plotter - using the results of the previous project (you could team up with a friend to work together on these two projects) draw UML class diagrams from code. You will want to allow the user to assist the layout on a page but you should provide an algorithm for making a first pass at a layout and then allow the user to pull drawing objects around the page without losing their connections.
  5. In CSE687 Project #4 - Dependency Analyzer we did a lot of hueristic grammar evaluation. It would be interesting to use a more formal approach based on specifying the (simplified) grammar needed for type-based dependency analysis using syntax graphs or BNF productions to specify the grammar and reduce them to analysis code by implementing productions, and perhaps, recursive decent parsing.
  6. Software visualization - can you think of interesting ways to display properties of a given set of software files, e.g., size, complexity, density of comments, depth of calling tree, ...
  7. 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.
  8. DirectX - Microsoft has a COM-based technology for displaying complex graphics and synchronizing graphics and sound over time, widely used by the computer gaming industry. The latest beta version has wrappers for .Net. It would be interesting to learn, explore, and document some applications of this technology.
  9. Vector Markup Language - Internet Explorer supports Vector Markup Language (VML) for making line drawings on web pages. This could be very useful for preparing technical drawings to be placed on web pages. You could explore the use of vml for some specific application.
  10. Compatible colors - A color wheel allows a designer to pick compatible, contrasting, warm, cool, and harmonious colors. One interesting project provides the user with a line of colors to select from and returns contrasting and triadic harmonious colors, showing the colors and RGB values.

Projects not used to satisfy the MS Project Requirement

I often have students ask for additional projects to work on over the Summer or during Semesters when they don't have a strenuous schedule. Here are a few suggestions:
  1. MFC tutorial
    Using the excellent textbook "Programming Windows with MFC", Jeff Prosise, Microsoft Press, 2001, (on reserved in the Sci/Tech library), prepare a set of tutorial presentations. I can make them available on this website and you will learn a lot about how MFC is used to build Windows programs.
  2. Action Item (Bug Tracking) list
    Use a datagrid on a webpage and an SQL database to make action items or bug lists available on the web. Make an editing application, using a web service, to add, edit, or delete entries (this could also be done as part off the Asp application).
  3. Small Business Data Management System
    Create a relational model for a hypothetical small business that provides:

    1. Phone logs for each employee to record notes about business related phone calls.
    2. Calendar with event notification, so an employee can define a notification to be sent back or to another employee at some future date, as a small text message.
    3. Order entry and tracking, based on an orders table, a product table, and a customer table.
    Note that this data management system could be made available as a Winform application talking to an SQL server on a remote machine in the network, as an ASP application, or as a web service.

    It would be nice to build the application as a Winform with several tabs that provide common queries and support data entry based on a DataGrid view.

Remediation for Data Structures and Algorithms

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.

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.

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.

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: