Skip to content

A collection of open-source, free courses from top universities in the United States offered on YouTube to serve as a comprehensive computer science degree.

License

Notifications You must be signed in to change notification settings

ryanmalani/computer-science-degree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Open Source Computer Science Courses from Top Universities in the US.

A collection of open-source, free courses from top universities in the United States offered on YouTube to serve as a comprehensive computer science degree. Become a self-taught computer scientist!

Contents

Summary

The purpose of this is to serve as a meticulously curated list of open-source and accessible high quality courses in computer science, with lectures available on YouTube from world-renowned institutions such as MIT, Harvard, Stanford, and UC Berkeley. This repository is not aimed to provide the resources of a full course (although many of these courses are offered for free through Coursera and EdX on Open Source Society University); it is a thorough, comprehensive exploration of everything from computer science fundamentals and principles to advanced topics designed for those who aspire to gain a deep and holistic understanding of the field for free, at their own pace on YouTube. Also, while this is intended to be from the university structured learning perspective, that style may not be for everyone. I recommend checking out CrashCourse for high-level overviews, taking a look at freeCodeCamp as they have some great videos, as well as reading and learning from engineering blogs at top companies for alternatives.

Curriculum Structure:

  • Introductory Computer Science: This section is for learners new to the field, offering a taste of what computer science entails.
  • Core Computer Science: This comprehensive segment covers the essentials, paralleling the first three years of a typical computer science undergraduate program.
  • Advanced Computer Science: Reflecting the senior year of a computer science degree, this section offers advanced courses for learners to specialize in areas of interest.

Duration and Pace:

While self-paced, the program is designed to be completed in approximately two years with a commitment of around 20 hours per week. Learners can track their progress using this spreadsheet, adapting their study schedule to personal commitments.

Cost:

The core material, sourced from YouTube lectures, is entirely free. Some courses may recommend textbooks or supplementary materials which may incur costs, but these are optional. The community is encouraged to also open PRs with open-source or freely available textbooks, but EbookFoundation also has a great selection of resources here if that is your preferred learning style.

Contributing to this Project:

The repository welcomes contributions from its community. Whether it’s suggesting additional resources, helping to refine existing content, or offering peer support, every contribution enriches the learning experience for all.

Curriculum

While the curriculum is designed to be done in order, you can model your learning based on your current educational background. Although I would still recommend starting from the beginning; the refreshers from these courses can't hurt.

Computer Science Fundamentals

Courses School Duration Time Commitment Frequency Prerequisites
Intro to Computer Science CS50 Harvard 12 Lectures 4-6 hours/week self-paced none
Intro to Computer Science 6.001 MIT 38 Micro-Lectures 2-3 hours/week self-paced none
Intro to Computer Science CS105 Stanford 69 Micro-Lectures 3-4 hours/week self-paced none
Programming Methodology CS106A Stanford 28 Lectures 4-6 hours/week self-paced none
Computation Structures MIT 172 Micro-Lectures or 26 full-length Lectures 4-5 hours/week self-paced none
Introduction to Computer Networking CS144 Stanford 24 Lectures 1-2 hours/week self-paced none
Computer Organization & Systems CS107 Stanford 15 Lectures 2-3 hours/week self-paced none
Operating Systems and Systems Programming CS162 UC Berkeley 27 Lectures 4-6 hours/week self-paced none
Introduction to Databases Stanford 12 Micro-Lectures 0-1 hours/week self-paced none

Computer Science Math Core Topics

Courses School Duration Time Commitment Frequency Prerequisites
Introduction to Probability for Computer Scientists CS109 Stanford 29 Lectures 4-5 hours/week self-paced none
Probability and Statistics 110 Harvard 35 Lectures 4-5 hours/week self-paced none
Mathematics for Computer Science 6.042J MIT 111 Micro-Lectures 3-4 hours/week self-paced none
Discrete Mathematics Math 55 UC Berkeley 28 Lectures 4-5 hours/week self-paced none
Discrete Mathematics and Probability Theory CS 70 UC Berkeley 28 Lectures 4-5 hours/week self-paced none
A Vision of Linear Algebra MIT 8 Lectures 1-2 hours/week self-paced none
Introduction to Applied Linear Algebra Stanford 54 Micro-Lectures 3-4 hours/week self-paced none
Linear Algebra Princeton 15 Lectures 2-3 hours/week self-paced none
Matrix Calculus for Machine Learning and Beyond 18.S096 MIT 17 Lectures 1-3 hours/week self-paced none
Single Variable Calculus 18.01 MIT 35 Lectures 4-6 hours/week self-paced none
Multivariable Calculus 18.02 MIT 35 Lectures 4-6 hours/week self-paced Single Variable Calculus
Multivariable Calculus Math 53 UC Berkeley 25 Lectures 4-6 hours/week self-paced Single Variable Calculus
Multivariable Calculus Princeton 14 Lectures 4-6 hours/week self-paced Single Variable Calculus

Computer Science Core Topics

Courses School Duration Time Commitment Frequency Prerequisites
Introduction to Algorithms 6.006 MIT 32 Lectures 4-6 hours/week self-paced CS Fundamentals Course + Discrete Mathematics strongly recommended.
Computer Architecture 18-447 Carnegie-Mellon 39 Lectures 4-6 hours/week self-paced CS fundamentals strongly recommended.
Human-Computer Interaction CS547 Stanford 259 Lectures 5-6 hours/week+ self-paced CS fundamentals strongly recommended.
Introduction to Database Systems 15-445/645 Carnegie-Mellon 25 Lectures 4-5 hours/week self-paced CS fundamentals strongly recommended.
Design and Analysis of Algorithms 6.046J MIT 34 Lectures 4-6 hours/week self-paced CS fundamentals, intro to algorithms strongly recommended.
Operating System Engineering 6.828 MIT 12 Lectures found 2-3 hours/week self-paced CS fundamentals strongly recommended.
Database Systems 6.830/6.814 MIT 14 Lectures found 3-4 hours/week self-paced CS fundamentals strongly recommended.

Computer Science Advanced Topics

Courses School Duration Time Commitment Frequency Prerequisites
Advanced Algorithms COMPSCI 224 Harvard 25 Lectures 4-6 hours/week self-paced CS Intro to Algorithms Course + Discrete Mathematics minimum.
Algorithms for Big Data COMPSCI 229r Harvard 25 Lectures 4-5 hours/week self-paced CS Intro to Algorithms Course + Discrete Mathematics minimum.
Advanced Database Systems 15-721 Carnegie-Mellon 23 Lectures 3-4 hours/week self-paced CS fundamentals + core required.
Distributed Systems 6.824 MIT 20 Lectures 2-4 hours/week self-paced CS Intro to systems + fundamentals courses required.
Distributed Computer Systems CS 436 UWaterloo 24 Lectures 4-6 hours/week self-paced CS fundamentals + systems/architecture courses required.
Performance Engineering of Software Systems 6.172 MIT 23 Lectures 4-5 hours/week self-paced CS Intro to systems + fundamentals courses required.
Theory of Computation 18.404J MIT 25 Lectures 4-5 hours/week self-paced CS fundamentals + math core + CS core required.

Specialities

This section is for more specialized tracks in security, robotics, machine learning/artificial intelligence, and more.

Machine Learning/Artifical Intelligence (ML/AI)

Courses School Duration Time Commitment Frequency Prerequisites
Introduction to Artificial Intelligence CS 188 UC Berkeley 25 Lectures 3-4 hours/week self-paced CS fundamentals
Artificial Intelligence CS221 Stanford 19 Lectures 3-4 hours/week self-paced CS fundamentals
Machine Learning CS229 Stanford 19 Lectures 2-4 hours/week self-paced CS fundamentals
Machine Learning Theory CS229M Stanford 20 Lectures 3-5 hours/week self-paced CS fundamentals
Intro to Deep Learning 6.S191 MIT 63 Lectures 6-7 hours/week self-paced CS fundamentals
Deep Learning CS230 Stanford 10 Lectures 2-3 hours/week self-paced CS fundamentals
Natural Language Processing with Deep Learning CS224N Stanford 23 Lectures 3-4 hours/week self-paced CS fundamentals
Natural Language Understanding XCS224U Stanford 50 Mixed-Lectures 4-5 hours/week self-paced CS fundamentals + intro to ML
Machine Learning with Graphs CS224W Stanford 60 Micro-Lectures 3-4 hours/week self-paced CS fundamentals + Discrete Mathematics + Advanced Algorithms
Deep Learning for Self-Driving Cars 6.094 MIT 9 Lectures 2-3 hours/week self-paced CS fundamentals + intro to DL or ML
Modern Computer Vision CS198-126 UC Berkeley 22 Lectures 4-5 hours/week self-paced CS fundamentals + intro to DL or ML
Reinforcement Learning CS234 Stanford 15 Lectures 2-3 hours/week self-paced CS fundamentals + intro to ML
Deep Multi-task and Meta Learning CS330 Stanford 17 Lectures 4 hours/week self-paced CS fundamentals + intro to DL

Robotics

Courses School Duration Time Commitment Frequency Prerequisites
Intro to Robotics Princeton 24 Lectures 4-6 hours/week self-paced none
Deep Learning for Self-Driving Cars 6.094 MIT 9 Lectures 2-3 hours/week self-paced CS fundamentals + intro to DL or ML
Reinforcement Learning CS234 Stanford 15 Lectures 2-3 hours/week self-paced CS fundamentals + intro to ML

Aerospace

Courses School Duration Time Commitment Frequency Prerequisites
Fundamentals of Systems Engineering MIT 12 Lectures 2-3 hours/week self-paced none

Cybersecurity

Courses School Duration Time Commitment Frequency Prerequisites
Computer Systems Security 6.858 MIT 26 Lectures 3-4 hours/week self-paced CS fundamentals + cs systems fundamentals recommended.

Data Analytics & Data Science

Courses School Duration Time Commitment Frequency Prerequisites
Statistical Learning with R Stanford 104 Micro-Lectures 2-4 hours/week self-paced CS fundamentals

Bonus Topics and Courses

Courses School Duration Time Commitment Frequency Prerequisites
How to Start a Startup YCombinator/Stanford 21 Lectures 3-5 hours/week self-paced none
Fundamentals of Physics PHYS 200 Yale 24 Lectures 4-5 hours/week self-paced Calculus
Physics I: Classical Mechanics 8.01x MIT 40 Lectures 4-6 hours/week self-paced Calculus
Physics II: Electricity & Magnetism 8.02x MIT 40 Lectures 4-6 hours/week self-paced Calculus + Physics I
Physics III: Vibrations and Waves 8.03x MIT 24 Lectures 3-4 hours/week self-paced Calculus + Physics I & II
Quantum Physics I 8.04 MIT 115 Micro-Lectures 4-6 hours/week self-paced Calculus + Physics
General Relativity 8.962 MIT 23 Lectures 3-5 hours/week self-paced Math + Physics
Atomic and Optical Physics I 8.421 MIT 25 Lectures 4-5 hours/week self-paced Math + Physics

About

A collection of open-source, free courses from top universities in the United States offered on YouTube to serve as a comprehensive computer science degree.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published