CPSC 124, Spring 2006
Final Programming Project

One of the requirements in CS 124 is a final programming project, which will count for 10% of the course grade. There is no assigned topic for the final project -- you should select a programming problem on your own. Sometime during the next few weeks, you should meet with me to explore ideas for a project. The sooner you can get started, the better.

The project is due on the last day of classes, Tuesday, May 2. We will not have a regular lab on that day, but we will meet at the usual lab time so that I can collect the final projects and each student can present his or her project to the class. If your program isn't quite complete by May 2, I will consider giving you an extension of a few days to finish it up. However, no extension will be given if you haven't already done a substantial amount of work.

For this final project, you can choose to work with a partner. If you do this, your project must be somewhat more ambitious than a one-person project.

Remember that you should not give help to or receive help from any other member of the class (except for your partner, if you have one). You can get help from me or from the computer science TA's, but not from anyone else. You should not copy code from the Internet or from any other source, unless you get my permission to use that code as a basis for further development.

Your final project can, of course, use any of the techniques that we have covered in class. We will be doing a few more things over the next few weeks that might be useful, including, most importantly, arrays (Chapter 8) and more details on components and layouts (Chapter 7). Other topics that might be encountered in lab include displaying images such as pictures of playing cards (Lab 11?), simple network communication (Lab 12?), and reading from and writing to files (Lab 13?). If it turns out that there are other things that you need for your project, I might be able to help you with them on an individual basis. In fact, if you don't need any help on your project, then it is not ambitious enough!

Although you will probably want to write a GUI program, a command-line program is also acceptable. You should try to design a program that will be useful, interesting, or fun. Write a program that you would like to use yourself. The point is not so much to write a big, complex program as to write a program that is well-designed and runs well. Here are some ideas for projects, but you are not restricted to choosing from this list:

David Eck, March 2006