[Bowdoin Computer Science]

CSci 210: Data Structures

Fall 2009

Tue 8:30 - 9:55, Wed 8:00-9:25, Thu 8:30-9:55 in Searles 126/128

Useful links:

Date Topic Material/Reading Homework WWW useful material
Sept 3, 8 Class introduction.
Sorting and searching. Bubble-sort, insertion sort, selection sort. Linear search and binary search.
Notes: Intro.pdf | Searching.pdf | Sorting.pdf
Animations: all sorts | Progr.pearls
Sept 9 Lab 1 (Dots) (due Sept 16) BlueJ tutorial
Sept 10 Java review. Notes: JavaBasics.pdf
Exercises: gnome.pdf
Java: Gnome.java | CreditCard | CreditCard-Test | ScannerEg.java
Hw1.pdf SW: Java cheatsheet | Elements of Java programming
Sept 15, 16 Algorithm analysis. Reading: LC chapter 2
Notes: Analysis.pdf [4up]
Hw2.pdf
Sept 17 OOP (inheritance, class hierarchies, polymorphism, etc). Notes: OOP.pdf [4up]
Reading: LC chapter 3.3
Sept 22 Java graphics. Notes: Graphics.pdf [4up]
Java: GraphicsBase.java | GraphicsAndMouse.java | Scribbler_skeleton.java | Scribbler2.java | Scribbler1.java
Sept 23 Lab 2: Drawing (due Sept 30) Java tutorials: Learning the Java language | Swing | Painting in AWT and Swing
Sept 24 Arrays. Notes: Arrays.pdf [4up]
Java: GameEntry.java | Scores.java
Sept 28 Linked lists Reading: LC chapter 4
Notes: LinkedLists.pdf [4up]
SList: Node | SList
DList: DNode | DLis1 | DList2 | DList3
Sept 30 Lab 3: Pong (due Oct 7)
Oct 1 Class cancelled
Oct 6 Linked lists. Vectors/Arraylists. Java: VectorExample.java | ListVector.java
Oct 7, 8 Recursion. Reading: LC chapter 7
Notes: Recursion.pdf | [4up]
Java: ListVector.java | Sierpinski-skeleton.java | Blobcheck-Skeleton.java | Hanoi-skeleton.java | Peg.java
Hw3.pdf
Oct 14 Lab 4: Image processing (due Oct 21)
Oct 15 More recursion. Notes: RecursionII.pdf | [4up]
Exam review: Exam1-review.pdf
October 20th, 7-8:30pm EXAM 1
October 20, 22 Stacks and queues. Searching using stacks and queues. Reading: LC chap 3, 5
Notes: StacksAndQueues.pdf
Java: Missionaries and cannibals: demo | code
Hw4.pdf Notes from Princeton: Stacks and queues
Oct 21 Lab5: Terrains and GIS (due Oct 28)
October 27, 29 Searching using stacks and queues. BFS and DFS. Notes: SolutionSearch.pdf
Searching a maze: MazeSkeleton.java
Oct 28 Lab 6: Sudoku
Nov 3 Lists, Vectors and iterators. Notes: ListsAndIterators.pdf
Java: Vector.java | IteratorExample.java
Nov 4 Lab 7: Boggle
Nov 5 class cancelled
Nov 10, 11, 12 Hashing and maps. Notes: Maps.pdf General reading on Symbol tables (by Sedgewick, Wayne @ Princeton)
Nov 17 Lab 8: Small World
Nov 18, 19 Graphs and networks (paths, connectivity, BFS, DFS). Notes: Graph-traversal.pdf
Reading: Networks (from David Easley and Jon Kleinberg, Cornell)
Nov 24 Lab 8: Small World
Nov 25, 26 Thanksgiving break
Dec 1, 3 Trees and binary search trees. Reading: LC chapter Trees
Notes: Trees.pdf
Demo: Binary Search trees | AVL trees
Dec 2 Small world demo.
Lab 9: Percolation
Dec 8 Priority Queues and Heaps. Reading: LC chapter priority queues
Notes: PQueues.pdf
Dec 9 Graph problems in social networks. Notes: socialnets.pdf Betweenness clustering
Giant component
Network growth
Dec 10 Review and problems. Class feedback. Review2.pdf | Problems.pdf
Dec 18, 9am-12pm EXAM 2 (CHECK AGAIN DATE, TIME AND ROOM)