Data Structures Lectures for Summer 2009
|
Lecture |
Date |
Topics |
Overheads |
Handouts |
|---|---|---|---|---|
|
01 |
5/12 |
Complexity Analysis, Big-oh notation: best-case, worst-case, average-case; sequential search, binary search; simple sorts: selection, bubble, insertion |
||
|
02 |
5/12 |
Divide-and-conquer vs. dynamic programming |
|
|
|
03 |
5/19 |
Software design with UML: class diagrams, use-case diagrams, and collaboration diagrams Documentation: Writing APIs, preconditions and postconditions, enforcing preconditions with exceptions, and pydoc web-based documentation |
|
|
|
04 |
5/19 |
What to Test: user-friendly, robust, reliable, acceptable performance Choosing Test Data: haphazard, black-box, and white-box When to Test: Unit, integration, acceptance, and regression testing Python Unit testing |
|
|
|
05 |
5/19 |
Collections, Abstract Data Types (ADTs), Arrays, and introduction to linked structures. Tradeoffs between time and space complexity |
|
|
|
06 |
5/19 |
Stack ADT |
|
|
|
07 |
5/26 |
Queue ADT |
||
|
08 |
5/26 |
Priority Queue: Linked list and heap based |
|
|
|
09 |
6/2 |
List ADTs: index-based, content-based, and positional-based lists |
|
|
|
10 |
6/2 |
Recursion: Advanced, recursive sorts (merge and quicksort) and Backtracking with recursion |
||
|
11 |
6/9 |
Test 1 |
|
|
|
12 |
6/16 |
Tree terminology, general Binary tree and Binary Search Tree (BST) implementations |
||
|
13 |
6/23 |
AVL implementation |
|
|
|
14 |
6/30 |
Set and Dictionary ADT implementations with linked lists and hashing |
|
|
|
15 |
7/14 |
Graph ADT, adjacency matrix and adjacency list implementations, DFS and BFS graph traversals |
|
|
|
|
7/30 (Th) |
Final Exam 12:30-2:20 PM |
|