Fundamental AlgorithmsCSc I0600–Fall 2021 |
The City College of CUNY Department of Computer Science |
Instructor:
Prof. Nelly Fazio
Lectures: Wednesday, 4:50pm–7:20pm, Online
Office hours: Thursdays, 11:00am–12:00pm (and by
appointment), Online
Email: fazio AT cs DOT ccny DOT cuny DOT edu
[Put CScI0600 in Subject line]
[ Course Description | List of Topics | Textbook | Work Load & Grading | CUNY Academic Integrity Policy | Assignments | Weekly Schedule ]
Prerequisites: CSc 220.
Lecture | Topic | Readings |
1 | Overview. Growth of functions. Asymptotic
notation. InsertionSort. Divide-and-Conquer. Examples. MergeSort. |
CLRS 1–3 Review CLRS 10, 11, 12 |
2 | Solving recurrence: Recursion-tree method. Examples. More on Divide-and-Conquer: Maximum Subarray. Matrix multiplication. |
CLRS 4.1–4.2, 4.4. Review Appendix A |
3 | Solving recurrences: Substitution method. Examples. Solving recurrences: Master method. Examples. |
CLRS 4.3, 4.5 |
4 | Sorting Algorithms: Heapsort. | CLRS 6 |
5 | Sorting Algorithms: Quicksort. | CLRS 7 |
6 | More on sorting: Lower bound and beyond. |
CLRS 8 |
7 | Balanced Search Trees: B-Trees. | CLRS 18 |
8 | Dynamic Programming (I). Example: Rod Cutting. | CLRS 15 |
9 | Dynamic Programming (II). Example: Longest Common Subsequence. | CLRS 15 |
10 | Midterm Exam. (Nov. 3) | |
11 | Greedy Algorithms. Huffman Codes. | CLRS 16 |
12 | Graphs. BFS and DFS. Topological Sort. SCC. | CLRS 22 |
13 | Minimum Spanning Trees. | CLRS 23 |
14 | Shortest Paths: Bellman-Ford algorithm. Single-Source Shortest Paths for DAGs + Dijkstra. All-Pairs Shortest Paths: Floyd-Warshall. |
CLRS 24, 25 |
Final Exam, Dec 15, 2021, 5:00-7:20pm |
Copyright © Nelly Fazio