CPSC 212 Computer Science IV (Data Structures & Algorithms)
Fall 2009
<http://andrewd.ces.clemson.edu/courses/cpsc212/fall09/sched.html>

15:30-16:45TTH Daniel 415

Schedule

DateL#Topic
Thu. Aug.20 01 Getting Started, C, C++
Tue. Aug.25 02
  1. (§ 1.4) C++ class syntax
  2. (§ 1.4) public/private member fucntions, data members
  3. (§ 1.5) "the big three"
  4. (§ 1.6.3, footnote 8, see also p.88) operator overloading, friend operator<<
Thu. Aug.27 03
  1. (§ 1.5.2) parameter passing
  2. (§ 1.4.2) const member function (accessor/mutuator)
  3. (§ 1.6.2) templates
Assignment 1
Tue. Sep.01 04
  1. (§ 1.7.2, esp. last par.) operator[]
  2. (§ 2.1) Asymptotic function definitions, e.g., O(f(n))
  3. (§ 2.3) What to analyze
  4. (§ 2.4) Running time calculations
  5. (§ 1.2.5) Inductive proof
Thu. Sep.03 05
  1. (§ 1.2.5) Inductive proof
  2. Recurrence relations
    1. telescoping sum
    2. recurisve backsubstitution
  3. (§ 7.6.1) Mergesort analysis
  4. Handy formulae
DUE: Assignment 1 (at 23:59:59) Solution
Tue. Sep.08 06
  1. (§ 7.7.5) Quicksort analysis (worst and best cases)
  2. (§ 3.3) STL vector and list (e.g., vector implementation of insertion sort)
  3. (§ 6.3) Binary Heap (using vector<T>)
    1. insert()
    2. deleteMin()
Assignment 2
Thu. Sep.10 07
  1. C++ iostream including ifstream and ofstream; see the input/output with files tutorial
  2. A useful istream member: get
  3. A useful istream manipulator: ws
Tue. Sep.15 08
  1. (§ 3.3) vector and list in the STL
  1. (§ 3.3.1) Iterators
  2. (§ 3.5) List implementation
Thu. Sep.17 09
  • List<Pairs>  vs.   List<Pairs* >
  • (§ 3.6) The Stack ADT
  • (§ 3.6.3) Applications: Postfix Expressions and Infix to Postfix Conversion

DUE: Assignment 2 (at 23:59:59) Solution
Tue. Sep.22 10
  • strstream objects
  • (§ 4.1) Trees (common terms)
  • (§ 4.1.2) Traversals
  • (§ 4.2) Binary Trees
  • (§ 4.3) Binary Search Trees
  • (§ 4.3.1) contains
  • (§ 4.3.2) findMain, findMax

Assignment 3
Thu. Sep.24 11
  1. (§ 4.3.3) insert implementation
  2. (§ 4.3.4) remove (erase) implementation
  3. (§ 4.3.5) destructor and copy assignment operator
  4. (§ 4.6) tree traversals
Tue. Sep.29 12
  1. (§ 4.4) AVL Trees
  2. (§ 4.4.1) single rotation
  3. (§ 4.4.2) double rotation
Thu. Oct.01 13
  1. Revision of text's AVL tree implementation
  2. AVL node insertion
  3. rotate_left and rotate_write redux
  4. AVL node deletion

DUE: Assignment 3 (at 23:59:59) Solution
Assignment 4
Tue. Oct.06 14 Quick Review
  1. C++
  2. Big-Oh
  3. Heaps
  4. Binary Trees
  5. AVL Trees
Thu. Oct.08 15 Midterm Exam (C++, big-oh notation, heaps, AVL trees)
Tue. Oct.13 16 Fall Break
Thu. Oct.15 17
  1. (§ 5.1) Hashing
  2. (§ 5.2) Hash Function
  3. (§ 5.3) Separate Chaining
  4. (§ 5.4) Hash Tables Without Linked Lists

DUE: Assignment 4 (at 23:59:59) Solution
Tue. Oct.20 18
  1. (§ 9) Graph Algorithms
  2. (§ 9.3) Dijkstra's shortest path algorithm
Assignment 5
Thu. Oct.22 19
  1. (§ 9) Graph Algorithms
  2. (§ 9.5) Prim's minimum spanning tree algorithm
Tue. Oct.27 20
  1. (§ 12.6) kd-trees
Thu. Oct.29 21
  1. (Figure 12.43, sort of) kd-tree insertion
  2. (§ 1.6.4 and footnote at bottom of p.295) Function Objects (functors)

DUE: Assignment 5 (at 23:59:59) Solution
Tue. Nov.03 22
  1. nn, knn, range queries
  2. wikipedia
  3. Thinh Nguyen's lecture
  4. Andrew Moore's tutorial

Assignment 6
Thu. Nov.05 23
  1. Qt (Acquired by Nokia in 2008? Interesting...)
  2. Qt Docs (Still a trolltech.com domain)
  3. Qt 3.3
Tue. Nov.10 24
  1. void GLTexobj::mousePressEvent(QMouseEvent* e)
  2. void GLTexobj::mouseReleaseEvent(QMouseEvent* e)
  3. void GLTexobj::paintGL()
  • Redrawwing via updateGL();—don't call paintGL() directly!
Thu. Nov.12 25
  1. menubar signals/slots, kd-tree construction
  2. kd-tree rendering
  3. void GLTexobj::mouseReleaseEvent(QMouseEvent* e) for queries

DUE: Assignment 6 (at 23:59:59) Solution
Tue. Nov.17 25
  1. Qt wrapup
  2. void GLTexobj::initializeGL()
  3. void GLTexobj::resizeGL()

Assignment 7
Thu. Nov.19 26 No class: Student Evaluations (online)
Tue. Nov.24 27 No class: WSETM 2009
Thu. Nov.26-- Thanksgiving
Tue. Dec.01 28 Final Review
Thu. Dec.03 29 DEMO: Assignment 7
(at class time, in 110 McAdams, main lab, back row, own laptop ok)
Fri. Dec.1130 FINAL EXAM 11:30am-2:00pm