@ -139,7 +139,7 @@ This course will introduce you to the world of computer science. Students who ha
Courses | Duration | Effort | Prerequisites | Discussion
:-- | :--: | :--: | :--: | :--:
[Introduction to Computer Science and Programming using Python ](https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/ ) ([alt](https://www.edx.org/course/introduction-to-computer-science-and-programming-7)) | 9 weeks | 15 hours/week | [high school algebra ](https://www.khanacademy.org/math/algebra-home ) | [chat ](https://discord.gg/jvchSm9 )
[Introduction to Computer Science and Programming using Python ](https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/ ) ([alternative ](https://www.edx.org/course/introduction-to-computer-science-and-programming-7)) | 9 weeks | 15 hours/week | [high school algebra ](https://www.khanacademy.org/math/algebra-home ) | [chat ](https://discord.gg/jvchSm9 )
## Core CS
@ -162,7 +162,7 @@ All coursework under Core CS is **required**, unless otherwise indicated.
Courses | Duration | Effort | Prerequisites | Discussion
:-- | :--: | :--: | :--: | :--:
[Systematic Program Design ](https://learning.edx.org/course/course-v1:UBCx+SPD1x+2T2015 ) [(textbook) ](https://htdp.org/2023-8-14/Book/index.html ) (alt: [part 1 ](https://www.edx.org/course/how-to-code-simple-data ) / [part 2 ](https://www.edx.org/course/how-to-code-complex-data )) | 13 weeks | 8-10 hours/week | none | chat: [part 1 ](https://discord.gg/RfqAmGJ ) / [part 2 ](https://discord.gg/kczJzpm )
[Systematic Program Design ](https://learning.edx.org/course/course-v1:UBCx+SPD1x+2T2015 ) [(textbook) ](https://htdp.org/2023-8-14/Book/index.html ) (alternative : [part 1 ](https://www.edx.org/course/how-to-code-simple-data ), [part 2 ](https://www.edx.org/course/how-to-code-complex-data )) | 13 weeks | 8-10 hours/week | none | chat: [part 1 ](https://discord.gg/RfqAmGJ ) / [part 2 ](https://discord.gg/kczJzpm )
[Programming Languages, Part A ](https://www.coursera.org/learn/programming-languages ) | 5 weeks | 4-8 hours/week | Systematic Program Design ([Hear instructor](https://www.coursera.org/lecture/programming-languages/recommended-background-k1yuh)) | [chat ](https://discord.gg/8BkJtXN )
[Programming Languages, Part B ](https://www.coursera.org/learn/programming-languages-part-b ) | 3 weeks | 4-8 hours/week | Programming Languages, Part A | [chat ](https://discord.gg/EeA7VR9 )
[Programming Languages, Part C ](https://www.coursera.org/learn/programming-languages-part-c ) | 3 weeks | 4-8 hours/week | Programming Languages, Part B | [chat ](https://discord.gg/8EZUVbA )
@ -183,10 +183,10 @@ Discrete math (Math for CS) is a prerequisite and closely related to the study o
Courses | Duration | Effort | Notes | Prerequisites | Discussion
:-- | :--: | :--: | :--: | :--: | :--:
[Calculus 1A: Differentiation ](https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.1x+2T2019/about ) ([alt](https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/index.htm)) | 13 weeks | 6-10 hours/week | The alternate covers this and the following 2 courses | [high school math ](FAQ.md#how-can-i-review-the-math-prerequisites ) | [chat ](https://discord.gg/mPCt45F )
[Calculus 1A: Differentiation ](https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.1x+2T2019/about ) ([alternative ](https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/index.htm)) | 13 weeks | 6-10 hours/week | The alternate covers this and the following 2 courses | [high school math ](FAQ.md#how-can-i-review-the-math-prerequisites ) | [chat ](https://discord.gg/mPCt45F )
[Calculus 1B: Integration ](https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.2x+3T2019/about ) | 13 weeks | 5-10 hours/week | - | Calculus 1A | [chat ](https://discord.gg/sddAsZg )
[Calculus 1C: Coordinate Systems & Infinite Series ](https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.3x+1T2020/about ) | 6 weeks | 5-10 hours/week | - | Calculus 1B | [chat ](https://discord.gg/FNEcNNq )
[Mathematics for Computer Science ](https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about ) ([alt](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/)) | 13 weeks | 5 hours/week | [2015/2019 solutions ](https://github.com/spamegg1/Math-for-CS-solutions ) [2010 solutions ](https://github.com/frevib/mit-cs-math-6042-fall-2010-problems ) [2005 solutions ](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2005/assignments/ ). | Calculus 1C | [chat ](https://discord.gg/EuTzNbF )
[Mathematics for Computer Science ](https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about ) ([alternative ](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/)) | 13 weeks | 5 hours/week | [2015/2019 solutions ](https://github.com/spamegg1/Math-for-CS-solutions ) [2010 solutions ](https://github.com/frevib/mit-cs-math-6042-fall-2010-problems ) [2005 solutions ](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2005/assignments/ ). | Calculus 1C | [chat ](https://discord.gg/EuTzNbF )
### CS Tools
@ -223,7 +223,7 @@ Courses | Duration | Effort | Prerequisites | Discussion
Courses | Duration | Effort | Additional Text / Assignments| Prerequisites | Discussion
:-- | :--: | :--: | :--: | :--: | :--:
[Build a Modern Computer from First Principles: From Nand to Tetris ](https://www.coursera.org/learn/build-a-computer ) ([alt](https://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | - | C-like programming language | [chat ](https://discord.gg/vxB2DRV )
[Build a Modern Computer from First Principles: From Nand to Tetris ](https://www.coursera.org/learn/build-a-computer ) ([alternative ](https://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | - | C-like programming language | [chat ](https://discord.gg/vxB2DRV )
[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 | [chat ](https://discord.gg/AsUXcPu )
[Operating Systems: Three Easy Pieces ](coursepages/ostep/README.md ) | 10-12 weeks | 6-10 hours/week | - | Nand to Tetris Part II | [chat ](https://discord.gg/wZNgpep )
[Computer Networking: a Top-Down Approach ](http://gaia.cs.umass.edu/kurose_ross/online_lectures.htm )| 8 weeks | 4– 12 hours/week | [Wireshark Labs ](http://gaia.cs.umass.edu/kurose_ross/wireshark.php ) | algebra, probability, basic CS | [chat ](https://discord.gg/MJ9YXyV )
@ -296,7 +296,7 @@ Courses | Duration | Effort | Prerequisites | Discussion
[Databases: Relational Databases and SQL ](https://www.edx.org/course/databases-5-sql )| 2 weeks | 10 hours/week | core programming | [chat ](https://discord.gg/P8SPPyF )
[Databases: Semistructured Data ](https://www.edx.org/course/semistructured-data )| 2 weeks | 10 hours/week | core programming | [chat ](https://discord.gg/duCJ3GN )
[Machine Learning ](https://www.coursera.org/specializations/machine-learning-introduction )| 11 weeks | 9 hours/week | Basic coding | [chat ](https://discord.gg/NcXHDjy )
[Computer Graphics ](https://www.edx.org/course/computer-graphics-2 ) ([alt](https://cseweb.ucsd.edu/~viscomp/classes/cse167/wi22/schedule.html))| 6 weeks | 12 hours/week | C++ or Java, linear algebra | [chat ](https://discord.gg/68WqMNV )
[Computer Graphics ](https://www.edx.org/course/computer-graphics-2 ) ([alternative ](https://cseweb.ucsd.edu/~viscomp/classes/cse167/wi22/schedule.html))| 6 weeks | 12 hours/week | C++ or Java, linear algebra | [chat ](https://discord.gg/68WqMNV )
[Software Engineering: Introduction ](https://www.coursera.org/learn/introduction-to-software-engineering ) | 4 weeks | 8-10 hours/week | Core Programming, and a [sizable project ](FAQ.md#why-require-experience-with-a-sizable-project-before-the-Software-Engineering-courses ) | [chat ](https://discord.gg/5Qtcwtz )
### Core ethics
@ -337,7 +337,7 @@ Courses | Duration | Effort | Prerequisites
[Parallel Programming ](https://www.coursera.org/learn/scala-parallel-programming )| 4 weeks | 6-8 hours/week | Scala programming
[Compilers ](https://www.edx.org/course/compilers ) | 9 weeks | 6-8 hours/week | none
[Introduction to Haskell ](https://www.seas.upenn.edu/~cis194/fall16/ )| 14 weeks | - | -
[Learn Prolog Now! ](https://www.let.rug.nl/bos/lpn//lpnpage.php?pageid=online ) ([alt](https://github.com/ossu/computer-science/files/6085884/lpn.pdf))*| 12 weeks | - | -
[Learn Prolog Now! ](https://www.let.rug.nl/bos/lpn//lpnpage.php?pageid=online ) ([alternative ](https://github.com/ossu/computer-science/files/6085884/lpn.pdf))*| 12 weeks | - | -
[Software Debugging ](https://www.udacity.com/course/software-debugging--cs259 )| 8 weeks | 6 hours/week | Python, object-oriented programming
[Software Testing ](https://www.udacity.com/course/software-testing--cs258 ) | 4 weeks | 6 hours/week | Python, programming experience
@ -363,7 +363,7 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites | Notes
:-- | :--: | :--: | :--: | :--:
[Computation Structures 1: Digital Circuits ](https://learning.edx.org/course/course-v1:MITx+6.004.1x_3+3T2016 ) [alt 1](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2017/ ) [alt 2 ](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2009/ ) | 10 weeks | 6 hours/week | [Nand2Tetris II ](https://www.coursera.org/learn/nand2tetris2 ) | Alternate links contain all 3 courses.
[Computation Structures 1: Digital Circuits ](https://learning.edx.org/course/course-v1:MITx+6.004.1x_3+3T2016 ) [alt ernative 1](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2017/ ) [alt ernative 2 ](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2009/ ) | 10 weeks | 6 hours/week | [Nand2Tetris II ](https://www.coursera.org/learn/nand2tetris2 ) | Alternate links contain all 3 courses.
[Computation Structures 2: Computer Architecture ](https://learning.edx.org/course/course-v1:MITx+6.004.2x+3T2015 ) | 10 weeks | 6 hours/week | Computation Structures 1 |
[Computation Structures 3: Computer Organization ](https://learning.edx.org/course/course-v1:MITx+6.004.3x_2+1T2017 ) | 10 weeks | 6 hours/week | Computation Structures 2 |
@ -387,7 +387,7 @@ Courses | Duration | Effort | Prerequisites | Notes
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Theory of Computation ](https://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/ ) ([alt](http://aduni.org/courses/theory/index.php?view=cw)) | 13 weeks | 10 hours/week | [Mathematics for Computer Science ](https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about ), logic, algorithms
[Theory of Computation ](https://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/ ) ([alternative ](http://aduni.org/courses/theory/index.php?view=cw)) | 13 weeks | 10 hours/week | [Mathematics for Computer Science ](https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about ), logic, algorithms
[Computational Geometry ](https://www.edx.org/course/computational-geometry ) | 16 weeks | 8 hours/week | algorithms, C++
[Game Theory ](https://www.coursera.org/learn/game-theory-1 ) | 8 weeks | 3 hours/week | mathematical thinking, probability, calculus