diff --git a/README.md b/README.md index 581d99b..79f86ab 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,7 @@ Courses - [Lecture Notes](http://www-inst.eecs.berkeley.edu/~cs61c/sp15/#Calendar) - [Resources](http://www-inst.eecs.berkeley.edu/~cs61c/sp15/#Resources) - [Old Exams](https://hkn.eecs.berkeley.edu/exams/course/CS/61C) -- [CS 107](https://courseware.stanford.edu/pg/courses/lectures/371747) **Computer Organization & Systems** *Stanford University* Lecture Videos -Assignments +- [CS 107](https://courseware.stanford.edu/pg/courses/lectures/371747) **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) @@ -101,8 +100,7 @@ Courses - A course (that) covers topics including: Analysis process communication and synchronization; resource management; virtual memory management algorithms; file systems; and networking and distributed systems. The primary goal of this course is to improve your ability to build scalable, robust and secure computing systems. It focuses on doing that by understanding what underlies the core abstractions of modern computer systems. - [Syllabus](http://rust-class.org/pages/syllabus.html) - [Lectures](http://rust-class.org/pages/classes.html) -- [CS 5412](http://www.cs.cornell.edu/Courses/CS5412/2014sp/) **Cloud Computing** *Cornell University* Lecture Notes -Readings +- [CS 5412](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) - [CSCE 3613](http://comp.uark.edu/~wingning/csce3613/csce3613.html) **Operating Systems** *University of Arkansas (Fayetteville)* Assignments Lecture NotesReadings - An introduction to operating systems including topics in system structures, process management, storage management, files, distributed systems, and case studies. @@ -117,11 +115,9 @@ Courses - [Old Exams](http://www.cs.nyu.edu/~mwalfish/classes/15sp/exams.html) - [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* Assignments -Lecture Notes +- [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* Assignments -Lecture Notes +- [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. - [Hack the Kernel](https://www.ops-class.org/) **Introduction to Operating Systems** *SUNY University at Buffalo, NY* Lecture Videos Assignments Lecture Notes - This course is an introduction to operating system design and implementation. We study operating systems because they are examples of mature and elegant solutions to a difficult design problem: how to safely and efficiently share system resources and provide abstractions useful to applications. @@ -131,8 +127,7 @@ Courses - [Video lectures](https://www.youtube.com/playlist?list=PLE6LEE8y2Jp-kbEcVR2W3vfx0Pdca0BD3) - [Assignments](https://www.ops-class.org/asst/0/) - [Old Exams](https://www.ops-class.org/exams/) -- [ECE 459](http://patricklam.ca/p4p/) **Programming for Performance** *University of Waterloo* Lecture Notes -Assignments +- [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](https://github.com/patricklam/p4p-2015/tree/master/lectures) - [PODC](http://dcg.ethz.ch/lectures/podc_allstars/) **Principles of Distributed Computing** *ETH-Zurich* Assignments Readings Lecture Notes @@ -159,7 +154,7 @@ Courses - [Lecture Notes](http://www.cs.cmu.edu/~213/schedule.html) - [Videos](https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22b96d90ae-9871-4fae-91e2-b1627b43e25e%22) - [Assignments](http://csapp.cs.cmu.edu/public/labs.html) -- [15-418](http://15418.courses.cs.cmu.edu/spring2015/)**Parallel Computer Architecture and Programming** *Carnegie-Mellon University* Lecture Videos Assignments Lecture Notes Readings +- [15-418](http://15418.courses.cs.cmu.edu/spring2015/) **Parallel Computer Architecture and Programming** *Carnegie-Mellon University* Lecture Videos Assignments Lecture Notes Readings - The goal of this course is to provide a deep understanding of the fundamental principles and engineering trade-offs involved in designing modern parallel computing systems as well as to teach parallel programming techniques necessary to effectively utilize these machines. Because writing good parallel programs requires an understanding of key machine performance characteristics, this course will cover both parallel hardware and software design. - [Assignments](http://15418.courses.cs.cmu.edu/spring2015/exercises) - [Lecture Notes](http://15418.courses.cs.cmu.edu/spring2015/reading) @@ -180,10 +175,9 @@ Courses - 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) - -------- + - [Readings](http://www.ece.cmu.edu/~ece447/s14/doku.php?id=readings) +-------- ### Programming Languages / Compilers - [CS 75](https://www.cs.swarthmore.edu/~jpolitz/cs75/s16/index.html) **Principles of Compiler Design** *Swathmore College* Lecture Videos Assignments Lecture Notes @@ -652,8 +646,7 @@ Topics covered include probability theory and Bayesian inference; univariate dis - Regression will be covered if time permits. - [Assignments](http://www.cs.cornell.edu/courses/CS4786/2015sp/assignments.htm) - [Lectures](http://www.cs.cornell.edu/courses/CS4786/2015sp/lectures.htm) -- [CVX 101](https://class.stanford.edu/courses/Engineering/CVX101/Winter2014/info) **Convex Optimization** *Stanford University* Assignments Lecture Notes - Readings +- [CVX 101](https://class.stanford.edu/courses/Engineering/CVX101/Winter2014/info) **Convex Optimization** *Stanford University* Assignments Lecture Notes Readings - The course concentrates on recognizing and solving convex optimization problems that arise in applications. Topics addressed include the following. Convex sets, functions, and optimization problems. Basics of convex analysis. Least-squares, linear and quadratic programs, semidefinite programming, minimax, extremal volume, and other problems. Optimality conditions, duality theory, theorems of alternative, and applications. Interior-point methods. Applications to signal processing, statistics and machine learning, control and mechanical engineering, digital and analog circuit design, and finance. - [Textbook](http://web.stanford.edu/~boyd/cvxbook/) - [Lectures and Assignments](https://class.stanford.edu/courses/Engineering/CVX101/Winter2014/courseware/7206c57866504e83821d00b5d3f80793/)