For each project below, you (or your team) should submit one version of all project materials electronically, using the directions available here, by the morning after the due date (i.e., 8am the next morning). 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.
Projects
- Build A Game, due January 18
This individual warm-up assignment is intended to get you acclimated to the course. - Springies, due ???
This partner project with fast feedback on each part to encourage you to revise your work - A small team project that focuses on developing clearly defined modules of work for each sub-team.
- Revisit an earlier project to refactor and generalize the code.
- A large-scale team project requiring several iterations of design and implementation based on feedback.
General Project Deliverables
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 if asked for in the assignment:
- README file
- project artifact that describes and justifies the project's design
- test code that thoroughly verifies the correctness of your non-graphical code
In general, the code for each project must
- follow a consistent set of conventions: have a consistent "look-and-feel" (i.e., it must look and read like it had a single author -- think of a magazine: even though the articles have different authors, thestyle of the text formatting and illustrations is uniform).
- 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.