awesome-courses/README.md
2014-12-25 18:24:31 +03:00

78 lines
8.1 KiB
Markdown

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)
- [6.824](http://css.csail.mit.edu/6.824/2014/index.html) **Distributed Systems** *MIT*
- MIT's graduate-level DS course with a focus on fault tolerance, replication, and consistency, all taught via awesome lab assignments in Golang!
- [Assignments](http://css.csail.mit.edu/6.824/2014/labs/) - Just do `git clone git://g.csail.mit.edu/6.824-golabs-2014 6.824`
- [Lectures](http://css.csail.mit.edu/6.824/2014/schedule.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
- [15-749](http://www.andrew.cmu.edu/course/15-749/) **Engineering Distributed Systems** *Carnegie-Mellon University*
- A project focused course on Distributed Systems with an awesome list of readings
- [Readings](http://www.andrew.cmu.edu/course/15-749/READINGS/)
- [PODC](http://dcg.ethz.ch/lectures/podc_allstars/) **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](http://dcg.ethz.ch/lectures/podc_allstars/lecture/podc.pdf)
- [Assignments and Solutions](http://dcg.ethz.ch/lectures/podc_allstars/)
- [CS5412](http://www.cs.cornell.edu/Courses/CS5412/2014sp/) **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](http://www.amazon.com/Guide-Reliable-Distributed-Systems-High-Assurance/dp/1447124154) is also a gem and recommended as a must read in Google's tutorial on [Distributed System Design](http://www.hpcs.cs.tsukuba.ac.jp/~tatebe/lecture/h23/dsys/dsd-tutorial.html)
- [Slides](http://www.cs.cornell.edu/Courses/CS5412/2014sp/Syllabus.htm)
### 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)
- [CIS194](http://www.seas.upenn.edu/~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](http://www.seas.upenn.edu/~cis194/spring13/index.html) semester also available, with more exercices
- [Assignments & Lectures](http://www.seas.upenn.edu/~cis194/lectures.html)
- [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/)
- [CS173](http://cs.brown.edu/courses/cs173/2014/) **Programming Languages** *Brown University*
- Course by Prof. Krishnamurthi (author of [HtDP](http://htdp.org/2003-09-26/Book/)) and numerous other [awesome](http://cs.brown.edu/courses/cs173/2012/book/) [books](http://papl.cs.brown.edu/2014/index.html) on programming languages. Uses a custom designed [Pyret](http://www.pyret.org/) programming language to teach the concepts. There was an [online class](http://cs.brown.edu/courses/cs173/2012/OnLine/) hosted in 2012, which includes all lecture videos for you to enjoy.
- [Videos](http://cs.brown.edu/courses/cs173/2012/Videos/)
- [Assignments](http://cs.brown.edu/courses/cs173/2014/assignments.html)
### 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)
- [CS61B](http://www.cs.berkeley.edu/~jrs/61b/) **Data Structures** *Berkeley*
- In this course, you will study advanced programming techniques including data structures, encapsulation, abstract data types, interfaces, and algorithms for sorting and searching, and you will get a taste of “software engineering”—the design and implementation of large programs.
- [Labs](http://www.cs.berkeley.edu/~jrs/61b/lab/index.html)
- [Lecture Videos on Youtube](http://www.youtube.com/watch?v=frxF7Vs96YU&list=PLMM0a7ZGnITrgfhOxMNP7bpP4hhhKNY9s)
### Misc
- [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)
- [15-781](http://www.cs.cmu.edu/~tom/10701_sp11/) **Machine Learning** *Carnegie Mellon University*
- Taught by one of the leading experts on Machine Learning - **Tom Mitchell**
- [Lectures](http://www.cs.cmu.edu/~tom/10701_sp11/lectures.shtml)
- [Project Ideas and Datasets](http://www.cs.cmu.edu/~tom/10701_sp11/proj.shtml)
- [ESM 296-4F](http://ucsb-bren.github.io/esm296-4f/) **GIS & Spatial Analysis** *UC Santa Barbara*
- Taught by [James Frew](http://www.bren.ucsb.edu/people/Faculty/james_frew.htm), [Ben Best](http://mgel.env.duke.edu/people/ben-best/), and [Lisa Wedding](http://www.centerforoceansolutions.org/team/lisa-wedding)
- Focuses on specific computational languages (e.g., Python, R, shell) and tools (e.g., GDAL/OGR, InVEST, MGET, ModelBuilder) applied to the spatial analysis of environmental problems
- [GitHub ](http://ucsb-bren.github.io/esm296-4f/) (includes lecture materials and labs)