Capstone Project Proposals

The capstone course is the culmination of your efforts in computer science. This is your chance to put together a single project that draws on everything that you’ve learned over the last 3½ years. This page is here to help you put together your proposal.

Scope

Your proposal is expected to draw upon some or all of the material you’ve seen in your courses, but should also involve an independent exploration of new intellectual territory. There are two broad categories of projects:

  1. Those in which students pull together multiple topics from across courses and (hopefully) explore some new domain as part of constructing a large project. For example, you might build a tool that uses networking techniques to fetch content from web pages, stores it in a database, and then applies a machine-learning algorithm to look for patterns or meaning.
  2. Those involving an in-depth investigation of one particular topic but to a much greater extent than you’ve seen it in class. For example, you could propose an improved algorithm for training a neural network, for example, then implement it and rigorously compare its effectiveness to existing approaches.
Regardless of the approach you take, you’ll be expected to write a final report and make an oral presentation at the end of the semester.

Teams

In the real world, programmers and computer scientists work in teams to solve problems. We expect that the vast majority of projects in this class will be done by teams of 2-4 people. Not only will this let you work on your teamwork skills, but it means that you can tackle a larger and more interesting project, of which you will be prouder.

Of course, there are some situations in which a team isn’t the right approach. For example, if you’re doing a “depth-style” research project, it might make more sense to go alone. You might also find that you’ve got a project that you really want to complete but that doesn’t get anyone else excited. However, for the most part you’re expected to work in groups, and you’ll have to justify going solo in your proposal.

Ideas

Start by thinking back on the projects and assignments you’ve done so far. Were any of them particularly enjoyable? What did they have in common? Alternatively, is there anything in one of your classes that you wish you had learned?

Another option is to look forward instead: what would you like to see yourself doing after you graduate? What kinds of projects could you work on that will give you an edge when it comes to interviewing, will give you some direct experience, or will give you a taste of what your chosen field is like.

Another option is to look for a client, and see what needs they have. You could contact your favorite charity in Tacoma and see if they need a custom-made program or app. Or you could find a faculty member or campus group that has a similar need.

Finally, don’t underestimate your fellow senior CS students. One of them might have a great idea, but is looking for partners. Alternatively, just talking to one of them might inspire you to do something related but distinct.

Games

Games are controversial, and require special thought. Some professors have a negative opinion toward games—they seem them as an uninteresting distraction. Others are more nuanced and circumspect.

My opinion of game development is more positive. I'm also aware that some of you would like to do this professionally, and having a game under your belt will give you a leg up during interviews. However, there are many aspects of game development of which you need to be aware.

This is not meant to discourage you. But if you are going to take on this task, you need to do so with your eyes open.

Here are some ideas that might help make a game into an appropriate project:

Past Examples

Here is a list of the projects that were done last year:

Getting Started

You should all start thinking about your projects now. Talk to other people in the class, to propose ideas or solicit partners. Next, run the project by me for tentative approval. Just e-mail me a paragraph or talk to me in person. Finally, when you have that, you can work up a detailed description of your idea. This must include:

You must have an approved idea before you are given an add code.