| Date | Topic | Material (Notes/Examples) | Extra material |
| Jan 22, 23 | Introduction.
Java basics. |
Class website.
JavaOverview.pdf
Writing clear code (from Princeton) Examples: BankAccount.java | Craps |
Elements of Java programming (from Princeton)
Java cheatsheet (from Princeton) |
| Jan 24 | Lab 1 (Dots) (due Jan 31) | Java tutorial: Learning the Java language
BlueJ tutorial |
|
| Jan 29, 30 | Java programming (graphics, inheritance, interfaces, scope) | JavaGraphics1.pdf
JavaBasics.pdf Scribbler.java |
Java tutorial: Swing
Painting in AWT and Swing |
| Jan 31 | Lab 2 (Drawing) (due Febr 7) | ||
| Febr 5, 6 | More Java. Program analysis. Program structure. | JavaBasics2.pdf |
ScopeTester.java
ProgramAnalysis.pdf | TimeTester.java Magnets.pdf | Magnets |
Analysis of algorithms (by Sedgewick, Wayne @ Princeton) |
| Febr 7 | Lab 3 (Pong) (due Febr 14) | ||
| Febr 12, 13 | Vectors |
VectorExample.java
Java class Vector VectorInterface.java Vector.java |
|
| Febr 14 | Lab4 (Breakout) (due Febr 26) | ||
| Febr 19 | Review | Review.pdf | |
| Febr 21 | Exam 1 | ||
| Febr 26, 27 | Recursion | sierpinski.jpg |
square.jpg |
Sierpinski.java
Towers of Hanoi | HanoiSkeleton.java | Hanoi.java Checking blobs| BlobcheckSkeleton.java | BlobCheck.java | |
| Febr 28th | Lab 5 (Boggle I) (part I due March 6th) | ||
| March 4, 5 | Lists | Lists.pdf
ListVec.java |
|
| March 6 | Lab 6 (Boggle II) (part II due March 27) | ||
| March 25, 26 | Stacks and Queues | Missionaries and cannibals: demo | Skeleton code | Notes from Princeton: Stacks and queues |
| March 27 | Lab 7 (Terrain 1) (due April 3rd) | ||
| April 1, 2 | Searching with stacks/queues. Depth-first and breadth-first search. | Searching a maze: MazeSkeleton.java | solution: Maze.java | |
| April 3 | Lab 8 (Sudoku) (due April 10) | ||
| April 8, 9 | Trees | Animations: Binary search tree | Huffman trees | Huffman coding notes (from wiki) | Slides (from Goodrich & Tamassia): Trees |
| April 10 | Lab 9 (Tetris I) (due April 17th) | ||
| April 15, 16 | Search trees. | Animations: Binary search tree | AVL trees | Slides (from Goodrich & Tamassia): Binary search trees | AVL trees | (2,4)-trees | Red-Black trees |
| April 17 | Lab 10 (Tetris II) (due April 24th) | ||
| April 22 | Priority queues: the heap. | ||
| April 23 | Sorting. | Sorting animations: from Data structures and algorithms in Java (Goodrich & Tamassia) | Programming Pearls | Brian's | from UBC | Computer science question | Notes on sorting and searching (by Sedgewick, Wayne @ Princeton) |
| April 24 | Lab 11 (Tetris III) (due May 1st) | ||
| April 29, 30, May 1 | Maps and hashing. | Java Map interface | Java Hashtable
In-class exercise: counting word frequencies in a text file. Here are some test files. | General reading on Symbol tables (by Sedgewick, Wayne @ Princeton) |
| May 6, 7 | Review. |