Skip to content

Commit 73477a9

Browse files
committed
README: Move CS50 before Nand2Tetris
Resolves ossu#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 ossu#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.
1 parent e73656d commit 73477a9

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

FAQ.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,10 @@ The [Software Development](https://www.edx.org/micromasters/software-development
7474
### Why do you recommend skipping the second half of CS50?
7575

7676
The strongest and most useful part of CS50 is the part where they teach C.
77-
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.
78-
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.
77+
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.
78+
By learning C, students will also have a much easier time getting through the following course, Nand2Tetris.
7979

8080
That being said, feel free to finish CS50 if you like it and want to.
81-
But don't skip the MIT Intro course.
8281

8382
### Why doesn't the curriculum cover/ignore topic X?
8483

README.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,24 +120,16 @@ and is knowledgeable enough now to decide which electives to take.
120120

121121
## Introduction to Computer Science
122122

123-
These courses will introduce you to the world of computer science.
124-
Both are required, but feel free to skip straight to the second course when CS50 (the first course) moves away from C.
125-
([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
123+
This course will introduce you to the world of computer science.
126124

127125
**Topics covered**:
126+
`computation`
128127
`imperative programming`
129-
`procedural programming`
130-
`C`
131-
`manual memory management`
132128
`basic data structures and algorithms`
133-
`Python`
134-
`SQL`
135-
`basic HTML, CSS, JavaScript`
136129
`and more`
137130

138131
Courses | Duration | Effort | Prerequisites
139132
:-- | :--: | :--: | :--:
140-
[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
141133
[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
142134

143135
## Core CS
@@ -208,7 +200,12 @@ It is more interactive but less comprehensive, and it costs money to unlock full
208200

209201
### Core systems
210202

203+
Skip to the second course (Nand2Tetris) when the first course (CS50) moves away from C.
204+
([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
205+
211206
**Topics covered**:
207+
`procedural programming`
208+
`manual memory management`
212209
`boolean algebra`
213210
`gate logic`
214211
`memory`
@@ -224,7 +221,8 @@ It is more interactive but less comprehensive, and it costs money to unlock full
224221

225222
Courses | Duration | Effort | Prerequisites
226223
:-- | :--: | :--: | :--:
227-
[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
224+
[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
225+
[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
228226
[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
229227
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
230228
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms

0 commit comments

Comments
 (0)