JAVA: An Eventful Approach
The links below lead to materials for sample laboratory
exercises designed to work well with our text.
We have listed the labs by chapter, with a collection of final programming
projects at the end.
There is roughly one lab for every other chapter.
With each lab we include a handout describing the exercise,
a sample solution, and any files that should be provided
to the students as they start working on the lab.
In some cases, these additional files are fragments of
Java code, in others
we include image files or sample input files.
Solutions to the labs and the files provided to help students
start the labs are accessible to those with accounts to access
our instructor's resources. As with the solution manuals for the
textbook exercises, we request that you DO NOT GIVE STUDENTS
ACCESS TO THE SOLUTIONS TO OUR
LAB EXERCISES. In particular, please do not post these
solutions on your own web page!
The handouts we use in our labs are specialized
for use in our environment. We include instructions to help
the students use the IDE available in our lab.
We give them instructions on how to submit their lab electronically
through our server. We even include our grading guidelines.
We recognize that many of
these details will be different at your school. With this in
mind, we provide the handouts that describe the laboratories in
We suggest that you compare the Williams version of the handout
to the generic version to get some sense of the sorts of instructions
your students will need beyond that found in the generic handout.
Then, you may either choose to distribute the generic version of our
handout together with an addendum describing the particulars for
your lab setting, or to edit the LaTeX source files to produce a
single handout tailored to your school.
- A PDF file containing the original handout we use at Williams,
- A PDF file containing a generic handout derived by removing
all Williams specific details, and
- LateX source files that can be used to generate either the
Williams or generic form of the handout
- Chapter 1
Introduction to Java and objectdraw
- Chapter 4
Laundry Sorting --- Introduction to conditionals
Broomball --- Introduction to conditionals
- Chapter 6
Popping up All Over --- Simple introduction to class definitions
Magnet Simulator --- Introduction to class definitions
- Chapter 9
Three-cow Monty Game --- Introduction to loops and ActiveObjects
Boxball Game --- Introduction to loops and ActiveObjects
Frogger Game --- Advanced loops and ActiveObjects
- Chapter 11
TextPlay --- Introduction to GUI Interfaces with Swing
BouncyBall --- Introduction to GUI Interfaces with Swing
- Chapter 12
Scribbler --- A sketchpad program using a recursive collection
Recursive Doodling --- Geometric doodling with recursive collections
- Chapter 14
Simon --- Simulating a noisy toy using arrays
- Chapter 15
Nibbles --- A simple animated game played on a two-dimensional grid
Termites --- Simulating hungry insects on a two-dimensional grid
- Final Projects
Sokoban --- A marbles-in-a-maze game
Glinx --- A maze/path game