Assignment ideas

Here are some ideas to use as programming assignments. They are ordered roughly by complexity (although assignments that built on each other, are grouped together.)

Calculator (by M. Kölling)

A project to implement the logic of a desk calculator. The GUI and class outline is provided. Can be done fairly early. (No loops necessary, just variables, assignment, arithmetic, and if statement.)

NOTE: A full solution to this assignment can be found in chapter 6 in the book! The solution source code is also on the CD, in the chapter 6 material. So do not use this if you do not want students to possibly find a solution provided.

Assumes: approx. chapter 1-3

Details (Word document). Code.

Alarm Clock (John Pagliarulo)

This assignment build on the 'clock' example from the book and extends it to get students to build an alarm clock.

Assumes: chapter 1-3

Details (Word document).

Lap Timer (M. Kölling)

The goal of this assignment is to build a lap timer application. The lap timer is used to take time in races where the race consists of a number of consecutive laps. The lap timer can record the time of a lap just completed, and it can calculate and display the number of laps completed, the total time, average lap times, and so on.

Assumes: approx. chapter 1-3

Details Word, Details PDF, Code for students, Solution

A GUI for the Ticketmachine (John Pagliarulo)

This assignment is for people who like to do GUIs earlier than where it's covered in the book. Th task is to build a GUI for the chapter 2 TicketMachine.

Assumes: chapter 1-3 and a short intro to GUIs

Zip file with assignment handout, code and solution

File encoding (M. Kölling)

A file encoding application that can encode and decode (and possibly compress) text files.

Assumes: approx. chapter 1-5

Details (Word), Solution

A text-based adventure game (M. Kölling)

"Your task is to invent and implement an adventure game. You have been given a simple framework (zuul-better) that lets you walk through a couple of rooms. You can use this as a starting point." Based on chapter 7. See also A GUI for the adventure game.

Assumes: approx. chapter 1-7

Details (Word)

A GUI for the adventure game (M. Kölling)

An extension of the previous assignment to add a GUI (and optionally file storage).

Assumes: approx. chapter 1-12

Details (Word)

If you want, you can carry this assignment as far as you like into quite advanced courses. Here are examples I have used in later (more advanced) OO programming courses: advanved stage 1 (including dynamic class loading), advanced stage 2 (including reflection), advanced stage 3 (including network communication).

Spam filter (by Matt DeJongh)

A project based on the mail-system project from chapter 3 of the book. The task is to add spam filtering to the mail server. See also Email Attachments.

Assumes: approx chapter 1-6 of the book.

Details.

Email attachments (by Matt DeJongh)

A project based on the mail-system project from chapter 3 of the book and the previous project above, spam-filter. The task is to add handling of attachments to the mail server. See also Email Storage.

Assumes: approx. chapter 1-9.

Details.

Email storage (by Matt DeJongh)

A project based on the Email Attachments project above. The task is to add permanent storage of email messages to files.

Assumes: approx. chapter 1-12.

Details.

A simulation (M. Kölling)

Design and implementation of a simulation (vaguely similar to foxes-and-rabbits in chapter 19). The assignment contains a requirements framework and several concrete topics to choose from.

Assumes: approx chapter 1- 12

Details (Word), Topics 1 (Word), Topics 2 (Word)

 


Here is a template for a marking guide (Word format), which I sometimes use in variations for project marking.