Recommended CS Courses
Learn at your own pace with a curated collection of public Computer Science resources from awesome colleges. Learning and applying computer science skills can be a difficult journey, which is why we've created a catalog of public classes with resources to help you achieve your personal goals.
Introductory
- Harvard CS50: This is CS50x
- UCB CS61A: Structure and Interpretation of Computer Programs
Alogrithms
- UCB CS61B: Data Structures and Algorithms
- UCB CS170: Efficient Algorithms and Intractable Problems
- Brown CSCI0160: Introduction to Algorithms and Data Structures
- Washington CSE417: Algorithms and Computational Complexity
- UIUC CS374A: Introduction to Algorithms & Models of Computation
- Brown CS1570: Design and Analysis of Algorithms
- CMU 15-451: Algorithm Design and Analysis
- Washington CSE373: Data Structures and Algorithms
- Princeton COS226: Algorithms and Data Structures
- Stanford CS161: Design and Analysis of Algorithms
Software Engineering
- MIT 6.031: Software Construction
- CMU 17-313: Foundations of Software Engineering
- Penn CIS505: Software Systems
- Toronto ECE444: Software Engineering
- Cornell CS5150: Software Engineering
- Cornell CS5154: Software Testing
- Washington CSE403 Software Engineering
Operating Systems
- MIT 6.S081: Operating System Engineering
- UCB CS162: Operating System
- UIUC CS340: Introduction to Computer Systems
- Brown CS167: Operating Systems
- Stanford CS112/212: Operating Systems
Computer Network
- Stanford CS144: Computer Network
- CMU 15-441/641: Computer Networks
- UBC CS168: Introduction to the Internet: Architecture and Protocols
Database Systems
- UBC CS186: Introduction to Database System
- CMU 15-445: Database Systems
- CMU 15-721: Advanced Database Systems
- Caltech CS122: Database System Implementation
- Stanford CS346: Database System Implementation
- Waterloo CS451: Data-Intensive Distributed Computing
- Brown CSCI1270: Database Management Systems
- Washington CSE414: Introduction to Database Systems
Distributed Systems
- Stanford CS244b: Distributed Systems
- Stanford CS149: Parallel Computing
- UIUC CS425: Distributed Systems
Computer Security
- Cornell CS5831: Security Protocols and Privacy
- Brown CSCI1650: Software Security and Exploitation
- UBC CS161: Computer Security
- UBC CS261: Security in Computer Systems
- UIUC CS461: Introduction to Computer Security
- UIUC CS563: Advanced Computer Security
- Stanford CS253: Web Security
Machine Learning
- Stanford CS229: Machine Learning
- UCB CS189: Introduction to Machine Learning
- CMU 10-301/601: Introduction to Machine Learning
- CMU 10-414/714: Deep Learning Systems
- Columnbia W4995: Applied Machine Learning
- Cornell CS4780: Intro to Machine Learning
- Brown CS1470: Deep Learning
- Washington CSE446/546: Machine Learning
- MIT 6.S191: Introduction to Deep Learning
Artificial Intelligence
- Stanford CS221: Artificial Intelligence: Principles and Techniques
- UCB CS188: Introduction to Artificial Intelligence
- UIUC CS543: Computer Vision
- Brown CSCI140: Computer Vision
- Cornell CS4670: Computer Vision
- Stanford CS231n: Deep Learning for Computer Vision
- Stanford CS324: Large Language Models
Cloud Computing
- Stanford CS349D: Cloud Computing Technology
- Cornell CS5412: Cloud Computing
Programming Lanaguages & Compilers
- Stanford CS143: Compilers
- Brown CSCI1260: Compilers and Program Analysis
- Cornell CS4120: Introduction to Compilers
- Washington CSE341: Programming Languages
Parallel Computing
- Cornell CS5220: Applications of Parallel Computers
- CMU 15-418/618: Parallel Computer Architecture and Programming