CSCI 104 – Summer 2014 Data Structures and Object Oriented Design

Lectures

Lecture Schedule

Lec Topic Slides Notes
1 Course Overview – Motivation for DS, Review of C++ Library classes [streams], Review of Dynamic Memory Management (C++ Interlude 2) [PDF1] [PDF2] Chapters 1, 2, 3
2 Memorial Day (No class)
3 Linked Lists (C++ Interludes 1, Chapter 4) and Abstract Data Types: Set, List, Dictionary/Map (Chapters 1, 8, 18) [PDF1] [PDF2] Chapters 5, 6
4 Review of Recursion (Chapters 2, 5) [PDF] Chapter 4
5 Classes, Templates (C++ Interludes 1), Exceptions (C++ Interlude 3), and Lists revisited: Array lists and vectors (Chapter 9) [PDF] [PDF2] Chapters 7, 8, 9, 13
6 Operator Overloading and Copy Constructors [PDF] Chapters 11
7 Running Time and big-O notation (Chapters 1, 4, 10) [PDF] Chapters 10
8 Inheritance and Polymorphism (C++ Interludes 1, 2, 4) [PDF1] [PDF2] Chapter 12
9 Qt & Inheritance [PDF] Chapter 18
10 STL (C++ Interlude 7), Iterators (C++ Interlude 6) [PDF] [PDF] Chapters 15, 16
11 Stacks and Queues (Chapters 6, 7, 13.1, 13.2, 14.1), Make Utility, and Search Algorithms, Sorted Lists (Chapters 10, 12) [PDF1] [PDF2] [PDF3] Chapter 14, 17
12 Midterm
13 Sorting Algorithms (Chapter 11) [PDF] Chapter 19
14 Graphs, BFS, DFS, and PageRank (Chapters 20.1, 20.2, 20.3.1, 20.3.2) [PDF] Chapter 19, 20
15 Trees and their Implementations (Chapter 15) and Tree Traversals and Search (Chapter 16) and Priority Queues (Chapters 13.3, 14.2, 17) [PDF] Chapter 21, 22
16-17 Balanced Search Trees (Chapter 19) [PDF1] [PDF2] Chapters 23-24
18-19 Hash Tables and their Analysis (Chapter 18.4, lecture notes) [PDF] Chapter 25
20 Bloom Filters, Tries and Suffix Trees (additional handouts) and Other Graph Algorithms and A* search(Chapters 20.4.1--20.4.3, lecture notes) [PDF1] [PDF2] Chapters 25, 26
21 Design Patterns (Additional Handouts) and Review for Final [PDF]
22 Final Exam