Teaching Computer Science I in 2015

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.

Grading Cycle 1

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

Grading Cycle 2

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

Grading Cycle 3

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

Grading Cycle 4

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

Grading Cycle 5

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

Grading Cycle 6

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

The Assignments

  Basics and Printing - 9 assignments, 81 points
3Basics and PrintingCompiling Practice  - code provided3 points
4Basics and PrintingLearn Java the Hard Way: An Important Message (FirstProg)  - code provided5 points
5Basics and PrintingLearn Java the Hard Way: More Printing (GasolineReceipt)  - code provided7 points
6Basics and PrintingA Letter to Yourself7 points
7Basics and PrintingYour Initials6 points
8Basics and PrintingLearn Java the Hard Way: Printing Choices  - code provided8 points
9Basics and PrintingLearn Java the Hard Way: Escape Sequences and Comments (EscapeSequencesComments)  - code provided12 points
10Basics and PrintingEscape Sequence Challenge30 points
  Variables - 10 assignments, 121 points
11VariablesLearn Java the Hard Way: Saving Information in Variables (CreatingVariables)  - code provided10 points
12VariablesUsing Variables10 points
13VariablesGraduation Sentence with Variables7 points
14VariablesYour Schedule15 points
15VariablesLearn Java the Hard Way: Mathematical Operations (MathOperations)  - code provided12 points
  Keyboard Input - 6 assignments, 106 points
16Keyboard InputLearn Java the Hard Way: Getting Input from a Human (ForgetfulMachine)  - code provided12 points
17Keyboard InputLearn Java the Hard Way: Storing the Human's Responses (RudeQuestions)  - code provided15 points
18Keyboard InputMore User Input of Data16 points
19Keyboard InputAge in Five Years18 points
20Keyboard InputA Dumb Calculator20 points
21Keyboard InputLearn Java the Hard Way: Calculations with User Input (BMICalculator)  - code providedby Joel Holliman25 points
22VariablesLearn Java the Hard Way: Variables Only Hold Values (Sequencing)  - code provided15 points
23VariablesCardio Zone Unscramble  - code provided15 points
24VariablesLearn Java the Hard Way: Variable Modification Shortcuts (VariableChangeShortcuts)  - code provided15 points
25VariablesLearn Java the Hard Way: Boolean Expressions  - code provided12 points
  Strings - 5 assignments, 145 points
26StringsLearn Java the Hard Way: Comparing Strings (WeaselOrNot)  - code provided10 points
27VariablesLearn Java the Hard Way: Compound Boolean Expressions (ShallowGrandmother)  - code provided10 points
  If Statements - 17 assignments, 430 points
28If StatementsLearn Java the Hard Way: Making Decisions with If Statements (AgeMessages)  - code provided20 points
29If StatementsLearn Java the Hard Way: More If Statements (ComparingNumbers)  - code provided15 points
30If StatementsSpace Boxing30 points
31If StatementsLearn Java the Hard Way: Otherwise (If Statements with Else) (ClubBouncer)  - code provided10 points
32StringsLearn Java the Hard Way: If Statements with Strings (SecretWord)  - code provided10 points
33If StatementsA Little Quiz40 points
34If StatementsLearn Java the Hard Way: Mutual Exclusion with Chains of If and Else (BMICategories)  - code provided25 points
35If StatementsLearn Java the Hard Way: More Chains of Ifs and Else (CollegeAdmission)  - code provided15 points
36If StatementsHow Old Are You, Specifically?20 points
37If StatementsWeekday Name  - code provided15 points
38If StatementsModulus Animation  - code provided20 points
39If StatementsLearn Java the Hard Way: Nested If Statements (GenderTitles)  - code provided20 points
40If StatementsTwenty Questions... well, actually just Two35 points
41If StatementsChoose Your Own Short Adventure!60 points
42If StatementsAge Messages 325 points
43If StatementsTwo More Questions35 points
44MiscellaneousLearn Java the Hard Way: Making Decisions with a Big Switch (ThirtyDays)  - code provided30 points
45StringsLearn Java the Hard Way: More String Comparisons (DictionaryOrder)  - code provided30 points
46StringscompareTo() Challenge35 points
47If StatementsAlphabetical Order30 points
48If StatementsThe Worst Number-Guessing Game Ever15 points
  Random Numbers - 9 assignments, 205 points
49Random NumbersLearn Java the Hard Way: Choosing Numbers Randomly (RandomNumbers)  - code provided25 points
50Random NumbersMagic 8-Ball™  - code provided10 points
51Random NumbersA Number-Guessing Game20 points
52Random NumbersFake Powerball35 points
53Random NumbersFortune Cookie15-25 points
54Random NumbersDice25 points
55Random NumbersOne Shot Hi-Lo35 points
56Random NumbersThree-Card Monte20 points
  While Loops - 15 assignments, 650 points
57While LoopsLearn Java the Hard Way: Repeating Yourself using a While Loop (EnterPIN)  - code provided30 points
58While LoopsLearn Java the Hard Way: A Number-Guessing Game (HighLow)  - code provided20 points
59While LoopsLearn Java the Hard Way: Infinite Loops (KeepGuessing)  - code provided20 points
60While LoopsDice Doubles45 points
61While LoopsLearn Java the Hard Way: Using Loops for Error-Checking (SafeSquareRoot)  - code provided30 points
62While LoopsCounting with a While Loop  - code provided25-35 points
63While LoopsPIN Lockout  - code provided10 points
64While LoopsNumber-Guessing with a Counter40 points
65While LoopsHi-Lo with Limited Tries55 points
66While LoopsReverse Hi-Lo75 points
  Do-While Loops - 8 assignments, 230 points
67Do-While LoopsLearn Java the Hard Way: Do-While Loops (CoinFlip)  - code provided35 points
68Do-While LoopsDo-While Swimming  - code provided15 points
69Do-While LoopsLearn Java the Hard Way: Adding Values One at a Time (RunningTotal)  - code provided20 points
70Do-While LoopsLearn Java the Hard Way: Adding Values for a Dice Game (PigDiceComputer)  - code provided25 points
71Do-While LoopsLearn Java the Hard Way: The Dice Game Called 'Pig' (PigDice)  - code provided40 points
72Do-While LoopsShorter Double Dice40 points
73Do-While LoopsAgain with the Number-Guessing35 points
74While LoopsRight Triangle Checker65 points
75While LoopsCollatz Sequence30-60 points
76While LoopsShort Adventure 2: With a Loop75 points
77While LoopsBaby Nim60 points
78While LoopsProject: Nim70-185 points
  Functions - 23 assignments, 1220 points
79FunctionsLearn Java the Hard Way: Calling a Function (ThereAndBackAgain)  - code provided15 points
80FunctionsPicture Menu  - code provided10 points
81FunctionsFlicker Phrase  - code provided15 points
82FunctionsLearn Java the Hard Way: Calling Functions to Draw a Flag (OverlyComplexFlag)  - code provided50 points
83FunctionsLearn Java the Hard Way: Displaying Dice with Functions (YachtDice)  - code provided35 points
84FunctionsLearn Java the Hard Way: Returning a Value from a Function (HeronsFormula)  - code provided20 points
85FunctionsDistance Formula  - code provided50 points
86FunctionsLearn Java the Hard Way: Areas of Shapes (Shape Area)  - code provided40 points
87FunctionsLearn Java the Hard Way: Thirty Days Revisited with Javadoc (ThirtyDaysFunctions)  - code provided40 points
88MiscellaneousLearn Java the Hard Way: Importing Standard Libraries (PasswordDigest)  - code provided20 points
  File Input and Output - 13 assignments, 620 points
89File Input and OutputLearn Java the Hard Way: Programs That Write to Files (ReceiptRevisited)  - code provided25 points
90File Input and OutputHigh Score40 points
91File Input and OutputLearn Java the Hard Way: Getting Data from a File (GettingFromFile)  - code provided20 points
92File Input and OutputSimple File Input40 points
93File Input and OutputSumming Three Numbers from a File50 points
94File Input and OutputSumming Three Numbers from Any File65 points
95File Input and OutputLearn Java the Hard Way: Getting ALL the Data from a File (GettingWholeFile)  - code provided30 points
96File Input and OutputDisplaying a File60 points
97File Input and OutputSumming Several Numbers from Any File60 points
98File Input and OutputSimple Web Input  - code provided15 points
99File Input and OutputLearn Java the Hard Way: Saving a High Score (CoinFlipSaved)  - code provided50 points
  For Loops - 14 assignments, 350 points
100For LoopsLearn Java the Hard Way: Counting with a For Loop (CountingFor)  - code provided25 points
101For LoopsTen Times15 points
102For LoopsCounting Machine20 points
103For LoopsCounting Machine Revisited25 points
104For LoopsCounting by Halves20 points
105For LoopsXs and Ys15 points
106For LoopsNoticing Even Numbers30 points
107For LoopsFizz Buzz40 points
108StringsLearn Java the Hard Way: Looping Through a String (CaesarCipher)  - code provided60 points
109For LoopsLetter at a Time  - code provided20 points
110File Input and OutputA Little Puzzle75 points
111File Input and OutputVowel Capitalization90 points
112For LoopsFor Loop Challenge40 points
113For LoopsAdding Values with a For Loop30 points
114For LoopsA Refresher20 points
115For LoopsRefresher Challenge20 points
  Nested Loops - 10 assignments, 605 points
116Nested LoopsLearn Java the Hard Way: Nested For Loops (Nesting Loops)  - code provided30 points
117Nested LoopsOdometer Loops  - code provided25 points
118Nested LoopsBasic Nested Loops30 points
119For LoopsDisplaying Some Multiples30 points
120Nested LoopsMultiplication Table65 points
121Nested LoopsLearn Java the Hard Way: Generating and Filtering Values (FarmerBrown)  - code provided35 points
122Nested LoopsNumber Puzzle I60 points
123Nested LoopsGetting Individual Digits80 points
124Nested LoopsMore Number Puzzles100 points
125Nested LoopsNumber Puzzles III: Armstrong Numbers90 points
126Nested LoopsNumber Puzzles IV: A New Hope90 points
  Project Euler - 21 assignments, 1815 points
127Project EulerProject Euler 031 - English Currency Combinations100 points
  Arrays - 23 assignments, 1810 points
128ArraysLearn Java the Hard Way: Arrays - Many Values in a Single Variable (ArrayIntro)  - code provided15 points
129ArraysLearn Java the Hard Way: Finding Things in an Array (ArrayLinearSearch)  - code provided35 points
130ArraysLearn Java the Hard Way: Saying Something Is NOT in an Array (ItemNotFound)  - code provided35 points
131ArraysLearn Java the Hard Way: Arrays Without Foreach Loops (ArraySlotAccess)  - code provided50 points
132ArraysBasic Arrays 020 points
133ArraysBasic Arrays 130 points
134ArraysBasic Arrays 240 points
135ArraysBasic Arrays 325 points
136ArraysLearn Java the Hard Way: Lowest Temperature (LowestTemperature)  - code provided50 points
  Records - 16 assignments, 1560 points
137RecordsLearn Java the Hard Way: Records (MailingAddresses)  - code provided40 points
138RecordsLearn Java the Hard Way: Records from a File (ActorList)  - code provided30 points
139RecordsLearn Java the Hard Way: An Array of Records (StudentDatabase)  - code provided60 points
140RecordsLearn Java the Hard Way: Array of Records from a File (Temperatures Revisited) (TemperaturesByDate)  - code provided90 points
141RecordsLearn Java the Hard Way: A Deck of Playing Cards (PickACard)  - code provided100 points
142RecordsLearn Java the Hard Way: Text Adventure Game (TextAdventureFinal)  - code provided200 points
143Miscellaneous☠ WARNING: Wild West Below! ☠0 points
  Projects - 6 assignments, 765 points
144ProjectsQuiz: Rect/Rekt45 points
  GUIs - 3 assignments, 55 points
145GUIsUsing Swing for Input  - code provided25 points
146GUIsA Boring Window  - code provided10 points
147GUIsA Frame with a Panel with Writing on It  - code provided20 points
148Random NumbersBaby Blackjack20 points
149ProjectsProject: Blackjack80-200 points
  Graphics - 27 assignments, 1120 points
150GraphicsGraphics Demo 1: Basics  - code provided20 points
151GraphicsGraphics Demo 2: Arcs and Custom Colors  - code provided20 points
152GraphicsGraphics Demo 3: Fonts and Lines  - code provided15 points
153GraphicsA Circle20 points
154GraphicsA Smiling Face40 points
155GraphicsA Clock Face50-70 points
156GraphicsGraphing Lines  - code provided40 points
157GraphicsGraphing Parabolas  - code provided40 points
158GraphicsGraphics Demo 4: Polygons  - code provided40 points
159GraphicsDrawing a Boring Triangle30 points
160GraphicsDrawing Random Triangles60 points
161GraphicsDrawing Random Right Triangles80-140 points
162GraphicsSierpinski Triangle150 points
163GraphicsBoxy 1  - code provided50 points
164GraphicsBoxy 2  - code provided40 points
165GraphicsBoxy 3  - code provided60 points
166GraphicsSmiling Face Function  - code provided80 points
167GraphicsForest and Trees  - code provided150 points
168GraphicsImage Demo - Showing Images on the Screen  - code provided20 points
169GraphicsMotivational Poster50-80 points
170FunctionsMonth Name60 points
171FunctionsMonth Offset60 points
172FunctionsWeekday Calculator90 points
173FunctionsFunction Call Alphabet90 points
174FunctionsFill-In Functions100 points
175FunctionsMore Fill-In Functions100 points
176FunctionsKeychains for Saleby Aaron Gadberry40 points
177FunctionsKeychains for Sale, for real this timeby Aaron Gadberry65 points
178FunctionsKeychains for Sale, real ultimate powerby Aaron Gadberry80 points
179FunctionsCalling Functions from Other Files40 points
180FunctionsEvenness Function60 points
181FunctionsFinding Prime Numbers85 points
182FunctionsDice with Functions50 points
183FunctionsA Lowercasing Display Function25 points
184Do-While LoopsBaby Calculator  - code provided20 points
185ProjectsProject: Calculator80-300 points
186ProjectsProject: Files and Nested Loops60-200 points
187ArraysCopying Arrays55 points
188ArraysGrades in an Array and a File90 points
189ArraysFinding a Value in an Array80 points
190ArraysHow Many Times?40 points
191ArraysIs It There or Not?85 points
192ArraysWhere Is It?90 points
193ArraysFinding the Largest Value in an Array100 points
194ArraysLocating the Largest Value in an Array110-130 points
195ArraysGiving an Array a Bunch of Values at Once  - code provided30 points
196ArraysParallel Arrays100 points
197ArraysTic-Tac-Toe  - code provided150 points
198ArraysHangman200 points
  Sorting - 11 assignments, 1000 points
199SortingMadLib Random  - code provided40 points
200SortingMovie Title Generator  - code provided40 points
201SortingPokéSwap  - code provided40 points
202SortingPokéTrader  - code provided30 points
203SortingPokéTrader 2  - code provided20 points
204SortingSorting an Array  - code provided100 points
205SortingExchange Sort  - code provided120 points
206SortingBubble Sort  - code provided130 points
207SortingSelection Sort  - code provided130 points
208ArraysPowerball200 points
209ArraysMatch Maker - Part 1180 points
210RecordsWeb Addresses Array  - code provided10 points
211RecordsAddress toString()  - code provided20 points
212RecordsBasic Records80 points
213RecordsA Little Database100 points
214RecordsA Little Database is shorter with a loop100 points
215RecordsGetting Data from a File120 points
216RecordsGetting More Data from a File140 points
217RecordsStoring Data in a File150 points
218RecordsReading What You Wrote160 points
219RecordsSorting an Array of Records160 points
220SortingSorting Strings150 points
221SortingSorting Records on Two Fields200 points
  OOP - 1 assignment, 100 points
222OOPA Tic-Tac-Toe Class  - code provided100 points
  ArrayLists - 14 assignments, 1165 points
223ArrayListsBasic ArrayLists 020 points
224ArrayListsBasic ArrayLists 130 points
225ArrayListsBasic ArrayLists 240 points
226ArrayListsBasic ArrayLists 325 points
227ArrayListsCopying ArrayLists55 points
228ArrayListsFinding a Value in an ArrayList80 points
229ArrayListsArrayList - There or Not?85 points
230ArrayListsArrayList - Where Is It?90 points
231ArrayListsGetting the Largest Value in an ArrayList100 points
232ArrayListsLocating the Largest Value in an ArrayList110 points
233ArrayListsSorting an ArrayList120 points
234ArrayListsSorting an ArrayList of Strings150 points
235ArrayListsSorting Sentences100 points
236ArrayListsSorting an ArrayList of Records160 points
237ProjectsProject: Address Book200-400 points
238ProjectsProject: Hearts300-500 points
239Project EulerProject Euler 001 - Sum Multiples of 3 or 520 points
240Project EulerProject Euler 002 - Sum Even Fibonacci Numbers40 points
241Project EulerProject Euler 003 - Largest Prime Factor of Big Number60 points
242Project EulerProject Euler 004 - Largest Palindromic Product70 points
243Project EulerProject Euler 005 - Smallest Divisible by 1-2050 points
244Project EulerProject Euler 006 - Sums of Squares Minus Squares of Sums50 points
245Project EulerProject Euler 007 - The 10001st Prime80 points
246Project EulerProject Euler 008 - Largest Product of Consecutive Digits100 points
247Project EulerProject Euler 009 - Pythagorean Triplet75 points
248Project EulerProject Euler 010 - Sum of Primes Under Two Million100 points
249Project EulerProject Euler 011 - Largest Product of 4 Numbers in Grid160 points
250Project EulerProject Euler 012 - First Triangle Number w/501 Divisors160 points
251Project EulerProject Euler 013 - Sum 100 Fifty-Digit Numbers80 points
252Project EulerProject Euler 014 - Longest Collatz Sequence150 points
253Project EulerProject Euler 015 - Routes Through a 20x20 Grid100 points
254Project EulerProject Euler 016 - Sum of the Digits of 2^100050 points
255Project EulerProject Euler 017 - Letters in One to One Thousand110 points
256Project EulerProject Euler 018 - Maximum Sum Path through Triangle160 points
257Project EulerProject Euler 019 - Sundays on the 1st of the Month50 points
258Project EulerProject Euler 020 - Sum of the Digits of 100!50 points
259GraphicsMouse Demo  - code provided20 points
260GraphicsTraffic Light - Drawing Shapes and Clicking Them  - code provided40 points
261GraphicsShapes Demo - Easily Drawing and Transforming Shapes  - code provided1 points
262GraphicsLast Clicked - Drawing Boxes Where You Clicked  - code provided1 points
263GraphicsNo Erasey - Making Stuff Stay on the Screen  - code provided1 points
264GraphicsDrag Location - Getting Drags instead of Clicks  - code provided1 points
265GraphicsDrawing Layers  - code provided1 points