Date | Topic | Material (Notes/Examples) | Extra material |
Aug 31 | Introduction | Class website. L1.pdf | |
Sep 4, 5 | Java basics I | L2-3.pdf
Writing clear code BankAccount.java | Craps |
Java tutorial: Learning the Java language
BlueJ tutorial Java cheatsheet |
Sep 6 | Lab 1 (Dots) (due Sept 13) | ||
Sep 11, 12 | Java basics II | L4-5.pdf
Scribbler.java | ScopeTester.java |
Java tutorial: Swing |
Sep 13 | Lab 2 (Drawing) (due Sept 20) | ||
Sep 18, 19 | Program analysis | L6.pdf | L7.pdf
TimeTester.java | Magnets |
Analysis of algorithms (by Sedgewick, Wayne @ Princeton) |
Sep 20 | Lab 3 (Pong) (due Sept 27) | ||
Sep 25, 26 | Vectors | VectorExample.java
VectorInterface.java | Vector.java |
Java class Vector |
Sep 27 | Lab4 (Breakout) (due Oct 4) | ||
Oct 2, 3 | Recursion | sierpinski.jpg |
square.jpg |
Sierpinski.java
Towers of Hanoi | HanoiSkeleton.java | Hanoi.java |
|
Oct 4 | Review | Review.pdf | |
Oct 10 | Exam 1 | ||
Oct 11 | Recursion. | Checking blobs| BlobcheckSkeleton.java | |
Oct 16, 18 | Lists | ListVec.java | |
Oct 17 | Lab 5 (Boggle I) (part I due Oct 24) | Oct 23, 25 | Stacks and Queues | Missionaries & cannibals code
Missionaries and cannibals demo |
Stacks and queues |
Oct 24 | Lab 6 (Boggle II)(part II due Oct 31) | ||
Oct 30, 31 | Searching with stacks/queues. Depth-first and breadth-first search. | Searching a maze: MazeSkeleton.java | Maze.java | |
Nov 1 | Lab 7 (Sudoku) (due Nov 8) | ||
Nov 6, 7 | Trees | Animations: Huffman trees | Search trees | |
Nov 8 | Lab 8 (Tetris I) (due Novermber 15th) | ||
Nov 13, 14 | Search trees. | Animations: Binary search tree | AVL trees | RB-tree | |
Nov 15 | Lab 9 (Tetris II) (due Novermber 28th) | ||
Nov 20 | Sorting. | Sorting animations: Programming Pearls | cut-the-knot | Brian's | from UBC | Notes on sorting and searching (by Sedgewick, Wayne @ Princeton) |
Nov 27, 29 | Maps and hashing. | Java Map interface
Java Hashtable |
|
Nov 28 | Lab 10 (Terrain processing) | ||
Dec 4, 5 | Review. | test files | |
Dec 6 | Exam 2 |