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 | An Important Message (FirstProg) | 5 points |
5 | Basics and Printing | More Printing (GasolineReceipt) | 7 points |
6 | Basics and Printing | A Letter to Yourself | 7 points |
7 | Basics and Printing | Your Initials | 6 points |
8 | Basics and Printing | Printing Choices | 8 points |
9 | Basics and Printing | Escape Sequences and Comments (EscapeSequencesComments) | 12 points |
10 | Basics and Printing | Escape Sequence Challenge | 30 points |
Variables - 10 assignments, 121 points | |||
11 | Variables | Saving Information in Variables (CreatingVariables) | 10 points |
12 | Variables | Using Variables | 10 points |
13 | Variables | Graduation Sentence with Variables | 7 points |
14 | Variables | Your Schedule | 15 points |
15 | Variables | Mathematical Operations (MathOperations) | 12 points |
Keyboard Input - 6 assignments, 106 points | |||
16 | Keyboard Input | Getting Input from a Human (ForgetfulMachine) | 12 points |
17 | Keyboard Input | Storing the Human's Responses (RudeQuestions) | 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 | Calculations with User Input (BMICalculator) | 25 points |
22 | Variables | Variables Only Hold Values (Sequencing) | 15 points |
23 | Variables | Cardio Zone Unscramble | 15 points |
24 | Variables | Variable Modification Shortcuts (VariableChangeShortcuts) | 15 points |
25 | Variables | Boolean Expressions | 12 points |
Strings - 5 assignments, 145 points | |||
26 | Strings | Comparing Strings (WeaselOrNot) | 10 points |
27 | Variables | Compound Boolean Expressions (ShallowGrandmother) | 10 points |
If Statements - 17 assignments, 430 points | |||
28 | If Statements | Making Decisions with If Statements (AgeMessages) | 20 points |
29 | If Statements | More If Statements (ComparingNumbers) | 15 points |
30 | If Statements | Space Boxing | 30 points |
31 | If Statements | Otherwise (If Statements with Else) (ClubBouncer) | 10 points |
32 | Strings | If Statements with Strings (SecretWord) | 10 points |
33 | If Statements | A Little Quiz | 40 points |
34 | If Statements | Mutual Exclusion with Chains of If and Else (BMICategories) | 25 points |
35 | If Statements | More Chains of Ifs and Else (CollegeAdmission) | 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 | Nested If Statements (GenderTitles) | 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 | Making Decisions with a Big Switch (ThirtyDays) | 30 points |
45 | Strings | More String Comparisons (DictionaryOrder) | 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 | Choosing Numbers Randomly (RandomNumbers) | 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 | Repeating Yourself using a While Loop (EnterPIN) | 30 points |
58 | While Loops | A Number-Guessing Game (HighLow) | 20 points |
59 | While Loops | Infinite Loops (KeepGuessing) | 20 points |
60 | While Loops | Dice Doubles | 45 points |
61 | While Loops | Using Loops for Error-Checking (SafeSquareRoot) | 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 | Do-While Loops (CoinFlip) | 35 points |
68 | Do-While Loops | Do-While Swimming | 15 points |
69 | Do-While Loops | Adding Values One at a Time (RunningTotal) | 20 points |
70 | Do-While Loops | Adding Values for a Dice Game (PigDiceComputer) | 25 points |
71 | Do-While Loops | The Dice Game Called 'Pig' (PigDice) | 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 | Calling a Function (ThereAndBackAgain) | 15 points |
80 | Functions | Picture Menu | 10 points |
81 | Functions | Flicker Phrase | 15 points |
82 | Functions | Calling Functions to Draw a Flag (OverlyComplexFlag) | 50 points |
83 | Functions | Displaying Dice with Functions (YachtDice) | 35 points |
84 | Functions | Returning a Value from a Function (HeronsFormula) | 20 points |
85 | Functions | Distance Formula | 50 points |
86 | Functions | Areas of Shapes (Shape Area) | 40 points |
87 | Functions | Thirty Days Revisited with Javadoc (ThirtyDaysFunctions) | 40 points |
88 | Miscellaneous | Importing Standard Libraries (PasswordDigest) | 20 points |
File Input and Output - 13 assignments, 620 points | |||
89 | File Input and Output | Programs That Write to Files (ReceiptRevisited) | 25 points |
90 | File Input and Output | High Score | 40 points |
91 | File Input and Output | Getting Data from a File (GettingFromFile) | 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 | Getting ALL the Data from a File (GettingWholeFile) | 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 | Saving a High Score (CoinFlipSaved) | 50 points |
For Loops - 14 assignments, 350 points | |||
100 | For Loops | Counting with a For Loop (CountingFor) | 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 | Looping Through a String (CaesarCipher) | 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 | Nested For Loops (Nesting 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 | Generating and Filtering Values (FarmerBrown) | 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 | 031 - English Currency Combinations | 100 points |
Arrays - 23 assignments, 1810 points | |||
128 | Arrays | Arrays - Many Values in a Single Variable (ArrayIntro) | 15 points |
129 | Arrays | Finding Things in an Array (ArrayLinearSearch) | 35 points |
130 | Arrays | Saying Something Is NOT in an Array (ItemNotFound) | 35 points |
131 | Arrays | Arrays Without Foreach Loops (ArraySlotAccess) | 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 | Lowest Temperature (LowestTemperature) | 50 points |
Records - 16 assignments, 1560 points | |||
137 | Records | Records (MailingAddresses) | 40 points |
138 | Records | Records from a File (ActorList) | 30 points |
139 | Records | An Array of Records (StudentDatabase) | 60 points |
140 | Records | Array of Records from a File (Temperatures Revisited) (TemperaturesByDate) | 90 points |
141 | Records | A Deck of Playing Cards (PickACard) | 100 points |
142 | Records | Text Adventure Game (TextAdventureFinal) | 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 | 001 - Sum Multiples of 3 or 5 | 20 points |
240 | Project Euler | 002 - Sum Even Fibonacci Numbers | 40 points |
241 | Project Euler | 003 - Largest Prime Factor of Big Number | 60 points |
242 | Project Euler | 004 - Largest Palindromic Product | 70 points |
243 | Project Euler | 005 - Smallest Divisible by 1-20 | 50 points |
244 | Project Euler | 006 - Sums of Squares Minus Squares of Sums | 50 points |
245 | Project Euler | 007 - The 10001st Prime | 80 points |
246 | Project Euler | 008 - Largest Product of Consecutive Digits | 100 points |
247 | Project Euler | 009 - Pythagorean Triplet | 75 points |
248 | Project Euler | 010 - Sum of Primes Under Two Million | 100 points |
249 | Project Euler | 011 - Largest Product of 4 Numbers in Grid | 160 points |
250 | Project Euler | 012 - First Triangle Number w/501 Divisors | 160 points |
251 | Project Euler | 013 - Sum 100 Fifty-Digit Numbers | 80 points |
252 | Project Euler | 014 - Longest Collatz Sequence | 150 points |
253 | Project Euler | 015 - Routes Through a 20x20 Grid | 100 points |
254 | Project Euler | 016 - Sum of the Digits of 2^1000 | 50 points |
255 | Project Euler | 017 - Letters in One to One Thousand | 110 points |
256 | Project Euler | 018 - Maximum Sum Path through Triangle | 160 points |
257 | Project Euler | 019 - Sundays on the 1st of the Month | 50 points |
258 | Project Euler | 020 - Sum of the Digits of 100! | 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 |