mirror of
https://github.com/ossu/computer-science.git
synced 2024-12-27 08:19:35 -05:00
README: Move CS50 before Nand2Tetris
Resolves #440: It has been decided to keep CS50 as required for now, but moving it later in the curriculum to match its high degree of challenge and very low-level orientation. Resolves #463: It has been decided to retain CS50's dynamic programming assignment due to the positive feedback it received as well as the fact that the additional challenge of this problem is acceptable now that the course is later in the curriculum.
This commit is contained in:
parent
e73656d3c2
commit
73477a9619
5
FAQ.md
5
FAQ.md
@ -74,11 +74,10 @@ The [Software Development](https://www.edx.org/micromasters/software-development
|
|||||||
### Why do you recommend skipping the second half of CS50?
|
### Why do you recommend skipping the second half of CS50?
|
||||||
|
|
||||||
The strongest and most useful part of CS50 is the part where they teach C.
|
The strongest and most useful part of CS50 is the part where they teach C.
|
||||||
We wish to retain this in the curriculum for now because it is one of the few chances the student has to play with manual memory management in a (relatively) low-level language.
|
We are retaining this in the curriculum for now because it is one of the few chances the student has to play with manual memory management in a (relatively) low-level language.
|
||||||
Everything after that gets a bit too easy and shallow, to the point that we believe the student's time will be better spent in MIT's Introduction to Computer Science course.
|
By learning C, students will also have a much easier time getting through the following course, Nand2Tetris.
|
||||||
|
|
||||||
That being said, feel free to finish CS50 if you like it and want to.
|
That being said, feel free to finish CS50 if you like it and want to.
|
||||||
But don't skip the MIT Intro course.
|
|
||||||
|
|
||||||
### Why doesn't the curriculum cover/ignore topic X?
|
### Why doesn't the curriculum cover/ignore topic X?
|
||||||
|
|
||||||
|
20
README.md
20
README.md
@ -120,24 +120,16 @@ and is knowledgeable enough now to decide which electives to take.
|
|||||||
|
|
||||||
## Introduction to Computer Science
|
## Introduction to Computer Science
|
||||||
|
|
||||||
These courses will introduce you to the world of computer science.
|
This course will introduce you to the world of computer science.
|
||||||
Both are required, but feel free to skip straight to the second course when CS50 (the first course) moves away from C.
|
|
||||||
([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
|
|
||||||
|
|
||||||
**Topics covered**:
|
**Topics covered**:
|
||||||
|
`computation`
|
||||||
`imperative programming`
|
`imperative programming`
|
||||||
`procedural programming`
|
|
||||||
`C`
|
|
||||||
`manual memory management`
|
|
||||||
`basic data structures and algorithms`
|
`basic data structures and algorithms`
|
||||||
`Python`
|
|
||||||
`SQL`
|
|
||||||
`basic HTML, CSS, JavaScript`
|
|
||||||
`and more`
|
`and more`
|
||||||
|
|
||||||
Courses | Duration | Effort | Prerequisites
|
Courses | Duration | Effort | Prerequisites
|
||||||
:-- | :--: | :--: | :--:
|
:-- | :--: | :--: | :--:
|
||||||
[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | none
|
|
||||||
[Introduction to Computer Science and Programming using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10) | 9 weeks | 15 hours/week | high school algebra
|
[Introduction to Computer Science and Programming using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10) | 9 weeks | 15 hours/week | high school algebra
|
||||||
|
|
||||||
## Core CS
|
## Core CS
|
||||||
@ -208,7 +200,12 @@ It is more interactive but less comprehensive, and it costs money to unlock full
|
|||||||
|
|
||||||
### Core systems
|
### Core systems
|
||||||
|
|
||||||
|
Skip to the second course (Nand2Tetris) when the first course (CS50) moves away from C.
|
||||||
|
([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
|
||||||
|
|
||||||
**Topics covered**:
|
**Topics covered**:
|
||||||
|
`procedural programming`
|
||||||
|
`manual memory management`
|
||||||
`boolean algebra`
|
`boolean algebra`
|
||||||
`gate logic`
|
`gate logic`
|
||||||
`memory`
|
`memory`
|
||||||
@ -224,7 +221,8 @@ It is more interactive but less comprehensive, and it costs money to unlock full
|
|||||||
|
|
||||||
Courses | Duration | Effort | Prerequisites
|
Courses | Duration | Effort | Prerequisites
|
||||||
:-- | :--: | :--: | :--:
|
:-- | :--: | :--: | :--:
|
||||||
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | none
|
[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | introductory programming
|
||||||
|
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | C-like programming language
|
||||||
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris 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 | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I
|
||||||
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
|
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
|
||||||
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
|
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
|
||||||
|
Loading…
Reference in New Issue
Block a user