Computer Science
Path to a free self-taught education in Computer Science
The OSSU curriculum is a complete education in Computer Science using online materials. It's not merely for career training or professional development. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners.
It is designed according to the degree requirements of undergraduate computer science majors, minus general education (non-CS) requirements, as it is assumed most of the people following this curriculum are already educated outside the field of CS. The courses themselves are among the very best in the world, often coming from Harvard, Princeton, MIT, and other great universities.
Curriculum version: 7
[course] CS50 - Introduction to Computer Science
[course] MITx - Introduction to Computer Science and Programming Using Python
[course] How to Code: Simple Data
[course] How to Code: Complex Data
[course] Software Construction: Data Abstraction
[course] Software Construction: Object-Oriented Design
[course] Programming Languages, Part A
[course] Programming Languages, Part B
[course] Programming Languages, Part C
[book] Learn You a Haskell for a Great Good!
[book] Learn Prolog Now!
[course] Linear Algebra - Foundations to Frontiers
[course] Calculus One
[course] Calculus Two: Sequences and Series
[course] Mathematics for Computer Science
[course] Build a Modern Computer from First Principles: From Nand to Tetris
[course] Build a Modern Computer from First Principles: Nand to Tetris Part II
[course] Introduction to Computer Networking
[book] Operating Systems: Three Easy Pieces
[course] Algorithms (1/4)
[course] Algorithms (2/4)
[course] Algorithms (3/4)
[course] Algorithms (4/4)
[course] Databases
[course] Machine Learning
[course] Computer Graphics
[course] Cryptography I
[course] Software Engineering: Introduction
[course] Software Development Capstone Project
[course] Compilers
[course] Software Debugging
[course] Software Testing
[course] LAFF: Programming for Correctness
[course] Introduction to Parallel Programming
[course] Software Architecture & Design
[course] Introduction to Mathematical Thinking
[course] Calculus: Parametric Equations and Polar Coordinates
[course] Multivariable Calculus
[course] Introduction to Probability - The Science of Uncertainty
[course] Electricity and Magnetism, Part 1
[course] Electricity and Magnetism, Part 2
[course] Computation Structures 1: Digital Circuits
[course] Computation Structures 2: Computer Architecture
[course] Computation Structures 3: Computer Organization
[course] Hack the Kernel
[course] Introduction to Logic
[course] Automata Theory
[course] Reliable Distributed Systems, Part 1
[course] Reliable Distributed Systems, Part 2
[course] Computational Geometry
[course] Introduction to Formal Concept Analysis
[course] Game Theory
[specialization] Robotics
[specialization] Data Mining
[specialization] Big Data
[specialization] Internet of Things
[specialization] Cloud Computing
[specialization] Full Stack Web Development
[specialization] Data Science
[specialization] Functional Programming in Scala
OSS University
Start your journey and become a Computer Scientist!