[Bowdoin Computer Science]

CSci 210: Data Structures

Spring 2008

Tue 11:30 - 12:55, Wed 2:30-3:55, Thu 11:30-12:55 in Searles 126/128
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.