What is this project/thesis I have to do?

A project or thesis is required of all candidates for the Masters degree in Computer Science. The following FAQ (Frequently Asked Questions list) hopes to answer many of the common questions students have about the requirement.

  • What's the difference between a project and a thesis?

    Both the project and the thesis are two-term course sequences that let you independently study a topic of significant scope.

    The thesis is more research-oriented. You study the existing literature about a topic, come up with your own ideas for broadening or expanding the field in a new way, and test out your hypotheses if applicable (e.g. writing a program to see if you get results), and then culminating all of your work into an original paper (a thesis) describing your background research, experiments, and results.

    The project is implementation-oriented. One doesn't come up with original research, but studies existing techniques to develop an application of significant size (usually something of a much bigger scope than in any programming class). For example, a recent Masters student implemented the game of Go in Java. This involved learning a lot about AI and some advanced aspects of the language.

  • Is this requirement in addition to the nine courses I have to take?

    No. It counts as 2 of the 9. So the degree requirements can be met by taking 7 "real" (i.e. lecture-style) courses, and then taking two terms of either the project or the thesis. This, of course, assumes that the 7 lecture-style courses meet all the other requirements for graduation.

  • Is the project/thesis the same as the graduate seminar?

    No. The graduate seminar is a separate requirement. More information can be found in the Graduate Seminar description.

  • Can this requirement be waived?

    Well, sort of. It is possible to substitute two lecture-style courses for the project/thesis requirement. The requirement can be satisfied if, in your job, you have already been involved with large-scale programming projects. "involved" means that you have been actively programming, debugging, expanding, testing, and maintaining a large piece of software (sometimes as part of a team). You would need to present a writeup to the graduate advisor detailing your involvement with the project(s) (1-2 pages). If accepted, you won't have to do a project or thesis, but you would need to take two more courses instead. At least one of these two substituted courses must be of 200-level, bringing the requirement up to a total of four 200-level courses for the student who exercises this option.

  • How do I choose a topic?

    Students typically choose topics that are extensions of what they're doing at work -- something that might be useful at work but is not part of the job assignment, or something that will let them learn material they haven't learned in classes. Another option is to extend something interesting from a course, or to build upon faculty research.

    The scope of the project should be comparable to two courses worth of work: at 4 class hours/week and 8-12 hours/week outside class, that amounts to 240-320 person-hours of work for the project or thesis. That's the equivalent of 6-8 weeks of full-time work.

  • Do I need to get my topic approved?

    Yes, you should pitch your topic to the graduate advisor by writing a project or thesis proposal. You can use this proposal template (Word doc). Once approved, you will be matched up with the faculty member nearest to your area of interest. That faculty member will act as your advisor on the project or thesis.

  • Is there a list of previous theses/projects I can look at for inspiration?

    Yes. Here's our list of recent project abstracts.

  • Do I have to "defend" my project or thesis?

    I wouldn't call it a formal defense like one does for a doctorate, but you do have to give a presentation lasting between 30-60 mins at the end of your two terms. This presentation describes your research and shows off your results. This presentation is open to the public. You should discuss your presentation date, time, and content with your project advisor (not the graduate advisor).

  • When do I need to register for the project/thesis?

    One normally registers for the project/thesis during the last year of the program. There is some flexibility in this, though. If the faculty advisor is available and willing, you can also register for one of the project/thesis courses during a summer term. The two project/thesis courses should be taken consecutively.

  • How do I register?

    Register for CSc 294 and 295 if doing a project. Register for CSc 296 and 297 if doing a thesis.
    CS Masters Program Homepage