CS11 Projects

CS11 students can choose to work on a personal project, instead of taking a specific language track. The best projects involve learning a new language (e.g. Erlang), technology (e.g. relational databases), or problem domain (e.g. physics simulation). However, a word of warning - it's best to only have one unknown in your project; otherwise you may find yourself overwhelmed.

CS11 projects are run in a manner similar to how real-world software development projects are run, although with significantly less rigor than one would see in quality software development shops. This includes some scoping and planning up-front, and weekly updates to ensure that progress is being made. (You might find this onerous at first, but trust me - good software development companies take this kind of thing much farther!)

Project Outline

The first week's assignment for project students is to complete a brief project outline describing what is going to be done. This outline has two purposes:

This is a real assignment - if an incomplete outline is submitted, fixes will be required.

The parts of the project outline are described on this page. Use it as your guide to create an outline, then send the outline to your CS11 instructor.

Weekly Meetings

Weekly meetings will be held to track progress. These are not optional. Please prepare in advance for these meetings, to make them as effective as possible. To help you do so, you should prepare a short write-up containing the following:

Any new functionality should be demonstrated, if at all possible. Any new code or documentation should be made available for review.

Notice that each week you will state what you intend to focus on in the next week. This means that each week you need to evaluate your current work, and what makes the most sense to focus on next.