Good Open Courses for Computer Science Learning

Introduction to Computer Science

  • MIT 6.0001
  • Harvard CS50
  • Berkeley CS61A

Data Structures and Algorithms

  • Stanford CS106
  • MIT 6.006, 6.046
  • Berkeley CS61A, CS61B
  • Princeton

Operating Systems

  • CMU 15-213
  • Berkeley CS162, CS262
  • MIT 6.828
  • 6.S081

Computer Organization and Architecture

  • MIT 6.004
  • Berkeley CS61C
  • MHRD

Computer Networks

  • Stanford CS144

Databases

  • CMU 15-445
  • MIT 6.824, 6.830

Software Engineering

  • MIT 6.031

Distributed Systems

  • MIT 6.824
  • MIT 6.033
    • Principles of Computer System Design: An Introduction

Compiler Design

  • Stanford CS143

Parallel Computing

  • CS 149

Computer Graphics

  • Games101

Computer System Security

  • 6.858

Projects

  • Operating System: 6.828
  • Distributed Systems: 6.824
  • Relational Database: CMU 15-445
  • Parallel Computing: CS 149
  • Compiler Design: Stanford CS143
  • Computer Graphics: Games101
  • Computer Networks: Stanford CS144
  • Computer System Security: 6.858
  • CSAPP
  • Muduo: Web Server
  • TinSTL: STL
  • “Tiger Book”: Compiler

CS DIY: CS DIY Wiki