Theory
Timeline: 64 - 128 hours
A full undergraduate-level introduction to the theory of algorithm design, algorithmic analysis, and data structures.
Primary topics: divide and conquer sorting and searching randomized algorithms graph search shortest paths data structures greedy algorithms minimum spanning trees dynamic programming NP-completeness and more
How to run the test cases
Roadmap
Part 1
- Watch 1.1-1.8
- Do Programming Assignment #1.1: Karatsuba Multiplication
- Watch 2.1-4.6
- Do Programming Assignment #1.2: Count Inversions
- Watch 5.1-6.3
- Do Programming Assignment #1.3: Quicksort
- Watch 8.1-9.5
- Do Programming Assignment #1.4: Minimum Cut
- Optional Theory Batch
- Watch 10.1-10.9
- Do Programming Assignment #2.1: Strongly Connected Components
- Watch 11.1-12.3
- Do Programming Assignment #2.2: Dijkstra's Shortest Path
- Watch 13.1-13.6
- Do Programming Assignment #2.3: Median Maintenance
- Watch 14.1-16.2
- Do Programming Assignment #2.4: Two-Sum
Part 2
- Watch 1-21
- Do Programming Assignment #3.1: Scheduling And Minimums Spanning Trees
- Watch 22-32
- Do Programming Assignment #3.2: Clustering
- Watch 33-43
- Do Programming Assignment #3.3: Huffman And Maximum Weight Independent Sets
- Watch 44-48
- Do Programming Assignment #3.4: Knapsack
- Watch 49-67
- Do Programming Assignment #4.1: All Pairs Shortest Path
- Watch 68-78
- Do Programming Assignment #4.2: Traveling Salesman
- Watch 79-84
- Do Programming Assignment #4.3: Traveling Salesman Heuristic
- Watch 85-95
- Do Programming Assignment #4.4: 2SAT
Extra Resources
- Coursera Alogorithms Specialization
For students that want access to extra theory problems as well as paid certificate.