Provide a piece of Java code with a few syntax errors; finding and
fixing these errors becomes an “adventure game” when all the Java
syntax is not yet fully explained.

Provide a piece of badly-styled Java code; make fixing the style into
a contest. This can be done before Java syntax is fully explained.

9. Use the Internet for enrichment projects

Sample projects:

– Make a presentation about a computer or Internet pioneer
– Go online to learn how Fibonacci numbers occur in nature
– Find out about a collaborative web-based project

for discovering Mersenne numbers
– Find some cool Java applets that illustrate lessons
from math, physics, and chemistry
– Use search engines to find sounds and images for
your Java projects
– Find Java resources and documentation online
– Make a presentation about an issue of ethics in
computer use

8. Introduce bits of trivia and random knowledge from other fields

Two technicians wiring the right side of ENIAC
(Courtesy of U.S. Army Research Laboratory)

The term “bug” was popularized by Grace Hopper, a legendary
computer pioneer, who was the first to come up with the idea of a
compiler and who created COBOL. One of Hopper’s favorite stories
was the story of a moth that was found trapped between the points of a
relay, which caused a malfunction of the Mark II Aiken Relay Calculator
(Harvard University, 1945). Technicians removed the moth and affixed
it to the log shown on the photograph.

Many people mistakenly believe that the mouse was invented
by Apple. Others believe that idea came from Xerox, where
the mouse was used on an early office PC called the Star. But
in truth, the mouse was first conceived of by Doug Engelbart
in the early 1960’s, then a scientist at the Stanford Research
Institute, in Menlo Park, California.

7. Use role playing for discussing OOP designs; make students enact standard algorithms

Determine the responsibilities of various
objects within an application by
assigning the roles of objects to students
and playing it out.

Stage popular algorithms such as sorting
algorithms and Binary Search.

6. Let students personalize their projects: let them choose the details and add “bells and whistles”

Sample projects:

The Poll applet implements voting for a school president. Students
enjoy choosing the candidates’ names and colors in this applet.

Fill in the blanks in the code for the Fortune Teller applet, adding
an array of “fortunes” (strings) and the statements necessary for
randomly choosing and displaying them.

Create a picture of your choice for the puzzle. For instance you can
draw circles, polygons, or letters of different sizes and colors that
intersect the grid.

5. Assign projects with intermediate steps that are fun and rewarding

Example 1: Rainbow

Example 2: Ramblecs

4. Encourage students by making “hard” projects easy

– “Fill-in-the-blanks” projects — most of the code is provided
– “Paint-by-number” projects — detailed instructions for each step are provided
– “Cut-and-paste” projects — reuse Java classes from previous projects in a new one

Fill in the blanks in the applet’s code, adding an array of a few
“fortunes” (strings) and the code to randomly choose and display one
of them. Recall that the static Math.random method returns a random
double value 0 x < 1.

3. Use entertaining case studies that illustrate fundamental concepts2. Facilitate student-teacher (or student-textbook) team development using the “model-view” approach