IMPORTANT ADDITION (8/3/2002) -- DOING YOUR PRELIMINARY AND FINAL PROJECTS -- DUE DATES AUGUST 12TH (15% of course credit) and AUGUST 22nd (25% of course credit). Follow this link to the details.
Be ready. Choose your top five projects to be ready for the lottery on Thursday, June 27th.
Here is the list of projects.
The class will divide into teams of two students each. Each pair will work on a single project for the entire quarter. The source and compiled code needs to be deposited on the CCS Solaris system. There will be one set of code for each pair team, not distinct implementations.
The preferred order for your work: Algorithms come first, then design, then write some tests, then code your system and test it.
Total credit for the projects will be 40% of your entire grade. The Midterm Exam will be 25% of your grade and the Final Exam, 35%.
Here is the complete list of projects. A lottery will be held Thursday, June 27th. It is designed to try to assure that you get a project to work on that you're interested in. Each of you will rank your top five choices and write them down. In class, a drawing will be held. If you don't get your top choice, you go to the second round, and another set of drawings is held, until every student gets a project and one other student gets the same project. Sorry, but no arrangements are made to let you choose your partner. In this respect, the lottery is similar to the real world of work.
In developing your projects, start with the most simple, even trivial designs, and keep them that way! As Einstein said, "Everything should be made as simple as possible, but not simpler." This often means throwing away code and writing new code. Just imagine you're drawing pictures in the sand. Draw one, rub it out, draw another, and keep that up. (More great quotes from Einstein here.)
Some of you have projects that involve material that we won't cover until well into the course or that we won't explicitly cover at all. Virtually every project deals with material that is covered in your textbook. The topics covered later in the textbook do are often independent of most of the earlier material. You'll just have to start studying your project topic, using your textbook and any other resources you can discover. Sometimes this will mean going to earlier material in the book to learn what you need. You'll just need to explore. Many of you will be in the same boat, so be sure to use the mailing list to exchange ideas, information, etc.
I strongly encourage all pairs to work together, sitting at the same machine at least a few hours each week developing your design and tests, and developing code, testing, critiquing, documenting, etc. Please do not do all your work at a distance, with the two of you working miles apart. Some indication about who did what should appear in your reports. It is also important that you don't settle into an arrangement in which one person does all the coding and the other does the rest. You must take turns.
As long as you do substantial design and project building yourself, you are welcome to use any of the many built-in capabilities of the Java platform, especially Swing and Java 2D.