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) |