For each project below, your team should submit one version of all project materials that represent the team's effort electronically, using the directions available here, by the end of the due date (i.e., 11:59:59pm). Your team is responsible for ensuring that all files are turned in on time. Your team may submit its project electronically as many times as necessary, but only the files included in the last submission will be graded. Thus, you should always submit all your project files --- even if they have not changed since a previous submission.
Developing software is about more than just the code that makes the program run. Thus for each project you submit, you must submit the following additional materials:
- README file
- test code that thoroughly verifies the correctness of your non-GUI code
- project artifact that describes and justifies the project's design
- test report from a sample user, i.e., someone not in the class (only for the Team and Final Projects)
In general, the code for each project must
- follow a consistent set of conventions: it is more important that your code be internally consistent, than
which set of conventions you choose to follow.
If you feel you must violate the conventions of the team, you must document the reason within your code. - be able to generate HTML documentation for each public package, class, function, and constant within your project using a tool such as Javadoc.
For each component of your system, you should describe its purpose, interface, invariants, dependencies, and any other details users of the component should know.
In addition to the team's submission, each student must submit an individual project analysis after submitting the final version of the project that represents your personal reflections on the project.
Refactoring Projects
These projects are to be completed alone focus on improving and debugging an existing program. You will be given multiple chances to submit each part to encourage you to revise your work.
- PICASSA
- Part 1, expected September 11
- Final Version, due September 25
Team Projects
These projects are to be completed in teams of two to four and focus on developing clearly defined modules.
- TIVOO
Find out which team you are on here- Part 1, expected October 3
- Part 2, due October 13
- Final Version, due October 20
- Design Document, due October 23
- Personal Reflection, due October 24
- In-class Presentation, due October 26
Final Project
This project is to be completed by the entire class working together in teams of three.
- Build-a-Game
- First demo and description, due October 31
- Final individual version, due November 6
- Analysis, due in-class November 7
- VOOGA
Find out which team you are on here
README
Each project submitted must be accompanied by a README file that includes:
- Your name, possibly including the names of your team mates
- The date you started the assignment, the date you completed the assignment, and an estimate of the number of hours you worked on it
- your estimate should include how long you thought it would take and how long it actually did take, as well as a short evaluation of how good your estimate was
- A list of the students with whom you discussed the assignment.
- Note any books, papers, or online resources that you used in developing your solution
- Description of the files used to start your project and test your project
- Description of any data or resource files required by your project
- Your impressions of the assignment to help improve it in the future