diff --git a/LICENSE b/LICENSE index dc3f2e8..ce9f566 100644 --- a/LICENSE +++ b/LICENSE @@ -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 . diff --git a/README.md b/README.md index f444fda..52cf8ea 100644 --- a/README.md +++ b/README.md @@ -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*