| Date | Topics | Reading | Due dates |
|---|---|---|---|
| August 24 (Th) | About the course (Notes) | ||
| August 29 (T) | Objects and classes; Java basics (Notes) | T:1 (skim); T:2; C2J:1-2 | |
| August 31 (Th) | More Java basics (Notes) | C2J:3-9 | |
| September 5 (T) | No class | ||
| September 7 (Th) | No class | ||
| September 12 (T) | UML diagrams; inheritance in Java (Notes) | C2J:10-11 | Homework 1 (design) |
| September 14 (Th) | Interfaces in Java; packages and importing; generics (Notes) | C2J:12-16 | Homework 1 (code) |
| September 19 (T) | String processing (Notes) | C2J:17; API for java.lang.String | Quiz 1 |
| September 21 (Th) | Arrays (Notes) | C2J:18 | Homework 2 (design) |
| September 26 (T) | Sorting, searching, and manipulating arrays (Notes) | T:11 (sections 1-8) | Quiz 2; Homework 2 (code) |
| September 28 (Th) | More about sorting; exceptions (Notes) | ||
| October 3 (T) | Array-based stacks and queues (Notes) | T:6 (sections 1-3, 5); T:7 (sections 1-3, 6-7) | Quiz 3; Homework 3 (design) |
| October 5 (Th) | Miscellaneous review (Notes) | ||
| October 10 (T) | Midterm exam (Review in HTML, PDF) | Homework 3 (code) | |
| October 12 (Th) | Linked lists (Notes) | T:4 | |
| October 17 (T) | Iterators (Notes) | T:8 | Homework 4 (design) |
| October 19 (Th) | List-based stacks, queues, and priority queues (Notes) | T:6 (sections 4, 6-7); T:7 (sections 4-5, 8) | Homework 4 (code) |
| October 24 (T) | No class | ||
| October 26 (Th) | GUIs in Java (Notes) | Sun's tutorial Learning Swing by Example | Quiz 4 |
| October 31 (T) | GUIs in Java, continued (Notes) | C2J:20 | Homework 5 (design) |
| November 2 (Th) | Graphics in Java (Notes) | C2J:21;Sun's tutorial Implementing a Custom Component | Homework 5 (code) |
| November 7 (T) | Graphics in Java, continued (Notes) | C2J:21;Sun's tutorial 2D Graphics (skim) | |
| November 9 (Th) | Recursion (Notes) | T:10; T:11 (sections 9-10) | Homework 6 (design) |
| November 14 (T) | No class | Homework 6 (code) | |
| November 16 (Th) | Trees and sorted binary trees (Dr. Lewis's notes) | T:12; T:13 (sections 1-3); T:15 (sections 1, 3, 5) | |
| November 21 (T) | Heaps and heap-based priority queues (Notes) | T:15 (sections 1, 3, 5) | Quiz 5 |
| November 23 (Th) | No class (holiday) | ||
| November 28 (T) | Files and I/O in Java (Notes) | Sun's tutorial I/O (skim) | |
| November 30 (Th) | Multithreading in Java (Notes) | Sun's tutorial Concurrency (optional) | Quiz 6; Homework 7 (design) |
| December 5 (T) | A little about networking in Java; course wrap-up and evaluations (Notes) | Sun's tutorial Custom Networking (optional) | Homework 7 (code); Homework 8 (design) |
| December 13 (8:30am) | Final exam (Review in HTML, PDF) | Homework 8 (code) |