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

Chapter 11 Power Point

Algorithm Computational Complexity Analysis Questions

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

Chapter 12 PowerPoint


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

Chapter 13 PowerPoint


06

5/19

Stack ADT

Chapter 14 PowerPoint


07

5/26

Queue ADT

Chapter 15 PowerPoint

Queue and Priority Queue Questions

08

5/26

Priority Queue: Linked list and heap based

Chapter 18 (Heaps) PowerPoint


09

6/2

List ADTs: index-based, content-based, and positional-based lists

Chapter 16 PowerPoint


10

6/2

Recursion: Advanced, recursive sorts (merge and quicksort) and Backtracking with recursion

Chapter 17 PowerPoint

Recursive Backtracking Questions

11

6/9

Test 1


Review Topics for Test 1

12

6/16

Tree terminology, general Binary tree and Binary Search Tree (BST) implementations

Chapter 18 PowerPoint

Tree Questions

13

6/23

AVL implementation



14

6/30

Set and Dictionary ADT implementations with linked lists and hashing

Chapter 19 PowerPoint


15

7/14

Graph ADT, adjacency matrix and adjacency list implementations, DFS and BFS graph traversals

Chapter 20 PowerPoint



7/30 (Th)

Final Exam 12:30-2:20 PM


Review Topics for Final Exam