These are the assignments that I used to teach Java to beginning students over the 2015-2016 school year. For details about how I run my classroom, read How I Teach Java to Absolute Beginners.
In 2015, my classes met 15 times over roughly six weeks in grading cycle 1, though students don't start coding until the third day or so. They are in class for 83 minutes every other day, so this corresponds to about 20 total hours of face-to-face class time in the first cycle.
600 points | S rank | 100% | 50.0 points per day |
415 points | A | 90% | 34.6 points per day |
265 points | B | 80% | 22.1 points per day |
150 points | C | 70% | 12.5 points per day |
below 150 points is failing |
My class met 12 times in grading cycle 2 for a total of roughly 16 hours.
Points carry over from a previous cycle, so if a student worked really hard and earned 800 points in cycle 1, then they would only need an additional 500 points to earn a 100% for cycle 2.
1300 points | S rank | 100% | 58.3 points per day |
900 points | A | 90% | 40.4 points per day |
590 points | B | 80% | 27.9 points per day |
350 points | C | 70% | 20.8 points per day |
below 350 points is failing |
12 meetings, 16 hours.
2200 points | S rank | 100% | 75.0 points per day |
1550 points | A | 90% | 54.2 points per day |
1050 points | B | 80% | 38.3 points per day |
680 points | C | 70% | 27.5 points per day |
below 680 points is failing |
16 meetings, 22 hours.
3400 points | S rank | 100% | 75.0 points per day |
2300 points | A | 90% | 46.9 points per day |
1600 points | B | 80% | 34.4 points per day |
1080 points | C | 70% | 25.0 points per day |
below 1080 points is failing |
17 meetings, 23.5 hours.
4700 points | S rank | 100% | 76.5 points per day |
3200 points | A | 90% | 52.9 points per day |
2250 points | B | 80% | 38.2 points per day |
1600 points | C | 70% | 30.6 points per day |
below 1600 points is failing |
16 meetings, 22 hours.
6000 points | S rank | 100% | 81.2 points per day |
4100 points | A | 90% | 56.2 points per day |
2900 points | B | 80% | 40.6 points per day |
2100 points | C | 70% | 31.2 points per day |
below 2100 points is failing |
Basics and Printing - 9 assignments, 81 points | |||
3 | Basics and Printing | Compiling Practice ![]() | 3 points |
4 | Basics and Printing | ![]() ![]() | 5 points |
5 | Basics and Printing | ![]() ![]() | 7 points |
6 | Basics and Printing | A Letter to Yourself | 7 points |
7 | Basics and Printing | Your Initials | 6 points |
8 | Basics and Printing | ![]() ![]() | 8 points |
9 | Basics and Printing | ![]() ![]() | 12 points |
10 | Basics and Printing | Escape Sequence Challenge | 30 points |
Variables - 10 assignments, 121 points | |||
11 | Variables | ![]() ![]() | 10 points |
12 | Variables | Using Variables | 10 points |
13 | Variables | Graduation Sentence with Variables | 7 points |
14 | Variables | Your Schedule | 15 points |
15 | Variables | ![]() ![]() | 12 points |
Keyboard Input - 6 assignments, 106 points | |||
16 | Keyboard Input | ![]() ![]() | 12 points |
17 | Keyboard Input | ![]() ![]() | 15 points |
18 | Keyboard Input | More User Input of Data | 16 points |
19 | Keyboard Input | Age in Five Years | 18 points |
20 | Keyboard Input | A Dumb Calculator | 20 points |
21 | Keyboard Input | ![]() ![]() | 25 points |
22 | Variables | ![]() ![]() | 15 points |
23 | Variables | Cardio Zone Unscramble ![]() | 15 points |
24 | Variables | ![]() ![]() | 15 points |
25 | Variables | ![]() ![]() | 12 points |
Strings - 5 assignments, 145 points | |||
26 | Strings | ![]() ![]() | 10 points |
27 | Variables | ![]() ![]() | 10 points |
If Statements - 17 assignments, 430 points | |||
28 | If Statements | ![]() ![]() | 20 points |
29 | If Statements | ![]() ![]() | 15 points |
30 | If Statements | Space Boxing | 30 points |
31 | If Statements | ![]() ![]() | 10 points |
32 | Strings | ![]() ![]() | 10 points |
33 | If Statements | A Little Quiz | 40 points |
34 | If Statements | ![]() ![]() | 25 points |
35 | If Statements | ![]() ![]() | 15 points |
36 | If Statements | How Old Are You, Specifically? | 20 points |
37 | If Statements | Weekday Name ![]() | 15 points |
38 | If Statements | Modulus Animation ![]() | 20 points |
39 | If Statements | ![]() ![]() | 20 points |
40 | If Statements | Twenty Questions... well, actually just Two | 35 points |
41 | If Statements | Choose Your Own Short Adventure! | 60 points |
42 | If Statements | Age Messages 3 | 25 points |
43 | If Statements | Two More Questions | 35 points |
44 | Miscellaneous | ![]() ![]() | 30 points |
45 | Strings | ![]() ![]() | 30 points |
46 | Strings | compareTo() Challenge | 35 points |
47 | If Statements | Alphabetical Order | 30 points |
48 | If Statements | The Worst Number-Guessing Game Ever | 15 points |
Random Numbers - 9 assignments, 205 points | |||
49 | Random Numbers | ![]() ![]() | 25 points |
50 | Random Numbers | Magic 8-Ball™ ![]() | 10 points |
51 | Random Numbers | A Number-Guessing Game | 20 points |
52 | Random Numbers | Fake Powerball | 35 points |
53 | Random Numbers | Fortune Cookie | 15-25 points |
54 | Random Numbers | Dice | 25 points |
55 | Random Numbers | One Shot Hi-Lo | 35 points |
56 | Random Numbers | Three-Card Monte | 20 points |
While Loops - 15 assignments, 650 points | |||
57 | While Loops | ![]() ![]() | 30 points |
58 | While Loops | ![]() ![]() | 20 points |
59 | While Loops | ![]() ![]() | 20 points |
60 | While Loops | Dice Doubles | 45 points |
61 | While Loops | ![]() ![]() | 30 points |
62 | While Loops | Counting with a While Loop ![]() | 25-35 points |
63 | While Loops | PIN Lockout ![]() | 10 points |
64 | While Loops | Number-Guessing with a Counter | 40 points |
65 | While Loops | Hi-Lo with Limited Tries | 55 points |
66 | While Loops | Reverse Hi-Lo | 75 points |
Do-While Loops - 8 assignments, 230 points | |||
67 | Do-While Loops | ![]() ![]() | 35 points |
68 | Do-While Loops | Do-While Swimming ![]() | 15 points |
69 | Do-While Loops | ![]() ![]() | 20 points |
70 | Do-While Loops | ![]() ![]() | 25 points |
71 | Do-While Loops | ![]() ![]() | 40 points |
72 | Do-While Loops | Shorter Double Dice | 40 points |
73 | Do-While Loops | Again with the Number-Guessing | 35 points |
74 | While Loops | Right Triangle Checker | 65 points |
75 | While Loops | Collatz Sequence | 30-60 points |
76 | While Loops | Short Adventure 2: With a Loop | 75 points |
77 | While Loops | Baby Nim | 60 points |
78 | While Loops | Project: Nim | 70-185 points |
Functions - 23 assignments, 1220 points | |||
79 | Functions | ![]() ![]() | 15 points |
80 | Functions | Picture Menu ![]() | 10 points |
81 | Functions | Flicker Phrase ![]() | 15 points |
82 | Functions | ![]() ![]() | 50 points |
83 | Functions | ![]() ![]() | 35 points |
84 | Functions | ![]() ![]() | 20 points |
85 | Functions | Distance Formula ![]() | 50 points |
86 | Functions | ![]() ![]() | 40 points |
87 | Functions | ![]() ![]() | 40 points |
88 | Miscellaneous | ![]() ![]() | 20 points |
File Input and Output - 13 assignments, 620 points | |||
89 | File Input and Output | ![]() ![]() | 25 points |
90 | File Input and Output | High Score | 40 points |
91 | File Input and Output | ![]() ![]() | 20 points |
92 | File Input and Output | Simple File Input | 40 points |
93 | File Input and Output | Summing Three Numbers from a File | 50 points |
94 | File Input and Output | Summing Three Numbers from Any File | 65 points |
95 | File Input and Output | ![]() ![]() | 30 points |
96 | File Input and Output | Displaying a File | 60 points |
97 | File Input and Output | Summing Several Numbers from Any File | 60 points |
98 | File Input and Output | Simple Web Input ![]() | 15 points |
99 | File Input and Output | ![]() ![]() | 50 points |
For Loops - 14 assignments, 350 points | |||
100 | For Loops | ![]() ![]() | 25 points |
101 | For Loops | Ten Times | 15 points |
102 | For Loops | Counting Machine | 20 points |
103 | For Loops | Counting Machine Revisited | 25 points |
104 | For Loops | Counting by Halves | 20 points |
105 | For Loops | Xs and Ys | 15 points |
106 | For Loops | Noticing Even Numbers | 30 points |
107 | For Loops | Fizz Buzz | 40 points |
108 | Strings | ![]() ![]() | 60 points |
109 | For Loops | Letter at a Time ![]() | 20 points |
110 | File Input and Output | A Little Puzzle | 75 points |
111 | File Input and Output | Vowel Capitalization | 90 points |
112 | For Loops | For Loop Challenge | 40 points |
113 | For Loops | Adding Values with a For Loop | 30 points |
114 | For Loops | A Refresher | 20 points |
115 | For Loops | Refresher Challenge | 20 points |
Nested Loops - 10 assignments, 605 points | |||
116 | Nested Loops | ![]() ![]() | 30 points |
117 | Nested Loops | Odometer Loops ![]() | 25 points |
118 | Nested Loops | Basic Nested Loops | 30 points |
119 | For Loops | Displaying Some Multiples | 30 points |
120 | Nested Loops | Multiplication Table | 65 points |
121 | Nested Loops | ![]() ![]() | 35 points |
122 | Nested Loops | Number Puzzle I | 60 points |
123 | Nested Loops | Getting Individual Digits | 80 points |
124 | Nested Loops | More Number Puzzles | 100 points |
125 | Nested Loops | Number Puzzles III: Armstrong Numbers | 90 points |
126 | Nested Loops | Number Puzzles IV: A New Hope | 90 points |
Project Euler - 21 assignments, 1815 points | |||
127 | Project Euler | ![]() | 100 points |
Arrays - 23 assignments, 1810 points | |||
128 | Arrays | ![]() ![]() | 15 points |
129 | Arrays | ![]() ![]() | 35 points |
130 | Arrays | ![]() ![]() | 35 points |
131 | Arrays | ![]() ![]() | 50 points |
132 | Arrays | Basic Arrays 0 | 20 points |
133 | Arrays | Basic Arrays 1 | 30 points |
134 | Arrays | Basic Arrays 2 | 40 points |
135 | Arrays | Basic Arrays 3 | 25 points |
136 | Arrays | ![]() ![]() | 50 points |
Records - 16 assignments, 1560 points | |||
137 | Records | ![]() ![]() | 40 points |
138 | Records | ![]() ![]() | 30 points |
139 | Records | ![]() ![]() | 60 points |
140 | Records | ![]() ![]() | 90 points |
141 | Records | ![]() ![]() | 100 points |
142 | Records | ![]() ![]() | 200 points |
143 | Miscellaneous | ☠ WARNING: Wild West Below! ☠ | 0 points |
Projects - 6 assignments, 765 points | |||
144 | Projects | Quiz: Rect/Rekt | 45 points |
GUIs - 3 assignments, 55 points | |||
145 | GUIs | Using Swing for Input ![]() | 25 points |
146 | GUIs | A Boring Window ![]() | 10 points |
147 | GUIs | A Frame with a Panel with Writing on It ![]() | 20 points |
148 | Random Numbers | Baby Blackjack | 20 points |
149 | Projects | Project: Blackjack | 80-200 points |
Graphics - 27 assignments, 1120 points | |||
150 | Graphics | Graphics Demo 1: Basics ![]() | 20 points |
151 | Graphics | Graphics Demo 2: Arcs and Custom Colors ![]() | 20 points |
152 | Graphics | Graphics Demo 3: Fonts and Lines ![]() | 15 points |
153 | Graphics | A Circle | 20 points |
154 | Graphics | A Smiling Face | 40 points |
155 | Graphics | A Clock Face | 50-70 points |
156 | Graphics | Graphing Lines ![]() | 40 points |
157 | Graphics | Graphing Parabolas ![]() | 40 points |
158 | Graphics | Graphics Demo 4: Polygons ![]() | 40 points |
159 | Graphics | Drawing a Boring Triangle | 30 points |
160 | Graphics | Drawing Random Triangles | 60 points |
161 | Graphics | Drawing Random Right Triangles | 80-140 points |
162 | Graphics | Sierpinski Triangle | 150 points |
163 | Graphics | Boxy 1 ![]() | 50 points |
164 | Graphics | Boxy 2 ![]() | 40 points |
165 | Graphics | Boxy 3 ![]() | 60 points |
166 | Graphics | Smiling Face Function ![]() | 80 points |
167 | Graphics | Forest and Trees ![]() | 150 points |
168 | Graphics | Image Demo - Showing Images on the Screen ![]() | 20 points |
169 | Graphics | Motivational Poster | 50-80 points |
170 | Functions | Month Name | 60 points |
171 | Functions | Month Offset | 60 points |
172 | Functions | Weekday Calculator | 90 points |
173 | Functions | Function Call Alphabet | 90 points |
174 | Functions | Fill-In Functions | 100 points |
175 | Functions | More Fill-In Functions | 100 points |
176 | Functions | Keychains for Sale | 40 points |
177 | Functions | Keychains for Sale, for real this time | 65 points |
178 | Functions | Keychains for Sale, real ultimate power | 80 points |
179 | Functions | Calling Functions from Other Files | 40 points |
180 | Functions | Evenness Function | 60 points |
181 | Functions | Finding Prime Numbers | 85 points |
182 | Functions | Dice with Functions | 50 points |
183 | Functions | A Lowercasing Display Function | 25 points |
184 | Do-While Loops | Baby Calculator ![]() | 20 points |
185 | Projects | Project: Calculator | 80-300 points |
186 | Projects | Project: Files and Nested Loops | 60-200 points |
187 | Arrays | Copying Arrays | 55 points |
188 | Arrays | Grades in an Array and a File | 90 points |
189 | Arrays | Finding a Value in an Array | 80 points |
190 | Arrays | How Many Times? | 40 points |
191 | Arrays | Is It There or Not? | 85 points |
192 | Arrays | Where Is It? | 90 points |
193 | Arrays | Finding the Largest Value in an Array | 100 points |
194 | Arrays | Locating the Largest Value in an Array | 110-130 points |
195 | Arrays | Giving an Array a Bunch of Values at Once ![]() | 30 points |
196 | Arrays | Parallel Arrays | 100 points |
197 | Arrays | Tic-Tac-Toe ![]() | 150 points |
198 | Arrays | Hangman | 200 points |
Sorting - 11 assignments, 1000 points | |||
199 | Sorting | MadLib Random ![]() | 40 points |
200 | Sorting | Movie Title Generator ![]() | 40 points |
201 | Sorting | PokéSwap ![]() | 40 points |
202 | Sorting | PokéTrader ![]() | 30 points |
203 | Sorting | PokéTrader 2 ![]() | 20 points |
204 | Sorting | Sorting an Array ![]() | 100 points |
205 | Sorting | Exchange Sort ![]() | 120 points |
206 | Sorting | Bubble Sort ![]() | 130 points |
207 | Sorting | Selection Sort ![]() | 130 points |
208 | Arrays | Powerball | 200 points |
209 | Arrays | Match Maker - Part 1 | 180 points |
210 | Records | Web Addresses Array ![]() | 10 points |
211 | Records | Address toString() ![]() | 20 points |
212 | Records | Basic Records | 80 points |
213 | Records | A Little Database | 100 points |
214 | Records | A Little Database is shorter with a loop | 100 points |
215 | Records | Getting Data from a File | 120 points |
216 | Records | Getting More Data from a File | 140 points |
217 | Records | Storing Data in a File | 150 points |
218 | Records | Reading What You Wrote | 160 points |
219 | Records | Sorting an Array of Records | 160 points |
220 | Sorting | Sorting Strings | 150 points |
221 | Sorting | Sorting Records on Two Fields | 200 points |
OOP - 1 assignment, 100 points | |||
222 | OOP | A Tic-Tac-Toe Class ![]() | 100 points |
ArrayLists - 14 assignments, 1165 points | |||
223 | ArrayLists | Basic ArrayLists 0 | 20 points |
224 | ArrayLists | Basic ArrayLists 1 | 30 points |
225 | ArrayLists | Basic ArrayLists 2 | 40 points |
226 | ArrayLists | Basic ArrayLists 3 | 25 points |
227 | ArrayLists | Copying ArrayLists | 55 points |
228 | ArrayLists | Finding a Value in an ArrayList | 80 points |
229 | ArrayLists | ArrayList - There or Not? | 85 points |
230 | ArrayLists | ArrayList - Where Is It? | 90 points |
231 | ArrayLists | Getting the Largest Value in an ArrayList | 100 points |
232 | ArrayLists | Locating the Largest Value in an ArrayList | 110 points |
233 | ArrayLists | Sorting an ArrayList | 120 points |
234 | ArrayLists | Sorting an ArrayList of Strings | 150 points |
235 | ArrayLists | Sorting Sentences | 100 points |
236 | ArrayLists | Sorting an ArrayList of Records | 160 points |
237 | Projects | Project: Address Book | 200-400 points |
238 | Projects | Project: Hearts | 300-500 points |
239 | Project Euler | ![]() | 20 points |
240 | Project Euler | ![]() | 40 points |
241 | Project Euler | ![]() | 60 points |
242 | Project Euler | ![]() | 70 points |
243 | Project Euler | ![]() | 50 points |
244 | Project Euler | ![]() | 50 points |
245 | Project Euler | ![]() | 80 points |
246 | Project Euler | ![]() | 100 points |
247 | Project Euler | ![]() | 75 points |
248 | Project Euler | ![]() | 100 points |
249 | Project Euler | ![]() | 160 points |
250 | Project Euler | ![]() | 160 points |
251 | Project Euler | ![]() | 80 points |
252 | Project Euler | ![]() | 150 points |
253 | Project Euler | ![]() | 100 points |
254 | Project Euler | ![]() | 50 points |
255 | Project Euler | ![]() | 110 points |
256 | Project Euler | ![]() | 160 points |
257 | Project Euler | ![]() | 50 points |
258 | Project Euler | ![]() | 50 points |
259 | Graphics | Mouse Demo ![]() | 20 points |
260 | Graphics | Traffic Light - Drawing Shapes and Clicking Them ![]() | 40 points |
261 | Graphics | Shapes Demo - Easily Drawing and Transforming Shapes ![]() | 1 points |
262 | Graphics | Last Clicked - Drawing Boxes Where You Clicked ![]() | 1 points |
263 | Graphics | No Erasey - Making Stuff Stay on the Screen ![]() | 1 points |
264 | Graphics | Drag Location - Getting Drags instead of Clicks ![]() | 1 points |
265 | Graphics | Drawing Layers ![]() | 1 points |