CPSC 170 Final Project
Make a Difference in the World

The final assignment for this class is to create a program that will make a difference in the world by working towards the United Nations Millennium Development Goals. The goals are aimed at increasing development in social and economic conditions in developing countries. The eight goals are as follows:

More information on each of these goals can be found on the UN web site including more concrete descriptions of each of the goals.

Part 1 - High Level Design Document

For the first part of the assignment you will create a high level design document for a program that will help achieve one of the United Nations Millennium Development Goals. A design document is a description of a program that is created by a software designer to help software developers. The design document is a useful tool when a program is being developed by multiple people as it provides a single vision of the finished program. The design document provides a high level description of a program. It should describe what the program does as well as the user interface. Details about how the program is implemented, such as whether to store data in a linked or an array list, are left up to the developers of the program. Your design document should include the following:

Submission: Submit a pdf of your document on the course blackboard site before class on Monday, April 5th.

Part 2 - Low Level Design Document

For the second part of the assignment you will work in a group of two or three, of your choice, to create a low level design document. A low level design document specifies the details of how a program is implemented including data structures, classes, and methods. Once your group has selected a design document to implement you should think about the structure of the code for the program. The low level design document should include a list of all of the classes that will be in the final program including all public instance data and methods. Each class, instance variable, and method should include javadoc style documentation. The document should also include a plan for who will write which classes.

Submission: Submit a pdf of your document on the course blackboard site before class on Wednesday, April 7th.

Part 3 - Beta Version

For the third part of the assignment you will create a beta version of your program. A beta version of a program is a prototype that contains all of the features specified in the design document. The beta version is meant to be distributed to test users to look for errors and possible ways to improve the program before release. Your program should have no errors and will be tested by your classmates.

Submission: Submit a tar file of your code on the course blackboard site before class on Wednesday, April 14th.

Part 4 - Release Version

For the final part of the assignment you will turn your prototype into a finished program. This is your opportunity to add features to the program that you or your classmates think will make the program better (easier to use, more effective, or more entertaining). You should create a plan for who will implement what features, but a design document is not required. Plan ahead so that you have ample time to test your program before submission.

Submission: Submit a tar file of your code on the course blackboard site before class on Monday, April 19th.