awesome-courses/README.md
Prakhar Srivastav bb7d7a6aec Update README.md
2014-12-23 19:31:19 +03:00

6.6 KiB

List of awesome Computer Science courses scoured from university pages across the web

Systems

  • CS425 Distributed Systems Univ of Illinois, Urbana-Champaign
    • Brilliant set of lectures and reading material covering fundamental concepts in distributed systems such as Vector clocks, Consensus and Paxos.
    • Lectures
    • Assignments
  • CS241 Systems Programming Univ of Illinois, Urbana-Champaign
    • Learn how to write programs that take full advantage of operating system support in the C programming language
    • Assignments
  • 15-440 Distributed Systems Carnegie-Mellon University
    • Introduction to distributed systems with a focus on teaching concepts via projects implemented in the Go programming language.
    • Assignments
  • SPAC Parallelism and Concurrency Univ of Washington
    • Technically not a course nevertheless an awesome collection of materials used by Prof Dan Grossman to teach parallelism and concurrency concepts to sophomores at UWash
  • 15-749 Engineering Distributed Systems Carnegie-Mellon University
    • A project focused course on Distributed Systems with an awesome list of readings
    • Readings
  • PODC Principles of Distributed Computing ETH-Zurich
    • Explore essential algorithmic ideas and lower bound techniques, basically the "pearls" of distributed computing in an easy-to-read set of lecture notes, combined with complete exercises and solutions.
    • Book
    • Assignments and Solutions
  • CS5412 Cloud Computing Cornell University
    • Taught by one of the stalwarts of this field, Prof Ken Birman, this course has a fantastic set of slides that one can go through. The Prof's book is also a gem and recommended as a must read in Google's tutorial on Distributed System Design
    • Slides

Programming Languages / Compilers

  • COS326 Functional Programming Princeton University
    • Covers functional programming concepts like closures, tail-call recursion & parallelism using the OCaml programming language
    • Lectures
    • Assignments
  • CIS194 Introduction to Haskell Penn Engineering
    • Explore the joys of functional programming, using Haskell as a vehicle. The aim of the course will be to allow you to use Haskell to easily and conveniently write practical programs.
    • Previous semester also available, with more exercices
    • Assignments & Lectures
  • CS240h Functional Systems in Haskell Stanford University
  • CS164 Hack your language! UC Berkeley
  • CS3110 Data Structures and Functional Programming Cornell University
    • Another course that uses OCaml to teach alternative programming paradigms, especially functional and concurrent programming.
    • Lecture Slides
    • Assignments
  • CS173 Programming Languages Brown University
    • Course by Prof. Krishnamurthi (author of HtDP) and numerous other awesome books on programming languages. Uses a custom designed Pyret programming language to teach the concepts. There was an online class hosted in 2012, which includes all lecture videos for you to enjoy.
    • Videos
    • Assignments

Algorithms

  • COS226 Data Structures and Algorithms Princeton University
    • The popular algorithms class covering most important algorithms and data structures in use on computers taught by Robert Sedgewick.
    • Assignments

Misc

  • CS 5150 Software Engineering Cornell University
    • Introduction to the practical problems of specifying, designing, building, testing, and delivering reliable software systems
    • Lectures
  • 15-781 Machine Learning Carnegie Mellon University