Remember that a final project for CPSC 225 is due at the end of the semester. I would like them to be completed by the last day of class, Monday, May 3, so that they can be demonstrated in class on that day. You should start on the project early and allow plenty of time for planning what you want to do, designing the program, implementing the design in code, testing the components, and polishing the final version.
Part of the assignment is to choose a project. You have already proposed two possible projects, but you are not restricted to doing one of those. This sheet has some requirements and guidelines for the project.
You are required to meet with me some time in the two weeks after Spring break -- May 22 to April 2 -- to discuss your project. Ideally, you should come to the meeting with an idea of what you want to work on.
Your project should use at least four non-trivial, well-designed classes. "Well-designed" means that the class represents a single, clear concept, and/or that it has a single, clear responsibility in the program. It means that appropriate variables, constructors, and methods have been defined in the class. It means that the class is clearly documented. The use of at least four classes is not an absolute requirement -- but if you need less than four, you should think about whether your project is complex enough.
You should develop and test the modules that make up your program. Ideally, you should write test routines to make sure that the modules work. You should turn in the test routines along with the rest of the program, and the documentation for the test routine should tell how it was used.
The project should use some of the advanced materials that we have covered this term (or will cover in the coming weeks): recursion, data structures, generic programming, files, networking, or advanced GUI programming. It should not be a program that you could have written at the end of CPSC 124.
You are required to turn in a report on your progress on Monday, April 19, two weeks before the project is due. The report should include information about the design of the program. You are encouraged to get help from me along the way.