The open-source curriculum for learning code and mathematics. Inspired by The Open Source Society University & MIT challenge, this project aims to do the self-taught education. The following document outlines free online courses from top schools like MIT, Harvard, UC Irvine, et al.. The groupings by Term are meant to pace and structure the course according to a typical Mathematics and Computer Science track at a college or university and is a work in progress. The focus is on the core courses; liberal arts or "GenEd" courses have been omitted.
- About
- Learning Goals
- Main Curriculum
- Open Source Education
- Website and Open Learning
- Read More Article
- Miscellaneous
- 08/10/2023
This is a curated list of free courses from reputable universities (e.g. MIT, Stanford, Johns Hopkins University, etc.) that satisfy the same requirements as an undergraduate curriculum for Computer Science, Mathematics, Data Science, minus general education.
To build this curriculum I've consulted different sources which can be found in the References section at the end of this README page.
In regards to the duration of this project, by my calculations, adding up the estimated hours of courses, projects, books, articles and other supplementary materials (that is not accounted for here), I believe that this whole curriculum should be around 4000 hours, so with a weekly effort of 20 hours it's possible to finish it in four years... look how cool, right?.
Learning how to learn for student
Learning how to learn
- 🎬 Learning How to Learn: Powerful mental tools to help you master tough subjects
- 🎬 Learning how to learn for youth
- 🎬 Mindshift: Break Through Obstacles to Learning and Discover Your Hidden Potential
- 🎬 Learn like a pro: Science-Based Tools to Become Better at Anything
- 🎬 How to Learn Spanish in a Month - Language Learning Documentary
Self directed learning
- Students responsibility on self learning Part 1 | Part 2
- រៀនពីរបៀបរៀន - Learning how to learn (Video)
- ខួរក្បាលនិងការរៀន - Brain and learning (Slide) | Video
- វិធីសាស្រ្តជំនះការពន្យារពេល(ខ្ជិល) - Beating procrastination and multi-tasking (Slide) | Video
- សង្ខេបវិធីសាស្រ្តរៀនមានប្រសិទ្ធភាព - Summary slide (Slide)
- របៀបកត់ត្រា - Note taking (Slide) | Video
- រំលឹកសកម្ម - Active recall (Slide) | Video
- ការជជីកសួរ - Elaborative (Slide) | Video
- ការប្រៀបប្រដូច - Analogy (Slide) | Video
- ការបញ្ចូលទិន្នន័យដោយ២វិធី - Dual coding (Slide) | Video
- ការរំលឹកមេរៀនលោះថ្ងៃ-Distributed Practice (Slide) | Video
- ការប្រើប្រាស់ Flashcards ដើម្បីជំនួយដល់ការរៀនមានប្រសិទ្ធភាព - How to use flashcards (Video)
- វិធីសាស្រ្តរៀនជីវវិទ្យាអោយ និងចាំបានយូរ - How to be study biology effectively (Video)
- បទពិសោធន៍នៃការរៀនអនឡាញ - Online learning experiences
Growth Mindset
- Do 1% effort for 100 days - Prof Ryan O'Donnell
- 🎬 You Can Learn Anything
- 🎬 How to grow your brain
- 🎬 The Growth Mindset
- 🎬 Developing Growth Mindset with Carol Dweck
- 🎬 Learning how to learn | Barbara Oakley | TEDxOaklandUniversity
- 🎬 The Power of Asking How | Olav Schewe | TEDxWCMephamHigh
- 🎬 Richard Hamming: "Learning to Learn"
- 🎬 Best Way to Learn Anything
- 📄 How to Learn Anything with the Feynman Technique
How to learn math
- Understanding Mathematics
- How to Study Math
- 🎬 How to Learn Math: For student
- 🎬 How you can be good at math, and other surprising facts about learning
- 🎬 Math isn't hard, it's a language
- 🎬 The Real Reason You Should Study Math
- 📄 The Feynman lectures on Physics
- 📄 The Feynman Technique: The Best Way to Learn Anything
Learning how to learn
- 🔖 Learning How to Learn: Powerful mental tools to help you master tough subjects
- 🔖 Learning how to learn for youth
- 🔖 Mindshift: Break Through Obstacles to Learning and Discover Your Hidden Potential
- 🔖 Learn like a Pro: Science-Based Tools to Become Better at Anything
- 🔖 How to learn math: For students
- Define your North Star
- Learn to think like a computer
- Learn through action
- Get the reps in - Work like a madman
⏳ Study Course Roadmap
- CS50's Understanding Technology
- CS50S: Introduction to Programming with Scratch
- CS50's Introduction to Computer Science | CS50 syllabus
- CS50’s Computer Science for Lawyers (CS50L)
- CS50’s Computer Science for Business Professionals (CS50B)
- CS50's Introduction to Programming with Python
- CS50's Introduction to Artificial Intelligence with Python
- CS50's Web Programming with Python and JavaScript
- CS50's Mobile App Development with React Native
- CS50's Introduction to Game Development
- CS50's Mobile App Development with Flutter
- Introduction to Data Science with Python
- CS50's Introduction to Databases with SQL
- CS50's Introduction to Cybersecurity
- Algorithms, Part I | Algorithms, Part II
- Mathematics for Computer Science or Mathematics For Computer Science
🚩 Four Foundational Steps
- Step 1: Learn program fundamental (Ex:How the computer work, how software work, Python, ...)
- Step 2
- Backend and /or Frontend development - EG, Django or react
- Break into big tech: Learn Data Structure Algorithm
- Learn Data science/AI/Machine Learning
- Fullstack online bootcamp
- Step 3: 2-3 impressive portfolio project
- a range of skills
- Create read update delete
- User authentication
- Database
- API
- Step 4: study for interview and Start applying
💻 3 keys to learn coding
- Key 1: Be come problem solver
- Key 2: Start to Code With the basic understanding of:
- Variables
- Loops
- Control flow
- Data types
- Functions
- Key 3: Build software in the real world
⚡ strategy
- Solve the problem conceptually
- Apply that conceptual understanding to code
- Looking up the answer
- Understand the solution
- Learn what is the pattern
- Computer Science guide
- CS50 syllabus
- OSSU CS timeline
- Open Source Society University Computer Science Degree
- CS50's AP® Computer Science Principles
- Computer Science for Web Programming
- Learning Python for Data Science
- Computer Science for Artificial Intelligence
- Computer Science for Game Development
- CS50's Introduction to Databases with SQL
- Software Engineering Courses - SE Courses
- Software-Engineering-CSE307-2020 (Github)
- Book
- Software Engineering Specialization
- 1. Internet History, Security, and Technology (IHTS)
- 2. Python For Everybody (PY4E)
- 3. Django for Everybody (DJ4E)
- 4. Web Applications for Everybody (WA4E)
- 5. PostgreSQL for Everybody (PG4E)
- 6. C Programming for Everybody (CC4E) 42
- 7. Computer Architecture for Everybody
- 8. Java Enterprise Application Development for Everybody
- Introduction to Computer Information Systems Specialization | Computers and the Internet
- CS50's Introduction to Computer Science
- CS50's Introduction to Cybersecurity
- Introduction To Computer Science And Programming (MIT)
- Introduction to Computer Science and Programming Using Python
- Introduction to Computational Thinking and Data Science
- Algorithms, Part I | Algorithms, Part II
- Computer Science for Web Programming
- Mathematics for Computer Science
- Learn to think computationally and write programs to tackle useful problems
- Introduction To Algorithms (SMA 5503)
- Mathematics for Computer Science MIT
- Introduction to Computer Science and Programming in Python
- Intro to Computational Thinking and Data Science
- Artificial Intelligence
- How To Speak
- Introduction To Computer Science And Programming
- Computer Systems Security
- Fundamentals of Computing Specialization
- Web Design for Everybody: Basics of Web Development & Coding Specialization
- Software Engineering Specialization
- Google IT Support Professional Certificate
- Meta Front-End Developer Professional Certificate
- Google Cybersecurity Professional Certificate
- C# Programming for Unity Game Development Specialization
- Introduction To Algorithms
- Introduction to Mathematical Thinking
- 18.01.1x Calculus 1A: Differentiation
- 18.01.2x Calculus 1B: Integration
- 18.01.3x Calculus 1C: Coordinate Systems & Infinite Series
- 18.02.1x Multivariable Calculus 1: Vectors and Derivatives
- 18.031x Introduction to Differential Equations
- 18.032x Differential Equations: 2x2 Systems
- 18.033x NxN systems
- 18.03Fx Fourier
- 18.03Lx Laplace
- 18.02.2x Multivariable Calculus 1: Integrals NEW!
- 18.031 System Functions and the Laplace Transform
- Mathematics For Computer Science
- 18.06SC Linear Algebra | Linear Algebra
- Introduction To Probability
- Highlights Of Calculus
- Calculus Revisited: Single Variable Calculus
- Graph Theory And Additive Combinatorics
- Introduction To Functional Analysis
- Multivariable Calculus
- Single Variable Calculus
- Topics In Mathematics With Applications In Finance
- A 2020 Vision Of Linear Algebra
- Matrix Methods In Data Analysis, Signal Processing, And Machine Learning
- Introduction to linear algebra and ordinary differential equations
- Real Analysis
- Introduction to algorithms
- Theory of Computation
- Matrix Methods in Data Analysis, Signal Processing, and Machine Learning
- Mathematics Of Big Data And Machine Learning
- Probabilistic Systems Analysis And Applied Probability
- Introduction To MATLAB Programming
- MIT 18.650 Statistics for Applications, Fall 2016 (MIT)
- Learn the principles of calculus through real-world applications
- Learn techniques to interpret and solve differential equations
- GCF Global (Creating Opportunities for a Better life)
- Complete education in computer science
- Complete education in mathematics
- Data Science
- MIT OpenCourseWare
💻 computer
- What is Programming?
- Command Line Commands – CLI Tutorial
- Git and Github | How to Use Git and GitHub – Introduction for Beginners | Git vs GitHub – What is Version Control and How Does it Work?
- What is PHP
- Object-Oriented Programming in Python
- What is Software Engineering?
- What is a Full Stack Developer? Back End + Front End = Full Stack Engineer
- How to Become a Front End Developer – Front End Web Dev Skills
- Frontend VS Backend – What's the Difference?
- What is a Computer Scientist? What Exactly Do CS Majors Do?
- Computer Science VS Information Technology – What's the Difference Between CS and IT?
- What is Data Science? What a Data Scientist Actually Does
- OOP Meaning – What is Object-Oriented Programming?
- UX vs UI – What's the Difference? Definition and Meaning
- How to Set an Environment Variable in Linux
- Markdown Cheat Sheet – How to Write Articles in Markdown Language
- What is Localhost? Local Host IP Address Explained
- How to Become a Front End Developer – Front End Web Dev Skills
- What is Computational Thinking?
- ChatGPT Tutorial - A Crash Course on Chat GPT for Beginners
- 10 Best Computer Science Courses to Take in 2022
- How to Find a Remote Developer Job in 2023
- Teach Yourself Computer Science – Key CS Concepts You Should Know
Just a few sites that don't fit into any of the other areas above
- Awesome Math
- Lecture 1: Probability and Counting | Statistics 110 (Harvard)
- 3Blue1Brown
- Oxford Mathematics
- TED's Official Public Speaking Course
- Do you know the 5 love languages? Here’s what they are — and how to use them
- Tim Urban: Inside the mind of a master procrastinator | TED
- Introductory Calculus: Oxford Mathematics 1st Year Student Lecture
- Introduction to University Mathematics
- Marty Lobdell - Study Less Study Smart
- LaTeX – Full Tutorial for Beginners
- Create a Portfolio Website Using HTML, CSS, & JavaScript
- Data Science Job Interview – Full Mock Interview
- Software Engineering Job Interview – Full Mock Interview
- Learn Data Structures and Algorithms – Introduction and Learning Resources
- My Unconventional Coding Story | Self-Taught
- CS Unplugged
- Shimon Schocken: The self-organizing computer course
- Can you get an MIT education for $2,000? | Scott Young | TEDxEastsidePrep
"There’s no miracle people. It just happens they got interested in this thing and they learned all this stuff. There’s just people.” Richard Feynman |
|---|
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
