Lecture Notes


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