Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new courses, new categories and books/yt playlists included #90

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 12 additions & 18 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,21 +1,15 @@
MIT License
Open Source CS Degree - A Collection Of Courses & Books That Act As A CS Degree Replacement
Copyright (C) 2024 Aviral Dhingra

Copyright (c) 2019 Forrest Knight
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
126 changes: 75 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,93 @@
# The Open Source Computer Science Degree
### C Programming

This is a curated list of free courses from reputable universities like MIT, Stanford, and Princeton that satisfy the same requirements as an undergraduate Computer Science degree, minus general education.
| Name | Type | Organization | Pre-requisite |
|--------------------------------------------------|--------|--------------|---------------|
| [CS50 (Very Basic)](https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x) | Course | Harvard | None |
| C Programming : A Modern Approach | Book | - | None |

## Computer Science Basics
### Computer Theory & System Architecture

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
[Intro to Computer Science](https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x) | Harvard | 10 weeks | 10-20 hours/week | self-paced | none
| Name | Type | Organization | Pre-requisite |
|-----------------------------------------------------------------------------------------------|--------------|--------------|------------------|
| [Computer Sciency Theory](https://www.youtube.com/watch?v=tpIctyqH29Q&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo) | Video Series | Crash Course | None |
| [Building A 8-bit Computer](https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU) | Video Series | - | None |
| [From Nand to Tetris I](https://imp.i384100.net/6b13dV) | Course | - | None |
| [From Nand to Tetris II](https://imp.i384100.net/dovNVq) | Course | - | Nand to Tetris I |

## Programming
### Operating Systems

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
[Java Programming: Solving Problems with Software](https://imp.i384100.net/GjkPGV)| Duke | 4 weeks | 4-8 hours/week | twice a month | none
[Java Programming: Arrays, Lists, and Structured Data](https://imp.i384100.net/15knRR)| Duke | 4 weeks | 4-8 hours/week | twice a month | Java Programming: Solving Problems with Software
[Object Oriented Programming in Java](https://imp.i384100.net/ZdznBq)| Duke | 6 weeks | 4-6 hours/week | every week | Java Programming: Arrays, Lists, and Structured Data
[Data Structures and Performance](https://imp.i384100.net/oevm0b)| Duke | 6 weeks | 6-10 hours/week | every week | Object Oriented Programming in Java
[Java Programming: Principles of Software Design](https://imp.i384100.net/zavZrO) | Duke | 4 weeks | 4-8 hours/week | twice a month | Java Programming: Arrays, Lists, and Structured Data
[Java Programming: Build a Recommendation System](https://imp.i384100.net/n1vro6) | Duke | 4 weeks | 3-6 hours/week | once a month | Java Programming: Principles of Software Design
[Programming Languages, Part A](imp.i384100.net/6b13oK) | UW | 5 weeks | 8-16 hours/week | once a month | Object Oriented Programming in Java
[Programming Languages, Part B](https://imp.i384100.net/2rebMz) | UW | 3 weeks | 8-16 hours/week | once a month | Programming Languages, Part A
[Programming Languages, Part C](https://imp.i384100.net/Ryogm9) | UW | 3 weeks | 8-16 hours/week | once a month | Programming Languages, Part B
| Name | Type | Organization | Pre-requisite |
|-------------------------------------------------------------|--------|--------------|---------------|
| [Introduction to Operating Systems](https://imp.i115008.net/introduction-to-operating-systems) | Course | - | None |
| [Linux Command Line Basics](https://imp.i115008.net/linux-command-line-basics) | Course | - | None |
| [The Unix Workbench](https://imp.i384100.net/QOXZ4P) | Course | - | None |

## Math
### Machine Learning

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation) | MIT | 12 weeks | 6-10 hours/week | self-paced | [pre-calculus](https://www.edx.org/course/precalculus-asux-mat170x)
[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration) | MIT | 15 weeks | 6-10 hours/week | self-paced | Calculus 1A: Differentiation
[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-mitx-18-01-3x-0)| MIT | 8 weeks | 6-10 hours/week | self-paced | Calculus 1B: Integration
[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers) | UT Austin | 15 weeks | 6-10 hours/week | self-paced | [pre-calculus](https://www.edx.org/course/precalculus-asux-mat170x)
[Introduction to Probability and Data](https://imp.i384100.net/9WZ4E0) | Duke | 5 weeks | 5-7 hours/week | twice a month | none
[Intro to Statistics ](https://imp.i115008.net/intro-to-statistics) | Udacity | 8 weeks | 5-7 hours/week | self-paced | none
| Name | Type | Organization | Pre-requisite |
|-----------------------------------------------------------------|---------------|-----------------------------|-------------------------------|
| Machine Learning Specialization (3 Parts) | Andrew NG | Machine Learning Specialization | - |
| Deep Learning Specialization (5 Parts) | Andrew NG | Andrew NG | ML Basics |
| Andrej Kapathy - Neural Networks | Video Series | - | Machine Learning Specialization |
| [Machine Learning Mathematics](https://mml-book.github.io/) | Book | - | Machine Learning Specialization |

### LLMs - Training, Inferencing, Expert Systems, Etc.

## Systems
*TBD*

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
[Build a Modern Computer from First Principles: From Nand to Tetris](https://imp.i384100.net/6b13dV) | Hebrew University of Jerusalem | 6 weeks | 5 hours/week | twice a month | basic programming knowledge
[Build a Modern Computer from First Principles: From Nand to Tetris II](https://imp.i384100.net/dovNVq) | Hebrew University of Jerusalem | 6 weeks | 10-15 hours/week | once a month | Build a Modern Computer from First Principles: From Nand to Tetris
[Introduction to Operating Systems](https://imp.i115008.net/introduction-to-operating-systems)| Georgia Tech | 8 weeks | 5-8 hours/week | self-paced | Build a Modern Computer from First Principles: From Nand to Tetris II
### Mathematics

| Name | Type | Organization | Pre-requisite |
|--------------------------------------------------------------------------------------------|---------------|---------------|----------------------------|
| [Linear Algebra Basics](https://www.3blue1brown.com/topics/linear-algebra) | Video Series | 3Blue1Brown | None |
| [Intro To Calculus](https://www.3blue1brown.com/topics/calculus) | Video Series | 3Blue1Brown | None |
| [Calculus AB](https://www.khanacademy.org/math/ap-calculus-ab) | Course | Khan Academy | None |
| [Calculus BC](https://www.khanacademy.org/math/ap-calculus-bc) | Course | Khan Academy | Calculus AB |
| Differential Equations Basics | Book/Course | - | Calculus |
| [Multivariable Calculus (Khan Academy)](https://www.khanacademy.org/math/multivariable-calculus) | Course | Khan Academy | Calculus AB |
| [Multivariable Calculus (MIT OCW)](https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/) | Course | MIT OCW | Calculus AB |
| Probability & Statistics | Course | - | None |
| Advanced Probability | Book/Course | - | Probability & Statistics |
| Advanced Statistics | Book/Course | - | Probability & Statistics |
| Vector Calculus | Book/Course | - | Calculus AB |
| Schocastic Calculus | Book/Course | - | Calculus AB |

## Theory
### Further (Advanced) Python

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
[Computer Science: Algorithms, Theory, and Machines](https://imp.i384100.net/7mVROr) | Princeton | 10 weeks | 2-5 hours/week | once a month | Calculus 1A (all), basic programming
[Algorithms, Part I](https://imp.i384100.net/DVm9eo) | Princeton | 6 weeks | 6-12 hours/week | once a month | Computer Science: Algorithms, Theory, and Machines
[Algorithms, Part II](https://imp.i384100.net/jW4xyv) | Princeton | 6 weeks | 6-12 hours/week | once a month | Algorithms, Part I
| Name | Type | Organization | Pre-requisite |
|----------------------------------------------------------------------------------|----------------|----------------|--------------------|
| [Advanced Operators & Tools](https://www.geeksforgeeks.org/advanced-python-tutorials/) | Tutorial | GeeksforGeeks | Python Basics |
| [Project Ideas](https://realpython.com/intermediate-python/) | Project Ideas | RealPython | Intermediate Python |

### Data Structures & Algorithms (DSA)

## Applications
| Name | Type | Organization | Pre-requisite |
|----------------------------------------------------------------------------------------------|----------------|----------------|--------------------|
| [Algorithms, Part I (Primeagen)](https://frontendmasters.com/courses/algorithms/) | Course | FrontendMasters| None |
| [Algorithms, Part II (Primeagen)](https://frontendmasters.com/courses/advanced-algorithms/) | Course | FrontendMasters| Algorithms, Part I |
| [Algorithms, Part I (Princeton)](https://www.coursera.org/learn/algorithms-part1) | Course | Coursera | None |
| [Algorithms, Part II (Princeton)](https://www.coursera.org/learn/algorithms-part2) | Course | Coursera | Algorithms, Part I |
| [Data Structures & Algorithms (UC San Diego)](https://www.coursera.org/specializations/data-structures-algorithms) | Specialization | Coursera | None |

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
[Software Engineering: Introduction](https://www.edx.org/course/software-engineering-introduction-ubcx-softeng1x) | UBCx | 6 weeks | 8-10 hours/week | self-paced | Java Programming: Build a Recommendation System
[Machine Learning](https://imp.i384100.net/YgYEBJ) | Stanford | 11 weeks | 5-7 hours/week | twice a month | Linear Algebra - Foundations to Frontiers
[Database Management Essentials](https://imp.i384100.net/kjvDMn) | CU | 7 weeks | 4-6 hours/week | twice a month | basic programming & CS knowledge
[Cryptography I](https://imp.i384100.net/DVm9ej)| Stanford | 7 weeks | 5 hours/week | once a month | Linear Algebra - Foundations to Frontiers & Introduction to Probability and Data
### Networking

## Unix
| Name | Type | Organization | Pre-requisite |
|------------------------------------------------------------------------------------------------|---------|--------------|---------------|
| [Mike Meters Networking +](https://www.udemy.com/course/comptia-networkplus-certification/?couponCode=LETSLEARNNOWPP) | Course | Udemy | None |
| [Understand Distributed Systems](https://www.amazon.com/gp/product/1838430202/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=utsavized0d-20&creative=9325&linkCode=as2&creativeASIN=1838430202&linkId=8f3007bbed9b958980492f5c0bb1105f) | Book | - | None |

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
[Linux Command Line Basics](https://imp.i115008.net/linux-command-line-basics) | Udacity | 1 week | 5 hours/week | self-paced | none
[The Unix Workbench](https://imp.i384100.net/QOXZ4P) | JHU | 4 weeks | 4 hours/week | once a month | none
### C++ Programming

*TBD*

### Quant Finance

*TBD*

### Modern C++ Alternatives (Rust/Zig/Carbon)

*TBD*

### Cybersecurity

*TBD*