Semester Schedule

It is recommended that students take careful notes from recordings and during class meetings. Before class meetings, it is helpful to review relevant chapters in course notes.

Exams

Exam Time Location Resources
1 Midterm 1 3-5pm June 4th See info page Info, Topics, Practice
2 Midterm 2 3-5pm June 18th See info page Info, Topics, Practice
3 Midterm 3 3-5pm July 2nd See info page Info, Topics, Practice
4 Midterm 4 3-5pm July 16th See info page Info, Topics, Practice
5 Final 3-5pm July 23rd See info page Info, Topics, Practice

Lecture Slides

All slides will be posted in our shared folder.

Lectures

Note: Since this is the Summer session, we Will be progressing through 30 lectures in 20 *actual* lectures. Each summer lecture will cover roughly 1 and a half normal lectures. The schedule listed here is left alone from spring as the *rate* at which we progress through lectures is unpredicatable but the *order* which we go through them is the same.
Topics Chapters
1
  • Course overview
  • Motivation for Data Structures
  • Review (Memory Allocation)
  • Chapter 1.1-1.5
  • Chapter 2
2
  • Runtime
  • Linked Lists
  • Classes (Initialization Lists)
  • Chapter 1.4
  • Chapter 3.3-3.5
  • Chapter 1.3
3
  • Linked Lists (cont.)
  • Operator Overloading Review (if time)
  • Copy Semantics
  • Chapter 1.4
  • Chapter 3.3-3.5
  • Chapter 1.3
4
  • Recursion
  • Chapter 1.3, 1.5
  • Chapter 3.1-3.3, 4.8
5
  • ADTs
  • STL
  • Chapter 3.3,4.8
  • Course Notes
6
  • STL
  • Inheritance
  • Polymorphism
  • Chapter 3.6-3.7
7
  • Polymorphism
  • ArrayLists
  • Chapter 3.6-3.7
8
  • Stacks and Queues
  • Chapter 3.6-3.7
9
  • Stacks
  • Templates
  • Trees
  • Chapter 1.6, 4.1,4.2
10
  • Templates (cont.)
  • Trees
  • Heaps
  • Chapter 6.1-6.5
  • Chapter 9.1
11
  • More Heaps, make-heap
  • Chapter 6.1-6.5
12
  • Graphs
  • BFS and runtime
  • Chapter 9.1, 9.3
13
  • Dijkstra's Algorithm
  • A* Search
  • Chapter 9.2-9.3,9.6
14
  • Tree Traversals
  • Graph Traversals
  • DFS
  • Chapter 4.1-4.2,4.6
15
  • Binary Search Trees
  • AVL Trees (Insert)
  • Chapter 4.3-4.5,4.7
16
  • AVL Trees (Remove)
  • Iterators
  • Class Notes
17
  • Splay Trees
  • Hash Table introduction
  • Chapter 4.7,5.1,5.3
18
  • Hashing Intro (cont)
  • Counting
  • Chapter 5.1,5.3
  • Lewis & Zax Chapter 23
19
  • Recursion - All combinations
  • Chapter 2
  • Class Notes
20
  • Probability
  • Lewis & Zax Chapter 26
21
  • Probability
  • Lewis & Zax Chapter 27
22
  • Probability
  • Lewis & Zax Chapter 28
23
  • Number Theory
  • Lewis & Zax Chapter 29
  • Lewis & Zax Chapter 30
24
  • Number Theory
  • Hash Functions
  • Lewis & Zax Chapter 31
25
  • Hash Functions and Bloom Filters
  • Chapter 5
26
  • Tries
  • Skip Lists
  • Chapter 5
  • Chapter 12.4, 11.1, 11.5
27
  • Amortized Analysis
  • Merge Trees
  • Chapter 11.1,11.5
28
  • Final Review
  • Class notes