From d1126f8d41aa58de045fe9dc7050e218d43fe835 Mon Sep 17 00:00:00 2001 From: Prakhar Srivastav Date: Thu, 8 Jan 2015 15:48:19 +0530 Subject: [PATCH 1/6] Added emoji --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e26834b..946e54d 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Awesome Courses Table of Contents --- +![alt](https://raw.githubusercontent.com/raymondware/awesome-courses/master/video-em.png) + - [Systems](#systems) - [Programming Languages / Compilers](#programming-languages--compilers) - [Algorithms](#algorithms) From 8df3096af11234f9d5c3adb9b0b98cc8c68aa05c Mon Sep 17 00:00:00 2001 From: Prakhar Srivastav Date: Thu, 8 Jan 2015 16:03:24 +0530 Subject: [PATCH 2/6] added legend --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 946e54d..7ce594b 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,6 @@ Awesome Courses Table of Contents --- -![alt](https://raw.githubusercontent.com/raymondware/awesome-courses/master/video-em.png) - - [Systems](#systems) - [Programming Languages / Compilers](#programming-languages--compilers) - [Algorithms](#algorithms) @@ -16,6 +14,14 @@ Table of Contents - [Misc](#misc) - [Contributing](#contributing) +Legend +--- + +- Lecture Videos - Lecture Videos +- Lecture Videos - Lecture Notes +- Lecture Videos - Assignments / Labs +- Lecture Videos - Readings + Courses --- From 1289e3b826e6592c2272340f7b89674c3f6ce04d Mon Sep 17 00:00:00 2001 From: Prakhar Srivastav Date: Thu, 8 Jan 2015 16:12:13 +0530 Subject: [PATCH 3/6] testing two courses --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7ce594b..6adb3f4 100644 --- a/README.md +++ b/README.md @@ -18,21 +18,21 @@ Legend --- - Lecture Videos - Lecture Videos -- Lecture Videos - Lecture Notes -- Lecture Videos - Assignments / Labs -- Lecture Videos - Readings +- Lecture Notes - Lecture Notes +- Assignments - Assignments / Labs +- Readings - Readings Courses --- ### Systems -- [18-447](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=start) **Introduction to Computer Architecture** *CMU* +- [18-447](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=start) **Introduction to Computer Architecture** *CMU* Lecture Videos Assignments Readings - Very comprehensive material on Computer Architecture - definitely more than just "introduction". Online material is very user-friendly, even the recitation videos available online. This is the Spring'14 version by professor [Onur Mutlu ](http://users.ece.cmu.edu/~omutlu/). - [Lectures and Recitation](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=schedule) - [Homeworks](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=homeworks) 7 HWs with answer set as well - [Readings] (http://www.ece.cmu.edu/~ece447/s14/doku.php?id=readings) -- [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. +- [CS425](https://courses.engr.illinois.edu/cs425/fa2014/index.html) **Distributed Systems** *Univ of Illinois, Urbana-Champaign* Lecture Videos Assignments Readings + - Brilliant set of lectures and reading material covering fundamental concepts in distributed systems such as Vector clocks, Consensus and Paxos. This is the 2014 version by Prof Indranil Gupta. - [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* From 7ffc21cbc6b7dfb56a52a53b5061f877e0472b99 Mon Sep 17 00:00:00 2001 From: Prakhar Srivastav Date: Thu, 8 Jan 2015 16:39:18 +0530 Subject: [PATCH 4/6] Added a few more emojis --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6adb3f4..e1d64ff 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Courses ### Systems - [18-447](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=start) **Introduction to Computer Architecture** *CMU* Lecture Videos Assignments Readings - - Very comprehensive material on Computer Architecture - definitely more than just "introduction". Online material is very user-friendly, even the recitation videos available online. This is the Spring'14 version by professor [Onur Mutlu ](http://users.ece.cmu.edu/~omutlu/). + - Very comprehensive material on Computer Architecture - definitely more than just "introduction". Online material is very user-friendly, even the recitation videos available online. This is the Spring'14 version by Prof. [Onur Mutlu ](http://users.ece.cmu.edu/~omutlu/) - [Lectures and Recitation](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=schedule) - [Homeworks](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=homeworks) 7 HWs with answer set as well - [Readings] (http://www.ece.cmu.edu/~ece447/s14/doku.php?id=readings) @@ -35,20 +35,20 @@ Courses - Brilliant set of lectures and reading material covering fundamental concepts in distributed systems such as Vector clocks, Consensus and Paxos. This is the 2014 version by Prof Indranil Gupta. - [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* +- [CS241](https://courses.engr.illinois.edu/cs241/fa2014/index.html) **Systems Programming** *Univ of Illinois, Urbana-Champaign* Assignments Lecture Notes - 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) -- [CS 452](http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/) **Real-Time Programming** *University of Waterloo* +- [CS 452](http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/) **Real-Time Programming** *University of Waterloo* Assignments Lecture Notes - Write a real-time OS microkernel in C, and application code to operate a model train set in response to real-time sensor information. The communication with the train set runs at 2400 baud so it takes about 61 milliseconds to ask all of the sensors for data about the train's possible location. This makes it particularly challenging because a train can move about 3 centimeters in that time. One of the most challenging and time-consuming courses at the University of Waterloo. - [Assignments](http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/assignments/index.html) - [Lecture notes](http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/notes/index.html) -- [15-440](http://www.cs.cmu.edu/~dga/15-440/F12/index.html) **Distributed Systems** *Carnegie-Mellon University* +- [15-440](http://www.cs.cmu.edu/~dga/15-440/F12/index.html) **Distributed Systems** *Carnegie-Mellon University* Assignments Lecture Notes - 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* +- [6.824](http://css.csail.mit.edu/6.824/2014/index.html) **Distributed Systems** *MIT* Assignments Lecture Notes - 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) + - [Readings](http://css.csail.mit.edu/6.824/2014/schedule.html) - [6.828](http://pdos.csail.mit.edu/6.828/2014/) **Operating Systems** *MIT* - MIT's operating systems course focusing on the fundamentals of OS design including booting, memory management, environments, file systems, multitasking, and more. In a series of lab assignments, you will build JOS, an OS exokernel written in C. - [Assignments](http://pdos.csail.mit.edu/6.828/2014/labguide.html) From 9500d0e7ddf54fea2ae6f8ff37947c0ea01c2045 Mon Sep 17 00:00:00 2001 From: Prakhar Srivastav Date: Thu, 8 Jan 2015 20:15:55 +0530 Subject: [PATCH 5/6] Finished emojis in Systems --- README.md | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index e1d64ff..a2e5590 100644 --- a/README.md +++ b/README.md @@ -13,14 +13,7 @@ Table of Contents - [Introduction to CS](#introduction-to-cs) - [Misc](#misc) - [Contributing](#contributing) - -Legend ---- - -- Lecture Videos - Lecture Videos -- Lecture Notes - Lecture Notes -- Assignments - Assignments / Labs -- Readings - Readings +- [Legend](#legend) Courses --- @@ -49,33 +42,39 @@ Courses - 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` - [Readings](http://css.csail.mit.edu/6.824/2014/schedule.html) -- [6.828](http://pdos.csail.mit.edu/6.828/2014/) **Operating Systems** *MIT* +- [6.828](http://pdos.csail.mit.edu/6.828/2014/) **Operating Systems** *MIT* Assignments Lecture Notes - MIT's operating systems course focusing on the fundamentals of OS design including booting, memory management, environments, file systems, multitasking, and more. In a series of lab assignments, you will build JOS, an OS exokernel written in C. - [Assignments](http://pdos.csail.mit.edu/6.828/2014/labguide.html) - [Lectures](http://pdos.csail.mit.edu/6.828/2014/schedule.html) -- [SPAC](http://homes.cs.washington.edu/~djg/teachingMaterials/spac/) **Parallelism and Concurrency** *Univ of Washington* +- [SPAC](http://homes.cs.washington.edu/~djg/teachingMaterials/spac/) **Parallelism and Concurrency** *Univ of Washington* Readings - 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* +- [15-749](http://www.andrew.cmu.edu/course/15-749/) **Engineering Distributed Systems** *Carnegie-Mellon University* Readings - 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* +- [PODC](http://dcg.ethz.ch/lectures/podc_allstars/) **Principles of Distributed Computing** *ETH-Zurich* Assignments Readings Lecture Notes - 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* +- [CS5412](http://www.cs.cornell.edu/Courses/CS5412/2014sp/) **Cloud Computing** *Cornell University* Lecture Notes +Readings - 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) -- [CSCI 360](http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci360/csci360_f14.php) **Computer Architecture 3** *CUNY Hunter College* +- [CSCI 360](http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci360/csci360_f14.php) **Computer Architecture 3** *CUNY Hunter College* Assignments +Lecture Notes - A course that covers cache design, buses, memory hierarchies, processor-peripheral interfaces, and multiprocessors, including GPUs. -- [CSCI 493.66](http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci493.66/csci493.66_spr12.php) **UNIX System Programming (formerly UNIX Tools)** *CUNY Hunter College* +- [CSCI 493.66](http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci493.66/csci493.66_spr12.php) **UNIX System Programming (formerly UNIX Tools)** *CUNY Hunter College* Assignments +Lecture Notes - A course that is mostly about writing programs against the UNIX API, covering all of the basic parts of the kernel interface and libraries, including files, processes, terminal control, signals, and threading. -- [CSCI 493.75](http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci493.65/csci493.65_spr14.php) **Parallel Computing** *CUNY Hunter College* +- [CSCI 493.75](http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci493.65/csci493.65_spr14.php) **Parallel Computing** *CUNY Hunter College* Assignments +Lecture Notes - The course is an introduction to parallel algorithms and parallel programming in C and C++, using the Message Passing Interface (MPI) and the OpenMP application programming interface. It also includes a brief introduction to parallel architectures and interconnection networks. It is both theoretical and practical, including material on design methodology, performance analysis, and mathematical concepts, as well as details on programming using MPI and OpenMP. -- [CS 107](http://web.stanford.edu/class/cs107/index.html) **Computer Organization & Systems** *Stanford University* +- [CS 107](http://web.stanford.edu/class/cs107/index.html) **Computer Organization & Systems** *Stanford University* Lecture Videos +Assignments - CS107 is the third course in Stanford's introductory programming sequence. The course will work from the C programming language down to the microprocessor to de-mystify the machine. With a complete understanding of how computer systems execute programs and manipulate data, you will become a more effective programmer, especially in dealing with issues of debugging, performance, portability, and robustness. - [Lecture Videos](https://www.youtube.com/playlist?list=PL08D9FA018A965057&spfreload=10) - [Assignments](http://web.stanford.edu/class/cs107/assignments.html) -- [ECE 459](http://patricklam.ca/p4p/) **Programming for Performance** *University of Waterloo* +- [ECE 459](http://patricklam.ca/p4p/) **Programming for Performance** *University of Waterloo* Lecture Notes +Assignments - Learn techniques for profiling, rearchitecting, and implementing software systems that can handle industrial-sized inputs, and to design and build critical software infrastructure. Learn performance optimization through parallelization, multithreading, async I/O, vectorization and GPU programming, and distributed computing. - [Lecture slides](http://patricklam.ca/p4p/notes/) @@ -294,6 +293,15 @@ Courses - [Labs](http://ocw.tufts.edu/Course/75/Labs) +----- +Legend +--- + +- Lecture Videos - Lecture Videos +- Lecture Notes - Lecture Notes +- Assignments - Assignments / Labs +- Readings - Readings + ----- ### Contributing From 28a21c45d48586a71866d8d63632191eafe9edbe Mon Sep 17 00:00:00 2001 From: Prakhar Srivastav Date: Thu, 8 Jan 2015 20:22:53 +0530 Subject: [PATCH 6/6] Shuffled the legend --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a2e5590..95ca3ae 100644 --- a/README.md +++ b/README.md @@ -294,15 +294,13 @@ Courses ----- -Legend ---- + +### Legend - Lecture Videos - Lecture Videos - Lecture Notes - Lecture Notes - Assignments - Assignments / Labs - Readings - Readings ------ - ### Contributing Have a few courses in mind that you think are awesome and would fit in this list? Feel free to send a [pull request](https://github.com/prakhar1989/awesome-courses/pulls). However, do note that I'm not keen on adding popular courses (such as MOOCs / MIT OCW) as there are services like [ClassCentral](https://www.class-central.com/) doing a great job of aggregation. This list is ideally for courses which are relatively unknown and make their material (assignments, lectures, exams etc.) available online for free.