Skip to content

Commit 00feb17

Browse files
authored
Rework Theory coursepage to no longer use Coursera as its primary resource (#11)
* start reworking theory * Roadmap for Part 1 * Best guess at roadmap for Part 2 * Fix typo
1 parent 32d6dd8 commit 00feb17

File tree

1 file changed

+52
-16
lines changed

1 file changed

+52
-16
lines changed

docs/computer-science/theory/index.md

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,61 @@ sidebar_position: 7
55
# Theory
66
*Timeline: 64 - 128 hours*
77

8-
Covers everything typically found on the theoretical side of a Data Structures & Algorithms course. Introduction to DSA was covered throughout [Program Design](../program-design/).
8+
A full undergraduate-level introduction to the theory of algorithm design, algorithmic analysis, and data structures.
99

10-
The primary topics in this part of the specialization are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts).
10+
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
11+
- [Course website](https://www.algorithmsilluminated.org/)
12+
- **Playlists:**
13+
- [Part 1](https://www.youtube.com/playlist?list=PLXFMmlk03Dt7Q0xr1PIAriY5623cKiH7V)
14+
- [Part 2](https://www.youtube.com/playlist?list=PLXFMmlk03Dt5EMI2s2WQBsLsZl7A5HEK6)
15+
- [Programming problems and test cases](https://github.com/beaunus/stanford-algs/)
16+
- [Discussion forums](https://algorithms.freeforums.net/)
1117

12-
- [Algorithms 1](https://www.coursera.org/learn/algorithms-divide-conquer), 16-32 hrs
18+
## How to run the test cases
19+
- [General information](https://github.com/beaunus/stanford-algs/wiki/Using-Test-Cases)
20+
- [Java](https://github.com/beaunus/stanford-algs/blob/master/tester/java/README.md)
21+
- [PHP](https://github.com/beaunus/stanford-algs/blob/master/tester/php/README.MD)
22+
- [Python](https://github.com/beaunus/stanford-algs/blob/master/tester/python3/README.md)
23+
- [Shell (any programming language)](https://github.com/beaunus/stanford-algs/blob/master/tester/shell/README.md)
1324

14-
The primary topics in this part of the specialization are: data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of breadth-first and depth-first search, connectivity, shortest paths), and their applications (ranging from deduplication to social network analysis).
25+
## Roadmap
26+
### Part 1
27+
- Watch 1.1-1.8
28+
- Do [Programming Assignment #1.1: Karatsuba Multiplication](https://github.com/beaunus/stanford-algs/tree/46a5ee9429a22d3545a51ce4b346e09e285ac5e0/testCases/course1/assignment1Multiplication)
29+
- Watch 2.1-4.6
30+
- Do [Programming Assignment #1.2: Count Inversions](https://github.com/beaunus/stanford-algs/tree/master/testCases/course1/assignment2Inversions)
31+
- Watch 5.1-6.3
32+
- Do [Programming Assignment #1.3: Quicksort](https://github.com/beaunus/stanford-algs/tree/master/testCases/course1/assignment3Quicksort)
33+
- Watch 8.1-9.5
34+
- Do [Programming Assignment #1.4: Minimum Cut](https://github.com/beaunus/stanford-algs/tree/master/testCases/course1/assignment4MinCut)
35+
- [Optional Theory Batch](https://github.com/beaunus/stanford-algs/tree/master/testCases/course1/optionalTheoryProblemsBatch1)
36+
- Watch 10.1-10.9
37+
- Do [Programming Assignment #2.1: Strongly Connected Components](https://github.com/beaunus/stanford-algs/tree/master/testCases/course2/assignment1SCC)
38+
- Watch 11.1-12.3
39+
- Do [Programming Assignment #2.2: Dijkstra's Shortest Path](https://github.com/beaunus/stanford-algs/tree/master/testCases/course2/assignment2Dijkstra)
40+
- Watch 13.1-13.6
41+
- Do [Programming Assignment #2.3: Median Maintenance](https://github.com/beaunus/stanford-algs/tree/master/testCases/course2/assignment3Median)
42+
- Watch 14.1-16.2
43+
- Do [Programming Assignment #2.4: Two-Sum](https://github.com/beaunus/stanford-algs/tree/master/testCases/course2/assignment4TwoSum)
1544

16-
- [Algorithms 2](https://www.coursera.org/learn/algorithms-graphs-data-structures), 16-32 hrs
17-
18-
The primary topics in this part of the specialization are: greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, optimal search trees).
19-
20-
- [Algorithms 3](https://www.coursera.org/learn/algorithms-greedy), 16-32 hrs
21-
22-
The primary topics in this part of the specialization are: shortest paths (Bellman-Ford, Floyd-Warshall, Johnson), NP-completeness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems (analysis of heuristics, local search).
23-
24-
- [Algorithms 4](https://www.coursera.org/learn/algorithms-npcomplete), 16-32 hrs
45+
### Part 2
46+
- Watch 1-21
47+
- Do [Programming Assignment #3.1: Scheduling And Minimums Spanning Trees](https://github.com/beaunus/stanford-algs/tree/master/testCases/course3/assignment1SchedulingAndMST)
48+
- Watch 22-32
49+
- Do [Programming Assignment #3.2: Clustering](https://github.com/beaunus/stanford-algs/tree/master/testCases/course3/assignment2Clustering)
50+
- Watch 33-43
51+
- Do [Programming Assignment #3.3: Huffman And Maximum Weight Independent Sets](https://github.com/beaunus/stanford-algs/tree/master/testCases/course3/assignment3HuffmanAndMWIS)
52+
- Watch 44-48
53+
- Do [Programming Assignment #3.4: Knapsack](https://github.com/beaunus/stanford-algs/tree/master/testCases/course3/assignment4Knapsack)
54+
- Watch 49-67
55+
- Do [Programming Assignment #4.1: All Pairs Shortest Path](https://github.com/beaunus/stanford-algs/tree/master/testCases/course4/assignment1AllPairsShortestPath)
56+
- Watch 68-78
57+
- Do [Programming Assignment #4.2: Traveling Salesman](https://github.com/beaunus/stanford-algs/tree/master/testCases/course4/assignment2TSP)
58+
- Watch 79-84
59+
- Do [Programming Assignment #4.3: Traveling Salesman Heuristic](https://github.com/beaunus/stanford-algs/tree/master/testCases/course4/assignment3TSPHeuristic)
60+
- Watch 85-95
61+
- Do [Programming Assignment #4.4: 2SAT](https://github.com/beaunus/stanford-algs/tree/master/testCases/course4/assignment4TwoSat)
2562

2663
## Extra Resources
27-
- [Algorithms Illuminated](https://www.algorithmsilluminated.org/): The textbook authored by the instructor of this set of courses. The textbook covers roughly the same material and can be used as either an alternative or as a supplement to the courses.
28-
- [Discussion forums](https://algorithms.freeforums.net/): Tim Roughgarden actually reads these from time to time.
29-
- [Test cases and test runners](https://github.com/beaunus/stanford-algs): Contains test cases for all assignments in the courses. You can use this to validate the correctness of your implementations. Keep in mind that the input files in the repository may have a slightly different format than the ones you download from Coursera (such as spaces instead of tabs).
64+
- [Coursera Alogorithms Specialization](https://www.coursera.org/specializations/algorithms)
65+
For students that want access to extra theory problems as well as paid certificate.

0 commit comments

Comments
 (0)