CS 201 - Spring 2008

Data Structures


Announcements

Fall courses to consider:

TextBook

Our textbook is available as a PDF: JavaStructures.pdf

Links

Exams

  1. Exam 1 Programming Question due Friday 3/21 at 9:05 AM. Exam 1 written portion in class on Friday 3/21.
  2. Exam 2 take-home due Wednesday 4/30 at 9:05 AM.
  3. Final: Self-scheduled during the Final Exam period.

Homework

  1. Homework 1 due Wednesday 2/20. (Solutions).
  2. Homework 2 due Friday 2/29. (Solutions).
  3. Homework 3 due Friday 3/7. (Solutions).
  4. Homework 4 due Friday 3/14. (Solutions).
  5. Midterm 1 due Friday 3/21.
  6. Homework 6 due Wednesday 4/9. (Solutions).
  7. Homework 7 due Wednesday 4/16. (Solutions).
  8. Homework 8 due Wednesday 4/23. (Solutions).
  9. Midterm 2 due Wednesday 4/30.
  10. Final Project due Friday 5/9.

Syllabus

Date         Lectures and Examples     Reading
 
Week 1
Mon 2/11 Lect 1: Course info, overview, Java review, Examples     Chap 0, 1.1-1.4, App B
Wed 2/13     Lect 2: Unix and Java and emacs practice in MBH 632 lab     Online notes, HW 1
Fri 2/15     Lect 3: Interfaces, more Java review, Examples     Chap 1.5-1.10, 2
 
Week 2
Mon 2/18     Lect 4: Vectors, Examples     Chap 3
Wed 2/20     Lect 5: Vector Implementations, javadoc, Examples     Chap 3
 
Week 3
Mon 2/25     Lect 6: Algorithmic Complexity, Examples     Chap 5, handout
Wed 2/27     Lect 7: Generics, Examples     Chap 4
Fri 2/29     Lect 8: Sorting: Bubble, Selection, Insertion, Examples     Chap 6.1-6.5
 
Week 4
Mon 3/3     Lect 9: Comparing objects, Comparators, Examples     Chap 6.7-6.9
Wed 3/5     Lect 10: Sorting: Merge, Quick, Bucket, radix, spaghetti, counting     Chap 6.6-6.9
Fri 3/7     Lect 11: Lists, List Interface, SinglyLinkedLists     Chap 9.1-9.4
 
Week 5
Mon 3/10     Lect 12: IntLists     Homework 4
Wed 3/12     Lect 13: CircularList, DoublyLinkedList     Chap 9.6, 9.5
Fri 3/14     Lect 14: Stacks, stack applications, postfix notation     Chap 10.1
 
Week 6
Mon 3/17     Lect 15: Queues     Chap 10.2
Wed 3/19     Lect 16: MazeRunner, Enumerations, Iterators     Chap 10, 8
Fri 3/21     Midterm 1    
 
Week 7
Mon 3/31     Lect 18: Comparable objects, Ordered structures     Chap 11
Wed 4/2     Lect 19: Trees, IntTrees, IntTreeOps     Chap 12.1, Homework 6
Fri 4/4     Lect 20: Tree traversals, priority queues     Chap 12.6, 13
 
Week 8
Mon 4/7     Lect 21: Heaps, Heap applet     Chap 13.4.1
Wed 4/9     Lect 22: Skew heaps, applets, HW 7 heap applet, source     Chap 13.4.3
Fri 4/11     Lect 23: Binary search trees, Bst.java     Chap 14
 
Week 9
Mon 4/14     Lect 24: BinarySearchTree.java, Splay trees     Chap 14.5-14.6
Wed 4/16     Lect 25: Applets: Layout managers, event handling     Java Tutorial
Fri 4/18     Lect 26: AVL trees, 2-3 trees     Chap 14.7
 
Week 10
Mon 4/21     Lect 27: 2-3-4 trees, red-black trees, Graeme Connell's Red-Black applet     Chap 14.7
Wed 4/23     Lect 28: Hashtables, resolving collisions, Exam 2 information     Chap 15
Fri 4/25     Lect 29: Threads, TwoThreads, SimpleThread, Anim, Squash, JDK 1.4 sample applets (Meet in MBH 632)        
 
Week 11
Mon 4/28     Lect 30: Mouse events, double-buffering (Meet in MBH 632)        
Wed 4/30     Lect 31: Graphs, Graph implementations     Chap 16.1-16.3
Fri 5/2     Lect 32: Graph algorithms     Chap 16.4
 
Week 12
Mon 5/5     Lect 33: Final project lab session (meet in MBH 632)      
Wed 5/7     Lect 34: Course summary, final exam review      
Fri 5/9     Lect 35: Final project presentations (meet in MBH 632)