Create a document that contains each of these sections, and send it to your CS11 instructor. Your document must be in one of the following formats:
Do not submit MSWord documents or PDF files. TeX documents are also a pain.
Identify any aspects of your project that could potentially hinder your progress in completing it. This could include the following:
Lack of familiarity with particular aspects of the problem domain that you want to focus on. Example:
"I don't know how hard it will be to get the fluid dynamics computations correct, since I haven't done that before."
Lack of familiarity with particularly important or challenging aspects of a language or library that you intend to use. Example:
"I don't know how to debug Cg GPU shader programs, so it is possible that I will run into bugs that are difficult to identify quickly."
Uncertainty about the feasibility of being able to perform a particular task with a chosen library or language. Example:
"I don't know if the Java Native Interface (JNI) will allow me to move my data from Java code to C code at the throughput necessary for a reasonable frame rate."
Uncertainty as to whether a particular language or library has support on the desired target platform. Example:
"I'm not sure if the MP3 encoding library I want to use will compile on MacOSX, where I ultimately want to deploy my project."
For any risk items you list, briefly state what you intend to do to mitigate that risk.
Write up an outline of how you intend to go about implementing this project. Be as specific as possible. If there are stages of your project where you don't know how you are going to implement them, make sure to note this.
This plan should take into account the above risk analysis. If there are specific risk items, focus on them first! Software project management is largely about identifying and controlling risk.
It is acceptable to set aside some time for testing/debugging your project. The result of such a step should be either an automated test suite, or a set of well-documented test scenarios that one can walk through.
You need to make your source code available to your CS11 instructor. There are three options. Feel free to provide more than one option. A website is particularly recommended for purposes of coordination.
http://www.cs.caltech.edu/~someuser(Where, of course, someuser is your CS cluster account name.)