| Date | Reading | Topic | Lab | Examples | 
| 9/5 | - | - | In lab: set up  running SLIME Ch 11.1-11.3 of HKK Tutorial on running SLIME is available on Moodle  | - | 
| 9/6 | Ch 11, HKK | Intro  Ch 11.1-11.3 of HKK Lecture notes available on Moodle  | - | add.asm - this program reads in 2 integers, adds them up | 
| 9/7 | - | - | Project 1 | - | 
| 9/8 | Ch 11, HKK | Ch 11.3 - 1.4 of HKK Lecture notes available on Moodle  | - |  smaller.asm  - this program reads in 2 integers, then prints the smaller number sum1ton.asm - this program reads in a positive integer n and prints out the sum  | 
| 9/11 | Ch 11, HKK | Ch 11.4 of HKK Lecture notes available on Moodle  | - | 
 range.asm  - read in two numbers then print all integers between the two numbers inclusive fact.asm - computes the factorial from 1 up to a user input number, the iterative version  | 
| 9/12 | - | - | Project 1 | - | 
| 9/13 | Ch 11, HKK | Ch 11.5 of HKK< Lecture notes available on Moodle  | - |  rfact.asm  - computes the factorial from 1 up to a user input number, the recursive version
      sumDigits.asm - sums the digits of a number, the recursive version writeDigitsStart.asm - writes each digital of a number, version 1 writeDigits.asm - writes each digital of a number, final version  | 
| 9/14 | - | - | Project 1 | - | 
| 9/15 | Ch 11, HKK | Catchup Lecture notes available on Moodle  | - |  HelloWorld.java  - your very first Java program
 UseArgument.java - Java program that takes in user arguments  | 
| 9/18 | Ch 1 | Ch 1.1 Lecture notes available on Moodle  | - | IntOps.java - Java program illustrating integer operations | 
| 9/19 | - | - | Project 1  (if you finished Project 1, move onto Project 2)  | - | 
| 9/20 | Ch 1 | Project 1 due (at the start of class)   Ch 1.2 Lecture notes available on Moodle  | - | flip.java - Java program Simulating a fair coin flip | 
| 9/21 | - | - | Project 2 | - | 
| 9/22 | Ch 1 | Ch 1.2 - 1.3 Lecture notes available on Moodle  | - |   coinflips.java  -  Java program Simulating n coin flips and calculates the fraction of heads
         TenHellos.java - Java program printing out "hello" 10 times  | 
| 9/25 | Ch 1 | Ch 1.3  Lecture notes available on Moodle  | - |   n_coinflips.java  -  Java program Simulating multiple person, each doing n coin flips
         PrintDate.java - Java program printing days, month, year, demonstrating switch statements Prime.java - Java program taking a command-line argument N and prints out true if N is prime, and false otherwise Prime.java - Prime.java rewritten in different loop constructs  | 
| 9/26 | - | - | Project 2 | - | 
| 9/27 | Ch 1 | Ch 1.4  Lecture notes available on Moodle  | - | bubble_sort.java - Java program filling an array full of random integers, then do a bubble sort. | 
| 9/28 | - | - | Project 2 | - | 
| 9/29 | Ch 1 | Ch 1.5  Lecture notes available on Moodle  | - | - | 
| 10/2 | Ch 2 | Project 2  due (at the start of class)   Ch 2.1 Lecture notes available on Moodle  | - |    Matrix.java  -  Java program implementing Matrix operations. Average.java - Java program reads in a sequence of real numbers, and computes their average; demonstrating StdIn BouncingBall.java - Java program implementing a 2-d bouncing ball, demonstrating StdDraw  | 
| 10/3 | - | - | No lab (Nobel Conference)  | - | 
| 10/4 | - | No class (Nobel Conference)  | - | - | 
| 10/5 | - | - | Project 3 | - | 
| 10/6 | - | Test 1 review  Test 1 preparation slides available on Moodle Test 1 topics are available here  | - | - | 
| 10/9 | - | Written Test 1   | - | - | 
| 10/10 | - | - | Programing Test 1 | - | 
| 10/11 | Ch 2 | Ch 2.2  Lecture notes available on Moodle  | - | - | 
| 10/12 | - | - | Project 3 | - | 
| 10/13 | Ch 2 | Ch 2.3 Lecture notes available on Moodle  | - | - | 
| 10/16 | Ch 2 | Ch 2.3  Lecture notes available on Moodle  | - |   Factorial.java  -  A class implementing the recursive version of factorial. BinarySearch.java - Implements a binary search  | 
| 10/17 | - | - | Project 3 | - | 
| 10/18 | Ch 4 | Ch 4.1  Lecture notes available on Moodle  | - | 
   Factorial.java  -  A class implementing the recursive version of factorial.
          binarySearchTemplate.java - the template for binary search, for in-class exercise. binarySearch.java - the solution for binary search.  | 
| 10/19 | - | - | Project 3 | - | 
| 10/20 | Ch 4 & notes | Ch 4.1 & 9.6 notes  Lecture notes available on Moodle  | - |  Carpet_starter.java -  Starter file to draw a Sierpinski carpet, solution
                Carpet.java - Draw a Sierpinski carpet, solution  | 
| 10/23 | - | Fall break | - | - | 
| 10/24 | - | Fall break | - | - | 
| 10/25 | notes | Project 3 due (at the start of class)   9.6 notes Lecture notes available on Moodle  | - |   Carpet_starter.java -  Starter file to draw a Sierpinski carpet, solution
                Carpet.java - Draw a Sierpinski carpet, solution TowerOfHanoi_starter.java - Starter file to solves the "tower of Hanoi" puzzle TowerOfHanoi.java - Solves the "tower of Hanoi" puzzle, solution MergeSort.java - Recursive version of merge sort  | 
| 10/26 | - | - | Project 4 | - | 
| 10/27 | notes | Dynamic programing vs Memoization Lecture notes available on Moodle  | - |  Fibonacci.java -  Recursively solves the Fibonacci sequence, then solves it using Top Down DP (Memoization) and Bottom Up DP
 LCS.java (version 2) - Solves Longest Common Substring problem using dynamic programming (the book's code, also from Max's video 2) Video 1 - Video # 1 of Max live-coding the LCS problem Video 2 - Video # 2 of Max live-coding the LCS problem (fine-tuning version to a version similar to that in the text book) Choose.java - Recursively solves binomial coefficient, then solves it using Top Down DP (Memoization) and Bottom Up DP  | 
| 10/30 | notes |  Dynamic programing vs Memoization  Lecture notes available on Moodle  | - | - | 
| 10/31 | - | - | Project 4 | - | 
| 11/1 | notes | LCS Lecture notes available on Moodle  | - |   LCS.java -  Solves Longest Common Substring problem using dynamic programming (Max's code, from video 1)
 LCS.java (version 2) - Solves Longest Common Substring problem using dynamic programming (the book's code, also from Max's video 2) Video 1 - Video # 1 of Max live-coding the LCS problem Video 2 - Video # 2 of Max live-coding the LCS problem (fine-tuning version to a version similar to that in the text book) Choose.java - Recursively solves binomial coefficient, then solves it using Top down DP (Memoization) and Bottom Up DP  | 
| 11/2 | - | - | Project 4 | - | 
| 11/3 | notes | LCS  Lecture notes available on Moodle  | - | - | 
| 11/6 | Ch 3 & 4 | Project 4 due (at the start of class)   Ch 3.1 Lecture notes available on Moodle  | - | - | 
| 11/7 | - | - | Project 5 | - | 
| 11/8 | Ch 3 | Ch 3.2  Lecture notes available on Moodle  | - |  Charge.java -  The instance class implement a Charge 
  ChargeClient.java - The client class using Charge  | 
| 11/9 | - | - | Project 5 | - | 
| 11/10 | Ch 4 | Ch 4.3  Lecture notes available on Moodle  | - | IntegerStack.java - Class implementing integer stack | 
| 11/13 | notes | Method Overloading & Interfaces  Lecture notes available on Moodle  | - | - | 
| 11/14 | - | - | Project 5 | - | 
| 11/15 | notes | Inheritance & Polymorphism  Lecture notes available on Moodle  | - |  Employee.java -  Super class implementing employee 
          HourlyEmployee.java - Sub class implementing hourly employee SalariedEmployee.java - Sub class implementing salaried employee Date.java - class implementing date IntegerArrayStack.java - A derived class of the IntegerStack class  | 
| 11/16 | - | - | Project 5 | - | 
| 11/17 | - | Test 2 review  Test 2 topics and practice questions are available on Moodle  | - | - | 
| 11/20 | notes | Project 5 due (at the start of class)   Written Test 2  | - | - | 
| 11/21 | - | - | Programing Test 2 | - | 
| 11/22 | - | No class (Thanksgiving break) | - | - | 
| 11/23 | - | - | No lab (Thanksgiving break) | - | 
| 11/24 | - | No class (Thanksgiving break) | - | - | 
| 11/27 | notes | Java Generics  Lecture notes available on Moodle  | - |  Employee.java -  Super class implementing employee 
          HourlyEmployee.java - Sub class implementing hourly employee SalariedEmployee.java - Sub class implementing salaried employee Date.java - class implementing date IntegerArrayStack.java - A derived class of the IntegerStack class Drawable.java - Interface drawable Circle.java - Circle class extends interface drawable Square.java - Square class extends interface drawable TestDraw.java - Draw using Circle class and Square class ArrayListExample.java - The ArrayList example  | 
| 11/28 | - | - | Project 6 | - | 
| 11/29 | notes | Catch up  Lecture notes available on Moodle  | - | - | 
| 11/30 | - | - | Project 6 | - | 
| 12/1 | notes | Work on Project 6 | - | - | 
| 12/4 | - | 
Swing, UML and Source Code  Land of GACK Lecture notes available on Moodle  | - | - | 
| 12/5 | - | - | - | Project 6 | 
| 12/6 | notes | Project 6 due (at the start of class)   Work on Project 7  | - | - | 
| 12/7 | - | - | Project 7 | - | 
| 12/8 | Ch 11 | Work on Project 7 | - | |
| 12/11 | - | Work on Project 7 | - | - | 
| 12/12 | - | - | Project 7 | - | 
| 12/13 | - | 
Work on Project 7   Project 7 due before midnight tonight(12/13) No late submission of Project 7 will be accepted!! Final Exam Review Sheet is available on Moodle  | - | - |