ForrestKnight / open-source-cs

Video discussing this curriculum:
https://youtu.be/NyOvFSP_IpQ
MIT License
19.74k stars 3.03k forks source link

Semester/Term Format Idea #51

Open pekkalacd opened 3 years ago

pekkalacd commented 3 years ago

It'd be cool to see a semester/term schedule format showing a certain number of courses taken per term. This example adheres to the pre-reqs presented on the original repo and includes an estimated time completion for the whole degree

Term Schedule Idea

Time Estimations: 78 weeks (~ 1.5 years).



Term 1

(12 weeks) Course Duration Schedule
1 Intro to Computer Science 10 Weeks M/W
2 Mathematical Thinking in Computer Science 6 Weeks M/W
3 Calculus 1A: Differentiation 12 Weeks T/TH
4 Java Programming: Solving Problems with Software 4 Weeks M/W/F

[if done with # 4 -> # 5] | 5 Java Programming: Arrays, Lists, and Structured Data | 4 Weeks | M/W/F |



Cool off period: up to 3 weeks

Term 2

(15 weeks) Course Duration Schedule
1 Computer Science: Algorithms, Theory, and Machines 10 Weeks M/W
2 Linux Command Line Basics 1 Week M/W
3 UNIX Work Bench 4 Weeks M/W

[if done with # 2 and # 3 -> # 4] | 4 Build a Modern Computer from First Principles: From Tetris to NAND | 6 Weeks | M/W | | 5 Calculus 1B: Integration | 15 Weeks | T/TH | | 6 Object Oriented Programming in Java | 6 Weeks | T/TH | [if done with # 6 -> # 7] | 7 Data Structures and Performance | 6 Weeks | T/TH |



Cool off period: up to 3 weeks

Term 3

(13 weeks) Course Duration Schedule
1 Java Programming: Principles of Software Design 4 Weeks M/W/F
2 Java Programming: Building a Recommendation System 4 Weeks M/W/F
3 Calculus 1C: Coordinate Systems & Infinite Series 8 Weeks T/TH

[if done with # 3 -> # 4] | 4 Introduction to Probability and Data | 5 Weeks | T/TH | | 5 Algorithms, Part 1 | 6 Weeks | T/TH | [if done with # 5 -> # 6] | 6 Algorithms, Part 2 | 6 Weeks | T/TH | | 7 Build a Modern Computer from First Principles: From Tetris to NAND II | 6 Weeks | M/W | [if done with # 7 -> # 8] | 8 Database Management Essentials | 7 Weeks | M/W |



Cool off period: up to 3 weeks

Term 4

(15 weeks) Course Duration Schedule
1 Linear Algebra - Foundations to Frontiers 15 Weeks T/TH
2 Intro to Statistics 8 Weeks T/TH
3 Programming Languages, Part A 5 Weeks M/W/F

[if done with # 3 -> # 4] | 4 Programming Languages, Part B | 3 Weeks | M/W/F | [if done with # 4 -> # 5] | 5 Programming Languages, Part C | 3 Weeks | M/W/F | | 7 Introduction to Operating Systems | 8 Weeks | T/TH | [if done with # 7 -> # 8] | 8 Software Engineering: Introduction | 6 Weeks | M/W |



Cool off period: up to 3 weeks

Term 5

(11 weeks) Course Duration Schedule
1 Machine Learning 11 Weeks M/W
2 Cryptography 1 8 Weeks T/TH



Graduation! 💯 💯

oliwrongful commented 3 years ago

Good idea - can I ask how many hours total work per week did you use to calculate this schedule?

therealironjaw commented 2 years ago

Hmm, good idea, but I would leave the page as is and add this term style as a link to a suggested way. It just I get jitters and PTSD looking at semester terms and with Forrest's list it just seem easy and relaxed way to start and I think to myself: Yeah, that's approachable and something I could do and knock out! I like the simplicity of it. And that's coming from a lawyer with little CS background!

From my research if you're interested in a more in-depth programme check out the Open Source Society University (OSSU) - https://github.com/ossu - it's more mind-boggling and a different schedule that will take you some years but they have something similar. For example, they've taken off CS50x because they had so much problem in the discord (some applauding evangelically, others disagreeing hotheadedly) and prefer Python for Everybody.

I was going to do that course but now starting this, because it's simple and easy to approach in comparison to OSSU. I can always add the one or two courses there if I need them.