List of awesome Computer Science courses scoured from university pages across the web ### Systems - [CS425](https://courses.engr.illinois.edu/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](http://recordings.engineering.illinois.edu/ess/portal/section/11ae0191-49e2-4c34-95fd-fc65355262d4) - [Assignments](https://courses.engr.illinois.edu/cs425/assignments.html) - [CS241](https://courses.engr.illinois.edu/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](https://courses.engr.illinois.edu/cs241/mp.html) - [15-440](http://www.cs.cmu.edu/~dga/15-440/F12/index.html) **Distributed Systems** *Carnegie-Mellon University* - Introduction to distributed systems with a focus on teaching concepts via projects implemented in the Go programming language. - [Assignments](http://www.cs.cmu.edu/~dga/15-440/F12/assignments.html) - [SPAC](http://homes.cs.washington.edu/~djg/teachingMaterials/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 ### Programming Languages / Compilers - [COS326](http://www.cs.princeton.edu/~dpw/courses/cos326-12/info.php) **Functional Programming** *Princeton University* - Covers functional programming concepts like closures, tail-call recursion & parallelism using the OCaml programming language - [Lectures](http://www.cs.princeton.edu/~dpw/courses/cos326-12/lectures.php) - [Assignments](http://www.cs.princeton.edu/~dpw/courses/cos326-12/assignments.php) - [CS240h](http://www.scs.stanford.edu/14sp-cs240h/) **Functional Systems in Haskell** *Stanford University* - Building software systems in Haskell - [Lecture Slides](http://www.scs.stanford.edu/14sp-cs240h/slides/) - 3 Assignments: [Lab1](http://www.scs.stanford.edu/14sp-cs240h/labs/lab1.html), [Lab2](http://www.scs.stanford.edu/14sp-cs240h/labs/lab2.html), [Lab3](http://www.scs.stanford.edu/14sp-cs240h/labs/lab3.html) - [CS164](https://sites.google.com/a/bodik.org/cs164/home) **Hack your language!** *UC Berkeley* - Introduction to programming languages by designing and implementing domain-specific languages. - [Lecture Videos](https://www.youtube.com/playlist?list=PL421867F00A53B833) - [Code for Assignments](https://bitbucket.org/cs164_overlord/) - [CS3110](http://www.cs.cornell.edu/Courses/cs3110/2014fa/course_info.php) **Data Structures and Functional Programming** *Cornell University* - Another course that uses OCaml to teach alternative programming paradigms, especially functional and concurrent programming. - [Lecture Slides](http://www.cs.cornell.edu/Courses/cs3110/2014fa/lecture_notes.php) - [Assignments](http://www.cs.cornell.edu/Courses/cs3110/2014fa/) ### Algorithms - [COS226](http://www.cs.princeton.edu/courses/archive/fall14/cos226/info.php) **Data Structures and Algorithms** *Princeton University* - The [popular](https://www.coursera.org/course/algs4partI) algorithms class covering most important algorithms and data structures in use on computers taught by Robert Sedgewick. - [Assignments](http://www.cs.princeton.edu/courses/archive/fall14/cos226/assignments.php) ### Software Engineering - [CS 5150](http://www.cs.cornell.edu/courses/CS5150/2014fa/overview.html) **Software Engineering** *Cornell University* - Introduction to the practical problems of specifying, designing, building, testing, and delivering reliable software systems - [Lectures](http://www.cs.cornell.edu/courses/CS5150/2014fa/materials.html)