Dateda | Lecture Notes | Suggested Reading | ||

Jan. 4 Jan. 6 |
Lecture 1: [pdf] Course Overview
Lecture 2: [pdf] Analysis of Algoritms, asymptotic notation |
Chapter 1, Chapter 4. Section 4.3 is optional but useful.
Related Video from IIT | ||

Continue Lecture 2 | ||||

Jan. 11 Jan. 13 | Finish Lecture 2 | Professor Solis-Oba's handout | ||

Lecture 3, case studies on algorithms using loops: [pdf] linear search, insertion sort, standard matrix-vector multiplication and standard matrix multiplication |
Tasteful reading: Fast matrix-vector multiplication, Strassen matrix multiplication | |||

Jan. 18 Jan. 20, 25, 27 | Lecture 4: [pdf] Dictionaries, binary search, recurrence equation |
Chapters 2.1, 2.2 about ADT; Chapter 2.3 about Java's Exceptions;
Professor Solis-Oba's handout about ADT and Exceptions; Chapters 8.1.2, 9.3 about dictionaries; Related Video from IIT | ||

Lecture 5: [pdf] Hash Tables | Chapter 9.2,
Related Video from IIT
Good Hash Table Primes | |||

Feb. 1 Feb. 3 | Lecture 6: [pdf] Trees |
Chapter 7.1, 7.2, 7.3
Related Video from IIT | ||

Lecture 7: [pdf] Binary Search Trees |
Chapter 10.1.
Related Video from Berkeley | |||

Feb. 8 Feb. 10 |
Rabin-Karp rolling hashing used in Assignment 2 (programming) and program design in Java. Finish Lecture 7. Lecture 8: [pdf] Merge-Sort |
Chapter 11.1.
| ||

Finish Lecture 8. Lecture 9: [pdf] AVL trees, definitions, insertion |
Chapter 10.1, 10.2
| |||

Feb. 15 Feb. 17 | Finish Lecture 9. Lecture 10: [pdf] AVL tree deletion |
Chapter 10.1, 10.2
| ||

Lecture 11: [pdf] Muli-way trees and (2-4) trees: definition, properties, search, insertion |
Chapter 10.4
| |||

March 1 March 3 | Midterm exam | |||

Finish Lecture 11: (2-4) trees: insertion, deletion |
Chapter 10.4
| |||

March 8 March 10 | Lecture 12: [pdf] B trees: definition, properties, insertion and deletion; Lecture 13: [pdf] Graphs: definition and notations | Chapters 13.1-13.3 | ||

Lecture 14: [pdf] Graph representation, DFS and applications |
Chapters 13.1-13.3
| |||

March 15 March 17 | Finish Lecture 14. Lecture 15: [pdf] BFS | Chapters 13.1-13.3, 13.4 | ||

Lecture 16: [pdf] Directed Graphs |
Chapters 13.5-13.6
| |||

March 22 March 24 | Lecture 17: [pdf] Weighted Graphs, Shortest Paths (Dijkstra) | Chapters 13.5-13.6 | ||

Lecture 18: [pdf] Minimum Spanning Trees |
Chapters 13.5-13.6
| |||

March 29 March 31 | Quiz 3 and Lecture 19: overview of graph data structures and algorithms | |||

Complete Lecture 19: overview of Dijkstra's algorithm for shortest paths, Prim's and Kruskal's algorithms for minimal spanning trees |
| |||

April 5 April 7 | Lecture 20: [pdf] Sorting | 11.1, 11.2 | ||

Finish Lecture 20 and review for the final |
| |||