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. |