Move around courses reflecting new structure

pull/393/head
Joshua Hanson 2017-02-25 16:47:46 -05:00
parent 72d8be14b9
commit b638370f0b
1 changed files with 49 additions and 26 deletions

View File

@ -136,7 +136,6 @@ and more.
Courses | Duration | Effort | Prerequisites Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--: :-- | :--: | :--: | :--:
[Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) | 10 weeks | 10 hours/week | high school math
[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!)| 15 weeks | 8 hours/week | high school math [Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!)| 15 weeks | 8 hours/week | high school math
[Calculus One](https://www.coursera.org/learn/calculus1)| 16 weeks | 8-10 hours/week | pre-calculus [Calculus One](https://www.coursera.org/learn/calculus1)| 16 weeks | 8-10 hours/week | pre-calculus
[Calculus Two: Sequences and Series](https://www.coursera.org/learn/advanced-calculus)| 7 weeks | 9-10 hours/week | Calculus One [Calculus Two: Sequences and Series](https://www.coursera.org/learn/advanced-calculus)| 7 weeks | 9-10 hours/week | Calculus One
@ -157,9 +156,6 @@ virtual machines;
high-level languages; high-level languages;
compilers; compilers;
operating systems; operating systems;
relational databases;
transaction processing;
data modeling;
network protocols; network protocols;
and more. and more.
@ -167,7 +163,6 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--: :-- | :--: | :--: | :--:
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) | 6 weeks | 7-13 hours/week | none [Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) | 6 weeks | 7-13 hours/week | none
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | Part I [Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | Part I
[Databases](https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about)| 12 weeks | 8-12 hours/week | some programming, basic CS
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| - | 412 hours/week | algebra, probability, basic CS [Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| - | 412 hours/week | algebra, probability, basic CS
**Note 1**: The 'From Nand to Tetris' course, in part I, will have you create an entire computer architecture from scratch, but is missing key elements from computer architecture such as pipelining and memory hierarchy. **Note 1**: The 'From Nand to Tetris' course, in part I, will have you create an entire computer architecture from scratch, but is missing key elements from computer architecture such as pipelining and memory hierarchy.
@ -182,6 +177,12 @@ Both of the above textbooks should be considered a requirement for anyone who in
### Core theory ### Core theory
The Princeton Algorithms courses are highly recommended as a more practical, implementation-focused complement to the more theory-focused Stanford Algorithms courses.
Ideally, students would do both sets of courses since they complement each other nicely.
However, Part II of Princeton Algorithms is rarely available, so Stanford Algorithms is the recommended choice if you cannot do both.
Another difference is that Stanford Algorithms assignments can use any programming language;
Princeton Algorithms assignments use Java but don't require extensive Java experience.
**Topics covered**: **Topics covered**:
divide and conquer; divide and conquer;
sorting and searching; sorting and searching;
@ -193,22 +194,30 @@ greedy algorithms;
minimum spanning trees; minimum spanning trees;
dynamic programming; dynamic programming;
NP-completeness; NP-completeness;
formal languages;
Turing machines;
computability;
and more. and more.
#### Stanford Algorithms
Courses | Duration | Effort | Prerequisites Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--: :-- | :--: | :--: | :--:
[Algorithms (1/4)](https://www.coursera.org/learn/algorithms-divide-conquer) | 4 weeks | 4-8 hours/week | one programming language; proofs; probability [Algorithms (1/4)](https://www.coursera.org/learn/algorithms-divide-conquer) | 4 weeks | 4-8 hours/week | one programming language; proofs; probability
[Algorithms (2/4)](https://www.coursera.org/learn/algorithms-graphs-data-structures) | 4 weeks | 4-8 hours/week | previous algorithms course [Algorithms (2/4)](https://www.coursera.org/learn/algorithms-graphs-data-structures) | 4 weeks | 4-8 hours/week | previous algorithms course
[Algorithms (3/4)](https://www.coursera.org/learn/algorithms-greedy) | 4 weeks | 4-8 hours/week | previous algorithms course [Algorithms (3/4)](https://www.coursera.org/learn/algorithms-greedy) | 4 weeks | 4-8 hours/week | previous algorithms course
[Algorithms (4/4)](https://www.coursera.org/learn/algorithms-npcomplete) | 4 weeks | 4-8 hours/week | previous algorithms course [Algorithms (4/4)](https://www.coursera.org/learn/algorithms-npcomplete) | 4 weeks | 4-8 hours/week | previous algorithms course
[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+Fall2016/about) | 8 weeks | 10 hours/week | discrete mathematics
#### Princeton Algorithms
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) | 6 weeks | 6-12 hours/week | some programming
[Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) | 6 weeks | 6-12 hours/week | Algorithms, Part I
### Core applications ### Core applications
**Topics covered**: **Topics covered**:
relational databases;
transaction processing;
data modeling;
neural networks; neural networks;
supervised learning; supervised learning;
unsupervised learning; unsupervised learning;
@ -221,12 +230,17 @@ and more.
Courses | Duration | Effort | Prerequisites Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--: :-- | :--: | :--: | :--:
[Databases](https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about)| 12 weeks | 8-12 hours/week | some programming, basic CS
[Machine Learning](https://www.coursera.org/learn/machine-learning)| 11 weeks | 4-6 hours/week | linear algebra [Machine Learning](https://www.coursera.org/learn/machine-learning)| 11 weeks | 4-6 hours/week | linear algebra
[Computer Graphics](https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x)| 6 weeks | 12 hours/week | C++ or Java, linear algebra [Computer Graphics](https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x)| 6 weeks | 12 hours/week | C++ or Java, linear algebra
[Cryptography I](https://www.coursera.org/course/crypto)| 6 weeks | 5-7 hours/week | linear algebra; probability [Cryptography I](https://www.coursera.org/course/crypto)| 6 weeks | 5-7 hours/week | linear algebra; probability
## Advanced CS ## Advanced CS
Unfortunately, advanced topics in computer science generally have less coverage in online courses.
(This is because seldom few make it past beginner-level courses, there is low demand.)
Therefore, some of these courses may not be available regularly.
### Advanced programming ### Advanced programming
**Topics covered**: **Topics covered**:
@ -250,29 +264,38 @@ Courses | Duration | Effort | Prerequisites
### Advanced math ### Advanced math
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) | 10 weeks | 10 hours/week | high school math
### Advanced systems ### Advanced systems
### Advanced theory
### Advanced applications
## Electives
Some of these courses are offered less frequently, but you are encouraged to take them whenever they are available if you're interested.
- Compilers is recommended to any student who took a strong interest in the Programming Languages courses.
- Natural Language Processing is recommended to anyone who thinks they want to specialize in machine learning, artificial intelligence, etc.
- Cryptography is recommended to anyone who wants to learn more about zero knowledge systems and other advanced topics in cryptography.
- The Princeton Algorithms courses are highly recommended as a more practical, implementation-focused complement to the Stanford Algorithms courses recommended as part of Core CS.
However, Part II is rarely available, so they are electives at this time.
Note that the assignments are in Java, but don't require extensive Java experience.
Courses | Duration | Effort | Prerequisites Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--: :-- | :--: | :--: | :--:
[Cryptography II](https://www.coursera.org/course/crypto2)| 6 weeks | 6-8 hours/week | Cryptography I
### Advanced theory
**Topics covered**:
formal languages;
Turing machines;
computability;
and more.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+Fall2016/about) | 8 weeks | 10 hours/week | discrete mathematics
### Advanced applications
Compilers is recommended to any student who took a strong interest in the Programming Languages courses.
Natural Language Processing is recommended to anyone who thinks they want to specialize in machine learning, artificial intelligence, etc.
Cryptography is recommended to anyone who wants to learn more about zero knowledge systems and other advanced topics in cryptography.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)| 9 weeks | 6-8 hours/week | none [Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)| 9 weeks | 6-8 hours/week | none
[Introduction to Natural Language Processing](https://www.coursera.org/learn/natural-language-processing)| 12 weeks | - | Python programming [Introduction to Natural Language Processing](https://www.coursera.org/learn/natural-language-processing)| 12 weeks | - | Python programming
[Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) | 6 weeks | 6-12 hours/week | some programming [Cryptography II](https://www.coursera.org/course/crypto2)| 6 weeks | 6-8 hours/week | Cryptography I
[Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) | 6 weeks | 6-12 hours/week | Algorithms, Part I
## Pro CS ## Pro CS