CMPSCI 311

Introduction to Algorithms

Professor Ramesh Sitaraman

Class Syllabus

Below are the list of topics to be covered in the lectures. Reading assignments should be done before coming to class. All reading assignments are from the textbook. In addition, we will cover some extra material in the discussions.



 

Topic
#

Topic

Reading
Assignment

1

Overview and introduction. Goals, mechanics, what is an algorithm, analyzing insertion sort.

 Read Chapters 1 and 2

2

Asymptotics and Summation. Basic math overview, Asymtotics notation, Limit Rule, Summation techniques.

Read Chapters 3. Appendix A, B, C.

3

Recursive Algorithms and Recurrences., Divide and Conquer, Mergesort, Writing and solving recurrences. 

 Read Chapters 4.

4

Heapsort. Heap data structure, Heapsort, Priority queues.

Read Chapter 6.

5

 Lower bounds and Linear-time sorting. lower bound, stability, counting sort, radix sort.

 Read Chapter 8.

6

 Selection. Finding max, min, median. Order statistics.

 Read Chapter 9.

7

 The divide-and-conquer paradigm. Divide-and-conquer, quicksort, matrix multiplication.

Read Chapters 28.1, 28.2, 7.1, 7.2, 7.3.

8

 Basic data structures and hash tables.

 Read Chapters 10,11, 12.1, 12.2, 12.3.

9

 Number theoretic algorithms:  Basic concepts, GCD, modular exponentiation.

 Read Chapters 31.1 to 31.6.

10

 Intro to Cryptography: Survey of crypto techniques, public-key crypto, RSA.

 Read 31.7.

11

 Dynamic Programming.  Introduction. Three examples – World Series, Making Change, Longest Common Subsequence.

 Read Chapter 15.

12

 Greedy Algorithms. Introduction. Fractional Knapsack, Activity selection.

 Read Chapter 16, except 16.3 and 16.4.

13

Elementary Graph Algorithms. Depth-first search, Topological sort, Breadth-first search.

 Read Chapter 22, except 22.5.

14

Shortest paths. Single-source shortest path: Bellman-Ford Algorithm, Dijkstra’s algorithm. All-pairs shortest path: Floyd-Warshall Algorithm.

 Read Chapters 24, and 25.

15

Minimum Spanning Trees. Prim’s algorithm. Kruskal’s algorithm.

Read Chapter 23.

16

Computational Geometry. Introduction, basic operations, convex hulls, Graham scan, Jarvis’s march.

 Read Chapter 33.

17

NP-Completeness. Intro to computational complexity theory. Reductions. Proofs of NP-completeness. Examples, SAT, 3-SAT, Clique.

 Read Chapter 34.

18

Approximation Algorithms. Vertex cover, Graph Coloring.

 Read Chapter 35.