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