Week 1: 8/25

Lectures: Course introduction; cs160 recap [ slides ] (updated)
Reading: 160 material: chapters 1-4, 7 in the Java book.
Recitation: cs160 recap
Assignments: First programming assignment is available

Week 2: 9/1

Lectures: Java classes, objects, and object oriented programming [ slides ]. Here's the code for the Die class. Quiz on Thu.
Reading: Chapter 5 in the Java book.
Recitation: Getting familiar with Classes
Assignments: Programming assignment is available

Week 3: 9/8

Lectures: More on Java classes [ slides ] (updated thu). The code for the Account class. Quiz on Thu.
Reading: Chapters 5-6 in Savitch (5 in Lewis).
Recitation: More on Classes

Week 4: 9/15

Lectures: Assertions, pre/post conditions [ slides ]. Javadoc commenting of code. Here's an example. ArrayList [ slides ]. Here's the example we worked on in class . Quiz on Thu.
Reading: Assertions - chapter 4.2 in Savitch. ArrayList - chapter 12.1 in Savitch;
Recitation: A Break from Classes

Week 5: 9/22

Lectures: Recursion [ slides ]. Quiz on Thu. More recursion [ slides ]. The maze example.
Reading: Chapter 11 in Savitch, or Chapter 12 in Lewis, or Chapter 3 in Walls and Mirrors.
Recitation: Recursion

Week 6: 9/29

Lectures: Counting [ slides ]. Midterm on Thu.
Reading: Chapter 5 in Rosen.
Recitation: Recursion

Week 7: 10/6

Lectures: Permutations, r-permutation, combinations, and the traveling salesman problem [ slides ] (updated on thursday). Quiz on Thu.
Reading: Chapter 5 in Rosen.
Recitation: Enumeration and Counting

Week 8: 10/13

Lectures: Induction [ slides ]. Quiz on Thu.
Reading: Chapter 4.1,4.2 in Rosen.
Assignments: A written assignment on induction is available

Week 9: 10/20

Lectures: Inheritance [ slides ]. Inheritance and polymorphism [ slides ] Quiz on Thu.
Reading: Chapter 8 in either of the Java books.
Recitation: Inheritance

Week 10: 10/27

Lectures: Interfaces [ slides ]. (updated after thursday's class) [ Code ] for the StaffMember/Employee etc. example. Quiz on Thu.
Reading: Chapter 8 in Savitch, chapter 9 in Lewis.
Recitation: Interfaces

Week 11: 11/3

Lectures: Midterm on Tue. Static again [ slides ]. Linked lists [ slides ]
Reading: Chapter 5 in Walls and Mirrors, 12.1 in Savitch, 14.4 in Lewis.
Recitation: Programming quiz

Week 12: 11/10

Lectures: Linked lists [ slides ] (updated on wed). Linked list code and doubly linked list code.
Reading: Chapter 5 in Walls and Mirrors, 12.1 in Savitch, 14.4 in Lewis.
Recitation: Linked Lists

Week 13: 11/17

Lectures: Sorting [ slides ] (updated on thu) Here's a nice java applet that illustrates the sorting algorithms we looked at. Obama being asked about sorting
Reading: Chapter 13 in Lewis, Chapter 10 in Walls and Mirrors
Recitation: Sorting

Week 14: 12/1

Lectures: Java packages [ slides ]. JUnit and testing [ slides ]. Graphics, GUI and Applets in Java [ slides ] and [ code ]
Reading: Packages: Chapter 11 in Lewis, 6.7 in Savitch. Lewis covers version 3 of JUnit.
Recitation: JUnit

Week 15: 12/8

Lectures: Java Graphics, GUI and Applets - continued (tuesday). Review (thursday).
Recitation: Programming final.