[Bowdoin Computer Science]

CSci 210: Data Structures

Spring 2009

Tue 11:30 - 12:55, Wed 2:30-3:55, Thu 11:30-12:55 in Searles 126/128

Useful links:

Date Topic Material/Reading Additional readings
Week 1: Jan 20, 22 Introduction. Java basics. Writing clear code. GT 1
Notes: L1.pdf | L2.pdf
Exercises: gnome
Java: Gnome.java | CreditCard | CreditCard-Test | ScannerEg.java
SW: Elements of Java programming
SW: Java cheatsheet
SW: Writing clear code
Lab 1 Lab 1: Dots Loops warmup BlueJ tutorial
Week 2: Jan 27, 29 Java graphics. OOP. GT 2
Notes: L3:Graphics.pdf | L4:OOP.pdf | Java Basics.pdf
Graphics warm-up: GraphicsBase.java | GraphicsAndMouse.java | Scribbler_skeleton.java | Scribbler2.java | Scribbler1.java
Lab 2 Lab 2: Drawing
Java tutorials: Learning the Java language | Swing | Painting in AWT and Swing
Week 3: Febr 3, 5 Arrays. Linked lists. GT 3.1-3.4
Notes: L5:Arrays.pdf | L6: LinkedLists.pdf
Array e.g.: GameEntry.java | Scores.java
SList: Node | SList
Lab 3 Lab 3: Pong
Week 4: Febr 10, 12 Linked lists. Program analysis. GT 3.4, 4
Notes: L8: Program analysis

DList: DNode | DLis1 | DList2 | DList3
Circular lists: CList
Lab 4 Lab 4: Visualizing terrains
Week 5: Febr 17, 19 Program analysis. Recursion. GT 4, 3.5
Notes: Recursion.pdf
Java: ListVector.java | Sierpinski-skeleton.java | Blobcheck-Skeleton.java | Blobcheck.java
Lab 5 Lab 5: Modeling flow on terrains
Week 6: Febr 24, 26 Recursion. GT 3.5
Java: Hanoi-skeleton.java | Peg.java | Hanoi.java
Lab 6 Lab 6: Boggle I
Week 7: March 3 Recursion. Notes: RecursionII.pdf
Exam review: Exam1-review.pdf
Lab 7 Lab 7: Boggle II
EXAM 1: March 5
SPRING BREAK
Week 8: March 24, 26 Stacks and queues. Searching using stacks and queues. BFS and DFS. GT 5
Notes: StacksAndQueues.pdf | SolutionSearch.pdf
Missionaries and cannibals: demo | code
Searching a maze: MazeSkeleton.java | Maze.java
Notes from Princeton: Stacks and queues
Lab 7 Lab 7: Boggle II
Week 9: March 31, April 2 Lists, Vectors and iterators. GT 6
Notes: ListsAndIterators.pdf
Java: VectorExample.java | Vector.java | ListVec.java | IteratorExample.java
Lab 8 Lab 8: Sudoku
Week 10: April 7, 9 Trees. Binary trees. Search trees. GT 7, 10.1
Notes: Trees.pdf
Demo: Binary search tree | AVL trees
GT slides: Trees | Binary search trees
Lab 9 Lab 9: Image processing
Week 11: April 14, 16 Maps and Hashing. GT 9
Notes: Maps.pdf
Java: Map interface | Java Hashtable
In-cass: Counting word frequencies | test files
General reading on Symbol tables (by Sedgewick, Wayne @ Princeton)
Lab 10 Lab 10: Small world
Week 12: April 21, 23 Priority Queues and Heaps. Sorting. GT 8, 11
Notes: PQueues.pdf | Sorting.pdf
Animations: sorting
GT Slides: Heaps.pdf
Computer science question
Notes from Princeton: Sorting and searching
Week 13: April 28, 30 Graphs. GT 13. Notes: Graphs2.pdf DFS applet | BFS applet
Week 14: May 5, 6 Project demo. Class feedback. Review
EXAM 2: May 13, 2-5pm