Files
awesome-awesomeness/html/courses.html
2024-04-20 19:22:54 +02:00

3988 lines
246 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-cs-courses-awesome">Awesome CS Courses <a
href="https://github.com/sindresorhus/awesome"><img
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
alt="Awesome" /></a></h1>
<h2 id="introduction">Introduction</h2>
<p>There are a lot of <del>hidden</del> treasures lying within
university pages scattered across the internet. This list is an attempt
to bring to light those awesome CS courses which make their high-quality
materials, i.e. assignments, lectures, notes, readings and examinations,
available online for free.</p>
<h2 id="table-of-contents">Table of Contents</h2>
<ul>
<li><a href="#algorithms">Algorithms</a></li>
<li><a href="#artificial-intelligence">Artificial Intelligence</a></li>
<li><a href="#computer-graphics">Computer Graphics</a></li>
<li><a href="#cs-theory">CS Theory</a></li>
<li><a href="#introduction-to-cs">Introduction to CS</a></li>
<li><a href="#machine-learning">Machine Learning</a></li>
<li><a href="#misc">Misc</a></li>
<li><a href="#programming-languages--compilers">Programming Languages /
Compilers</a></li>
<li><a href="#security">Security</a></li>
<li><a href="#systems">Systems</a></li>
<li><a href="#statistics">Statistics / Regression</a></li>
</ul>
<h3 id="legend">Legend</h3>
<ul>
<li><img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
- Lecture Videos</li>
<li><img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Lecture Notes</li>
<li><img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- Assignments / Labs</li>
<li><img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- Readings</li>
</ul>
<h2 id="courses">Courses</h2>
<h3 id="systems">Systems</h3>
<ul>
<li><a href="http://www-inst.eecs.berkeley.edu/~cs61c/sp15/">CS 61C</a>
<strong>Great Ideas in Computer Architecture (Machine
Structures)</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>The subjects covered in this course include: C and assembly language
programming, translation of high-level programs into machine language,
computer organization, caches, performance measurement, parallelism, CPU
design, warehouse-scale computing, and related topics.</li>
<li><a
href="https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_?sort=titleSorter">Lecture
Videos</a></li>
<li><a
href="http://www-inst.eecs.berkeley.edu/~cs61c/sp15/#Calendar">Lecture
Notes</a></li>
<li><a
href="http://www-inst.eecs.berkeley.edu/~cs61c/sp15/#Resources">Resources</a></li>
<li><a href="https://hkn.eecs.berkeley.edu/exams/course/CS/61C">Old
Exams</a></li>
</ul></li>
<li><a
href="https://courseware.stanford.edu/pg/courses/lectures/371747">CS
107</a> <strong>Computer Organization &amp; Systems</strong>
<em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>CS107 is the third course in Stanfords 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.</li>
<li><a
href="https://www.youtube.com/playlist?list=PL08D9FA018A965057&amp;spfreload=10">Lecture
Videos</a></li>
<li><a
href="http://web.stanford.edu/class/cs107/assignments.html">Assignments</a></li>
</ul></li>
<li><a
href="http://web.stanford.edu/~ouster/cgi-bin/cs140-spring14/lectures.php">CS
140</a> <strong>Operating Systems</strong> <em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This class introduces the basic facilities provided in modern
operating systems. The course divides into three major sections. The
first part of the course discusses concurrency. The second part of the
course addresses the problem of memory management. The third major part
of the course concerns file systems.</li>
<li><a
href="http://web.stanford.edu/~ouster/cgi-bin/cs140-spring14/lectures.php">Lecture
Notes</a></li>
<li><a
href="http://web.stanford.edu/~ouster/cgi-bin/cs140-spring14/projects.php">Assignments</a></li>
</ul></li>
<li><a href="https://6004.mit.edu/">6.004</a> <strong>Computation
Structures</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<ul>
<li>Introduces architecture of digital systems, emphasizing structural
principles common to a wide range of technologies. Multilevel
implementation strategies; definition of new primitives (e.g., gates,
instructions, procedures, processes) and their mechanization using
lower-level elements. Analysis of potential concurrency; precedence
constraints and performance measures; pipelined and multidimensional
systems. Instruction set design issues; architectural support for
contemporary software structures. 4 Engineering Design Points. 6.004
offers an introduction to the engineering of digital systems. Starting
with MOS transistors, the course develops of series of building blocks
logic gates, combinational and sequential circuits, finite-state
machines, computers and finally complete systems. Both hardware and
software mechanisms are explored through a series of design
examples.</li>
<li><a
href="https://www.youtube.com/watch?v=9DWlqtsNGV0&amp;index=1&amp;list=PLmP5iIyVnKPQ-cO_EENdUgEdlRf0u5LYa">Youtube
Playlist</a></li>
<li><a
href="http://computationstructures.org/notes/tradeoffs/notes.html">Lecture
Notes</a></li>
<li><a
href="http://computationstructures.org/exercises/cmos/lab.html">Labs-Assignments</a></li>
</ul></li>
<li><a href="http://cs162.eecs.berkeley.edu/">CS 162</a>
<strong>Operating Systems and Systems Programming</strong> <em>UC
Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>The purpose of this course is to teach the design of operating
systems and operating systems concepts that appear in other advanced
systems. Topics we will cover include concepts of operating systems,
systems programming, networked and distributed systems, and storage
systems, including multiple-program systems (processes, interprocess
communication, and synchronization), memory allocation (segmentation,
paging), resource allocation and scheduling, file systems, basic
networking (sockets, layering, APIs, reliability), transactions,
security, and privacy.
<ul>
<li>Operating Systems course by the Chair of EECS, UC Berkeley <a
href="http://www.cs.berkeley.edu/~culler/">David Culler</a></li>
<li><a
href="https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c">Lecture
Videos</a> Spring 2015 lectures</li>
<li><a href="https://inst.eecs.berkeley.edu/~cs162/sp15/">Lecture
Notes</a> Spring 2015 lectures</li>
</ul></li>
</ul></li>
<li><a href="https://inst.eecs.berkeley.edu/~cs168/fa14/">CS 168</a>
<strong>Introduction to the Internet: Architecture and
Protocols</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>This course is an introduction to the Internet architecture. We will
focus on the concepts and fundamental design principles that have
contributed to the Internets scalability and robustness and survey the
various protocols and algorithms used within this architecture. Topics
include layering, addressing, intradomain routing, interdomain routing,
reliable delivery, congestion control, and the core protocols (e.g.,
TCP, UDP, IP, DNS, and HTTP) and network technologies (e.g., Ethernet,
wireless).</li>
<li><a
href="https://inst.eecs.berkeley.edu/~cs168/fa14/class.html">Lecture
Notes &amp; Assignments</a></li>
<li><a href="https://inst.eecs.berkeley.edu/~cs168/fa14/">Discussion
Notes</a></li>
</ul></li>
<li><a href="http://courses.cms.caltech.edu/cs179/">CS 179</a>
<strong>GPU Programming</strong> <em>Caltech</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course will cover programming techniques for the GPU. The
course will introduce NVIDIAs parallel computing language, CUDA. Beyond
covering the CUDA programming model and syntax, the course will also
discuss GPU architecture, high performance computing on GPUs, parallel
algorithms, CUDA libraries, and applications of GPU computing.</li>
<li><a href="http://courses.cms.caltech.edu/cs179/">Assignments</a></li>
<li><a href="http://courses.cms.caltech.edu/cs179/">Lecture
Notes</a></li>
</ul></li>
<li><a href="https://sites.google.com/site/cs186spring2015/">CS 186</a>
<strong>Introduction to Database Systems</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>In the project assignments in CS186, you will write a basic database
management system called SimpleDB. For this project, you will focus on
implementing the core modules required to access stored data on disk; in
future projects, you will add support for various query processing
operators, as well as transactions, locking, and concurrent
queries.</li>
<li><a
href="https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBVK2QzAV-R7NMA1ZkaiR2y">Lecture
Videos</a></li>
<li><a
href="https://sites.google.com/site/cs186fall2013/section-notes">Lecture
Notes</a></li>
<li><a
href="https://sites.google.com/site/cs186fall2013/homeworks">Projects</a></li>
</ul></li>
<li><a
href="https://courses.engr.illinois.edu/cs241/sp2016/index.html">CS
241</a> <strong>Systems Programming (Spring 2016)</strong> <em>Univ of
Illinois, Urbana-Champaign</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>System programming refers to writing code that tasks advantage of
operating system support for programmers. This course is designed to
introduce you to system programming. By the end of this course, you
should be proficient at writing programs that take full advantage of
operating system support. To be concrete, we need to fix an operating
system and we need to choose a programming language for writing
programs. We chose the C language running on a Linux/UNIX operating
system (which implements the POSIX standard interface between the
programmer and the OS).</li>
<li><a
href="https://courses.engr.illinois.edu/cs241/sp2016/mps.html">Assignments</a></li>
<li><a
href="https://courses.engr.illinois.edu/cs241/sp2016/labs.html">Labs</a></li>
<li><a href="http://angrave.github.io/sys/#">Github Page</a></li>
<li><a href="https://github.com/angrave/SystemProgramming/wiki">Crowd
Sourced Book</a></li>
</ul></li>
<li><a
href="https://courses.engr.illinois.edu/cs425/fa2016/index.html">CS
425</a> <strong>Distributed Systems</strong> <em>Univ of Illinois,
Urbana-Champaign</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Brilliant set of lectures and reading material covering fundamental
concepts in distributed systems such as Vector clocks, Consensus and
Paxos. This is the 2016 version by Prof Indranil Gupta.</li>
<li><a
href="https://courses.engr.illinois.edu/cs425/fa2016/lectures.html">Lectures</a></li>
<li><a
href="https://courses.engr.illinois.edu/cs425/fa2016/assignments.html">Assignments</a></li>
</ul></li>
<li><a
href="http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/">CS
452</a> <strong>Real-Time Programming</strong> <em>University of
Waterloo</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>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 trains
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.</li>
<li><a
href="http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/assignments/index.html">Assignments</a></li>
<li><a
href="http://www.cgl.uwaterloo.ca/~wmcowan/teaching/cs452/s12/notes/index.html">Lecture
notes</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS2043/2014sp/">CS
2043</a> <strong>Unix Tools &amp; Scripting</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>UNIX-like systems are increasingly being used on personal computers,
mobile phones, web servers, and many other systems. They represent a
wonderful family of programming environments useful both to computer
scientists and to people in many other fields, such as computational
biology and computational linguistics, in which data is naturally
represented by strings. This course provides an intensive training to
develop skills in Unix command line tools and scripting that enable the
accomplishment and automation of large and challenging computing tasks.
The syllabus takes students from shell basics and piping, to
regular-expression processing tools, to shell scripting and Python.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS2043/2014sp/">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS2043/2014sp/">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS2043/2014sp/">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/cs3410/2016fa/">CS
3410</a> <strong>Computer System Organization and Programming</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>CS3410 provides an introduction to computer organization, systems
programming and the hardware/software interface. Topics include
instruction sets, computer arithmetic, datapath design, data formats,
addressing modes, memory hierarchies including caches and virtual
memory, I/O devices, bus-based I/O systems, and multicore architectures.
Students learn assembly language programming and design a pipelined RISC
processor.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3410/2014sp/schedule.html">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3410/2014sp/schedule.html">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS4410/2014fa/">CS
4410</a> <strong>Operating Systems</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>CS 4410 covers systems programming and introductory operating system
design and implementation. We will cover the basics of operating
systems, namely structure, concurrency, scheduling, synchronization,
memory management, filesystems, security and networking. The course is
open to any undergraduate who has mastered the material in
CS3410/ECE3140.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4410/2014fa/slides/01-intro.pptx">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4410/2014fa/lectures.php">Lectures</a></li>
</ul></li>
<li><a href="http://rust-class.org/index.html">CS 4414</a>
<strong>Operating Systems</strong> <em>University of Virginia</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>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.</li>
<li><a
href="http://rust-class.org/pages/syllabus.html">Syllabus</a></li>
<li><a href="http://rust-class.org/pages/classes.html">Lectures</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/Courses/CS5412/2014sp/">CS
5412</a> <strong>Cloud Computing</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>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 Profs
<a
href="http://www.amazon.com/Guide-Reliable-Distributed-Systems-High-Assurance/dp/1447124154">book</a>
is also a gem and recommended as a must read in Googles tutorial on <a
href="http://www.hpcs.cs.tsukuba.ac.jp/~tatebe/lecture/h23/dsys/dsd-tutorial.html">Distributed
System Design</a></li>
<li><a
href="http://www.cs.cornell.edu/Courses/CS5412/2014sp/Syllabus.htm">Slides</a></li>
</ul></li>
<li><a href="http://comp.uark.edu/~wingning/csce3613/csce3613.html">CSCE
3613</a> <strong>Operating Systems</strong> <em>University of Arkansas
(Fayetteville)</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- An introduction to operating systems including topics in system
structures, process management, storage management, files, distributed
systems, and case studies.
<ul>
<li><a
href="http://comp.uark.edu/~wingning/csce3613/CSCE3613.pdf">Syllabus</a></li>
<li><a
href="http://comp.uark.edu/~wingning/csce3613/Homework3613.html">Assignments</a></li>
<li><a
href="http://comp.uark.edu/~wingning/csce3613/CourseNote3613.html">Lecture
Notes</a></li>
<li><a
href="http://comp.uark.edu/~wingning/csce3613/Link3613.html">Readings</a></li>
</ul></li>
<li><a
href="http://www.cs.nyu.edu/~mwalfish/classes/15sp/index.html">CSCI-UA.0202:
Operating Systems (Undergrad)</a> <strong>Operating Systems</strong>
<em>NYU</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>NYUs operating system course. Its a fundamental course focusing
basic ideas of operating systems, including memory management, process
scheduling, file system, ect. It also includes some recommended reading
materials. Whats more, there are a series of hands-on lab materials,
helping you easily understand OS.</li>
<li><a
href="http://www.cs.nyu.edu/~mwalfish/classes/15sp/labs.html">Assignments</a></li>
<li><a
href="http://www.cs.nyu.edu/~mwalfish/classes/15sp/syllabus.html">Lectures</a></li>
<li><a
href="http://www.cs.nyu.edu/~mwalfish/classes/15sp/exams.html">Old
Exams</a></li>
</ul></li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci360/csci360_f14.php">CSCI
360</a> <strong>Computer Architecture 3</strong> <em>CUNY Hunter
College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>A course that covers cache design, buses, memory hierarchies,
processor-peripheral interfaces, and multiprocessors, including
GPUs.</li>
</ul></li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci493.66/csci493.66_spr12.php">CSCI
493.66</a> <strong>UNIX System Programming (formerly UNIX
Tools)</strong> <em>CUNY Hunter College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>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.</li>
</ul></li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci493.65/csci493.65_spr14.php">CSCI
493.75</a> <strong>Parallel Computing</strong> <em>CUNY Hunter
College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>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.</li>
</ul></li>
<li><a href="https://www.ops-class.org/">Hack the Kernel</a>
<strong>Introduction to Operating Systems</strong> <em>SUNY University
at Buffalo, NY</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>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.</li>
<li>For the processor, memory, and disks, we discuss how the operating
system allocates each resource and explore the design and implementation
of related abstractions. We also establish techniques for testing and
improving system performance and introduce the idea of hardware
virtualization. Programming assignments provide hands-on experience with
implementing core operating system components in a realistic development
environment. Course by <a
href="https://blue.cse.buffalo.edu/people/gwa/">Dr.Geoffrey
Challen</a></li>
<li><a
href="https://www.ops-class.org/courses/buffalo/CSE421_Spring2016/">Syllabus</a></li>
<li><a href="https://www.ops-class.org/slides/">Slides</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLE6LEE8y2Jp-kbEcVR2W3vfx0Pdca0BD3">Video
lectures</a></li>
<li><a href="https://www.ops-class.org/asst/0/">Assignments</a></li>
<li><a href="https://www.ops-class.org/exams/">Old Exams</a></li>
</ul></li>
<li><a href="http://patricklam.ca/p4p/">ECE 459</a> <strong>Programming
for Performance</strong> <em>University of Waterloo</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>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.</li>
<li><a
href="https://github.com/patricklam/p4p-2015/tree/master/lectures">Lecture
slides</a></li>
</ul></li>
<li><a
href="https://webpages.uncc.edu/~jmconrad/EducationalMaterials/index.html">ECGR4101/5101</a>
<strong>Embedded Systems using the Renesas RX63N Processor</strong>
<em>University of North Carolina at Charlotte</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Introduction to designing microcontroller-based embedded computer
systems using assembly and C programs. Examination of Real-time
Operating Systems and their impact on performance. Computer engineering
applications will be emphasized.</li>
<li>The goal of this course is to solidify and build upon a students
knowledge of computer organization by presenting hands-on experience
with microcontrollers. Students will also examine a few sensors that are
used in commercial and medical products and learn how to interface them
in a microcontroller system.</li>
<li><a
href="https://www.youtube.com/playlist?list=PLPIqCiMhcdO5gxLJWt_hY5CPMzqg75IU5">Lecture
Videos</a></li>
<li><a
href="https://webpages.uncc.edu/~jmconrad/EducationalMaterials/index.html">Lecture
Notes</a></li>
</ul></li>
<li><a href="http://dcg.ethz.ch/lectures/podc_allstars/">PODC</a>
<strong>Principles of Distributed Computing</strong> <em>ETH-Zurich</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>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.</li>
<li><a
href="http://dcg.ethz.ch/lectures/podc_allstars/lecture/podc.pdf">Book</a></li>
<li><a href="http://dcg.ethz.ch/lectures/podc_allstars/">Assignments and
Solutions</a></li>
</ul></li>
<li><a
href="http://homes.cs.washington.edu/~djg/teachingMaterials/spac/">SPAC</a>
<strong>Parallelism and Concurrency</strong> <em>Univ of Washington</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>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</li>
</ul></li>
<li><a href="http://css.csail.mit.edu/6.824/2014/index.html">6.824</a>
<strong>Distributed Systems</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>MITs graduate-level DS course with a focus on fault tolerance,
replication, and consistency, all taught via awesome lab assignments in
Golang!</li>
<li><a href="http://css.csail.mit.edu/6.824/2014/labs/">Assignments</a>
- Just do
<code>git clone git://g.csail.mit.edu/6.824-golabs-2014 6.824</code></li>
<li><a
href="http://css.csail.mit.edu/6.824/2014/schedule.html">Readings</a></li>
</ul></li>
<li><a href="http://pdos.csail.mit.edu/6.828/2014/">6.828</a>
<strong>Operating Systems</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>MITs 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.</li>
<li><a
href="http://pdos.csail.mit.edu/6.828/2014/labguide.html">Assignments</a></li>
<li><a
href="http://pdos.csail.mit.edu/6.828/2014/schedule.html">Lectures</a></li>
<li><a
href="http://pdos.csail.mit.edu/6.828/2011/schedule.html">Videos</a>
Note: These are student recorded cam videos of the 2011 course. The
videos explain a lot of concepts required for the labs and
assignments.</li>
</ul></li>
<li><a
href="http://courses.cs.washington.edu/courses/csep552/16wi/">CSEP
552</a> <strong>Distributed Systems</strong> <em>University of
Washington</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CSEP552 is a graduate course on distributed systems. Distributed
systems have become central to many aspects of how computers are used,
from web applications to e-commerce to content distribution. This course
will cover abstractions and implementation techniques for the
construction of distributed systems, including client server computing,
the web, cloud computing, peer-to-peer systems, and distributed storage
systems. Topics will include remote procedure call, maintaining
consistency of distributed state, fault tolerance, high availability,
and other topics. As we believe the best way to learn the material is to
build it, there will be a series of hands-on programming projects.</li>
<li><a
href="http://courses.cs.washington.edu/courses/csep552/13sp/video/">Lectures</a>
of a previous session are available to watch.</li>
</ul></li>
<li><a href="http://www.cs.cmu.edu/~213/">15-213</a>
<strong>Introduction to Computer Systems (ICS)</strong>
<em>Carnegie-Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>The ICS course provides a programmers view of how computer systems
execute programs, store information, and communicate. It enables
students to become more effective programmers, especially in dealing
with issues of performance, portability and robustness. It also serves
as a foundation for courses on compilers, networks, operating systems,
and computer architecture, where a deeper understanding of systems-level
issues is required. Topics covered include: machine-level code and its
generation by optimizing compilers, performance evaluation and
optimization, computer arithmetic, memory organization and management,
networking technology and protocols, and supporting concurrent
computation.</li>
<li>This is the must-have course for everyone in CMU who wants to learn
some computer science no matter what major are you in. Because its CMU
(The course number is as same as the zip code of CMU)!</li>
<li><a href="http://www.cs.cmu.edu/~213/schedule.html">Lecture
Notes</a></li>
<li><a
href="https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22b96d90ae-9871-4fae-91e2-b1627b43e25e%22">Videos</a></li>
<li><a
href="http://csapp.cs.cmu.edu/public/labs.html">Assignments</a></li>
</ul></li>
<li><a
href="http://www.cs.cmu.edu/~msakr/15619-s17/recitations.html">15-319/619</a>
<strong>Cloud Computing (ICS)</strong> <em>Carnegie-Mellon
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>This project-based on-line course focuses on skill building across
various aspects of cloud computing. We cover conceptual topics and
provide hands-on experience through projects utilizing public cloud
infrastructures (Amazon Web Services (AWS), Microsoft Azure and Google
Cloud Platform (GCP)). The adoption of cloud computing services
continues to grow across a variety of organizations and in many domains.
Simply, cloud computing is the delivery of computing as a service over a
network, whereby distributed resources and services are rented, rather
than owned, by an end user as a utility.</li>
<li>For the projects, students will work with Amazon Web Services,
Microsoft Azure and Google Cloud Platform, use them to rent and
provision compute resources and then program and deploy applications
that run on these resources. Students will develop and evaluate virtual
machine (VM) and container scaling, elasticity and load balancing
solutions. In addition, students will work with cloud storage systems
and learn to develop different applications using batch, iterative and
stream processing frameworks. 15-619 students will have to complete an
extra project which entails designing and implementing a complete
web-service solution for querying big data. For the extra project, the
student teams are evaluated based on the cost and performance of their
web service.</li>
<li><a
href="http://www.cs.cmu.edu/~msakr/15619-s17/recitations.html">Lecture
Notes</a></li>
<li><a
href="http://www.cs.cmu.edu/~msakr/15619-s17/recitations.html">Videos</a></li>
</ul></li>
<li><a href="https://www.cs.cmu.edu/~410/">15-410</a> <strong>Operating
System Design and Implementation</strong> <em>Carnegie-Mellon
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>This awesome course covers some fundamental topics of operating
system, such as process model, virtual memory concurrency, threads,
locking, interrupts, preemptibility, race conditions. It also covers
introductory understanding of typical OS topics (file systems,
transactions, scheduling, security concepts and technologies, memory
consistency)Parallel programming models / frameworks.</li>
<li><a href="https://www.cs.cmu.edu/~410/lecture.html">Lecture
Notes</a></li>
<li><a
href="https://www.cs.cmu.edu/~410/p1/proj1.html">Assignments</a></li>
</ul></li>
<li><a href="http://15418.courses.cs.cmu.edu/spring2015/">15-418</a>
<strong>Parallel Computer Architecture and Programming</strong>
<em>Carnegie-Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>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.</li>
<li><a
href="http://15418.courses.cs.cmu.edu/spring2015/exercises">Assignments</a></li>
<li><a href="http://15418.courses.cs.cmu.edu/spring2015/reading">Lecture
Notes</a></li>
<li><a
href="https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22a5862643-2416-49ef-b46b-13465d1b6df0%22">Lecture
Videos</a></li>
<li><a
href="http://15418.courses.cs.cmu.edu/spring2015/reading">Readings</a></li>
</ul></li>
<li><a
href="http://www.cs.cmu.edu/~dga/15-440/F12/index.html">15-440</a>
<strong>Distributed Systems</strong> <em>Carnegie-Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Introduction to distributed systems with a focus on teaching
concepts via projects implemented in the Go programming language.</li>
<li><a
href="http://www.cs.cmu.edu/~dga/15-440/F12/assignments.html">Assignments</a></li>
</ul></li>
<li><a href="http://15721.courses.cs.cmu.edu/spring2016/">15-721</a>
<strong>Database Systems</strong> <em>Carnegie-Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course is a comprehensive study of the internals of modern
database management systems. It will cover the core concepts and
fundamentals of the components that are used in both high-performance
transaction processing systems (OLTP) and large-scale analytical systems
(OLAP). The class will stress both efficiency and correctness of the
implementation of these ideas. All class projects will be in the context
of a real in-memory, multi-core database system. The course is
appropriate for graduate students in software systems and for advanced
undergraduates with strong systems programming skills.</li>
<li><a
href="http://15721.courses.cs.cmu.edu/spring2016/syllabus.html">Assignments</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLSE8ODhjZXjbisIGOepfnlbfxeH7TW-8O">Lecture
Videos</a></li>
<li><a
href="http://15721.courses.cs.cmu.edu/spring2016/schedule.html">Readings</a></li>
</ul></li>
<li><a href="http://15445.courses.cs.cmu.edu/fall2017/">15-445/645</a>
<strong>Database Systems</strong> <em>Carnegie-Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course covers fundamental topics of DBMS, compared to CMU
15-721.</li>
<li><a
href="http://15445.courses.cs.cmu.edu/fall2017/assignments.html">Assignments</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLSE8ODhjZXjYutVzTeAds8xUt1rcmyT7x">Lecture
Videos</a></li>
<li><a
href="http://15445.courses.cs.cmu.edu/fall2017/schedule.html">Readings</a></li>
</ul></li>
<li><a href="http://www.andrew.cmu.edu/course/15-749/">15-749</a>
<strong>Engineering Distributed Systems</strong> <em>Carnegie-Mellon
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>A project focused course on Distributed Systems with an awesome list
of readings</li>
<li><a
href="http://www.andrew.cmu.edu/course/15-749/READINGS/">Readings</a></li>
</ul></li>
<li><a
href="http://www.ece.cmu.edu/~ece447/s15/doku.php?id=start">18-447</a>
<strong>Introduction to Computer Architecture</strong> <em>CMU</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>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 Spring15
version by Prof. <a href="http://users.ece.cmu.edu/~omutlu/">Onur
Mutlu</a></li>
<li><a
href="http://www.ece.cmu.edu/~ece447/s15/doku.php?id=schedule">Lectures
and Recitation</a></li>
<li><a
href="http://www.ece.cmu.edu/~ece447/s15/doku.php?id=homeworks">Homeworks</a>
7 HWs with answer set as well</li>
<li><a
href="http://www.ece.cmu.edu/~ece447/s15/doku.php?id=readings">Readings</a></li>
</ul></li>
</ul>
<table style="width:12%;">
<colgroup>
<col style="width: 12%" />
</colgroup>
<tbody>
<tr class="odd">
<td>### Programming Languages / Compilers</td>
</tr>
<tr class="even">
<td>- <a
href="https://www.cs.swarthmore.edu/~jpolitz/cs75/s16/index.html">CS
75</a> <strong>Principles of Compiler Design</strong> <em>Swathmore
College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Modelled after the influential paper on <a
href="http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf">incremental
approach to compiler design</a>, this course teaches how to build a
compiler in OCaml - <a
href="https://github.com/compilers-course-materials">Course on
Github</a> - <a
href="https://github.com/compilers-course-materials/cs75-s16-lectures">Notes</a>
- <a
href="https://www.cs.swarthmore.edu/~jpolitz/cs91/s15/index.html">CS
91</a> <strong>Introduction to Programming Languages</strong>
<em>Swathmore College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- Uses the <a href="https://www.pyret.org/">Pyret</a> programming
language &amp; <a href="http://papl.cs.brown.edu/2014/">PAPL</a> book to
understand the fundamentals of programming languages. - <a
href="https://www.cs.swarthmore.edu/~jpolitz/cs91/s15/s_labs.html">Labs</a>
- <a href="http://www.seas.upenn.edu/~cis194/">CIS 194</a>
<strong>Introduction to Haskell</strong> <em>Penn Engineering</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- 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. - <a
href="http://www.seas.upenn.edu/~cis194/spring13/index.html">Previous</a>
semester also available, with more exercises - <a
href="http://cis198-2016s.github.io/">CIS 198</a> <strong>Rust
Programming</strong> <em>UPenn</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- This course covers what makes Rust so unique and applies it to
practical systems programming problems. Topics covered include traits
and generics; memory safety (move semantics, borrowing, and lifetimes);
Rusts rich macro system; closures; and concurrency. - <a
href="https://github.com/cis198-2016s/homework">Assignments</a> - <a
href="http://www.cs.umd.edu/class/spring2015/cmsc430/">CMSC 430</a>
<strong>Introduction to Compilers</strong> <em>Univ of Maryland</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- The goal of CMSC 430 is to arm students with the ability to design,
implement, and extend a programming language. Throughout the course,
students will design and implement several related languages, and will
explore parsing, syntax querying, dataflow analysis, compilation to
bytecode, type systems, and language interoperation. - <a
href="http://www.cs.umd.edu/class/spring2015/cmsc430/Schedule.html">Lecture
Notes</a> - <a
href="http://www.cs.umd.edu/class/spring2015/cmsc430/Projects.html">Assignments</a>
- <a href="https://pradella.faculty.polimi.it/PL.html">Corsopl</a>
<strong>Principles of Programming Languages</strong> <em>Politecnico di
Milano</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Lecture Notes
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- Readings - This course gives an overview of Scheme, Haskell and Erlang
while analyzing the languages similarities and differences. As a
result, many important/prevalent concepts and how they manifest
differently in different programming languages are explained. Among
these are (purely) functional programming, object orientation, type
inference and evaluation order. - Thorough introduction to functional
programming with no preknowledge in any functional language required. -
<a
href="http://www.cs.princeton.edu/~dpw/courses/cos326-12/info.php">COS
326</a> <strong>Functional Programming</strong> <em>Princeton
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Covers functional programming concepts like closures, tail-call
recursion &amp; parallelism using the OCaml programming language - <a
href="http://www.cs.princeton.edu/~dpw/courses/cos326-12/lectures.php">Lectures</a>
- <a
href="http://www.cs.princeton.edu/~dpw/courses/cos326-12/assignments.php">Assignments</a>
- <a href="https://web.stanford.edu/class/cs143/">CS 143</a>
<strong>Compiler construction</strong> <em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- CS143 is a Stanfords course in the practical and theoretical aspects
of compiler construction. - <a
href="https://web.stanford.edu/class/cs143/">Home</a> - <a
href="https://web.stanford.edu/class/cs143/syllabus.html">Syllabus</a> -
<a href="https://web.stanford.edu/class/cs143/">Lectures</a> - <a
href="https://web.stanford.edu/class/cs143/">Assignments</a> - <a
href="http://www.keithschwarz.com/cs143/WWW/sum2011/">CS143 - 2011</a> -
<a href="https://sites.google.com/a/bodik.org/cs164/home">CS 164</a>
<strong>Hack your language!</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Introduction to programming languages by designing and implementing
domain-specific languages. - <a
href="https://archive.org/details/ucberkeley-webcast-PL3A16CFC42CA6EF4F">Lecture
Videos</a> - <a href="https://bitbucket.org/cs164_overlord/">Code for
Assignments</a> - <a href="http://cs.brown.edu/courses/cs173/2014/">CS
173</a> <strong>Programming Languages</strong> <em>Brown University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- Course by Prof. Krishnamurthi (author of <a
href="http://htdp.org/2003-09-26/Book/">HtDP</a>) and numerous other <a
href="http://cs.brown.edu/courses/cs173/2012/book/">awesome</a> <a
href="http://papl.cs.brown.edu/2014/index.html">books</a> on programming
languages. Uses a custom designed <a
href="http://www.pyret.org/">Pyret</a> programming language to teach the
concepts. There was an <a
href="http://cs.brown.edu/courses/cs173/2012/OnLine/">online class</a>
hosted in 2012, which includes all lecture videos for you to enjoy. - <a
href="http://cs.brown.edu/courses/cs173/2012/Videos/">Videos</a> - <a
href="http://cs.brown.edu/courses/cs173/2014/assignments.html">Assignments</a>
- <a
href="https://www.classes.cs.uchicago.edu/archive/2016/winter/22300-1/">CS
223</a> <strong>Purely Functional Data Structures In Elm</strong>
<em>University of Chicago</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- This course teaches functional reactive programming and purely
functional data structures based on Chris Okazakis book and using the
Elm programming language. - <a
href="https://www.classes.cs.uchicago.edu/archive/2015/winter/22300-1/Schedule.html">Lectures</a>
- <a
href="https://www.classes.cs.uchicago.edu/archive/2015/winter/22300-1/Schedule.html">Assignments</a>
- <a href="http://www.scs.stanford.edu/14sp-cs240h/">CS 240h</a>
<strong>Functional Systems in Haskell</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Building software systems in Haskell - <a
href="http://www.scs.stanford.edu/14sp-cs240h/slides/">Lecture
Slides</a> - 3 Assignments: <a
href="http://www.scs.stanford.edu/14sp-cs240h/labs/lab1.html">Lab1</a>,
<a
href="http://www.scs.stanford.edu/14sp-cs240h/labs/lab2.html">Lab2</a>,
<a
href="http://www.scs.stanford.edu/14sp-cs240h/labs/lab3.html">Lab3</a> -
<a href="https://courses.engr.illinois.edu/cs421/fa2014/">CS 421</a>
<strong>Programming Languages and Compilers</strong> <em>Univ of
Illinois, Urbana-Champaign</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
Course that uses OCaml to teach functional programming and programming
language design. - <a
href="https://courses.engr.illinois.edu/cs421/fa2014/lectures/index.html">Lectures</a>
- <a
href="http://recordings.engineering.illinois.edu/ess/portal/section/631edaeb-2a33-4537-b7c8-0c1cba783a4f">Videos</a>
- <a
href="https://courses.engr.illinois.edu/cs421/fa2014/mps/index.html">Assignments</a>
- <a
href="https://courses.engr.illinois.edu/cs421/fa2014/exams/index.html">Exams</a>
- <a
href="http://www.cs.cornell.edu/Courses/cs3110/2014fa/course_info.php">CS
3110</a> <strong>Data Structures and Functional Programming</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Another course that uses OCaml to teach alternative programming
paradigms, especially functional and concurrent programming. - <a
href="http://www.cs.cornell.edu/Courses/cs3110/2014fa/lecture_notes.php">Lecture
Slides</a> - <a
href="http://www.cs.cornell.edu/Courses/cs3110/2014fa/">Assignments</a>
- <a href="http://www.cs.cornell.edu/courses/CS4120/2013fa/">CS 4120</a>
<strong>Introduction to Compilers</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- An introduction to the specification and implementation of modern
compilers. Topics covered include lexical scanning, parsing, type
checking, code generation and translation, an introduction to
optimization, and compile-time and run-time support for modern
programming languages. As part of the course, students build a working
compiler for an object-oriented language. - <a
href="http://www.cs.cornell.edu/courses/CS4120/2013fa/overview.html">Syllabus</a>
- <a
href="http://www.cs.cornell.edu/courses/CS4120/2013fa/schedule.html">Lectures</a>
- <a
href="http://www.cs.cornell.edu/courses/CS4120/2013fa/homework.html">Assignments</a>
- <a href="https://pl.barzilay.org/">CS 4400</a> <strong>Programming
Languages</strong> <em>Northeastern University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- This is a course on the study, design, and implementation of
programming languages. - The course works at two simultaneous levels:
first, we will use a programming language that can demonstrate a wide
variety of programming paradigms. Second, using this language, we will
learn about the mechanics behind programming languages by implementing
our own language(s). The two level approach usually means that we will
often see how to use a certain feature, and continue by implementing it.
- <a href="https://pl.barzilay.org/syllabus.html">Syllabus</a> - <a
href="https://pl.barzilay.org/resources.html">Lecture
Notes/Resources</a> - <a
href="http://www.cs.virginia.edu/~weimer/4610/">CS 4610</a>
<strong>Programming Languages and Compilers</strong> <em>University of
Virginia</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Course that uses OCaml to teach functional programming and programming
language design. Each assignment is a part of an interpreter and
compiler for an object-oriented language similar to Java, and you are
required to use a different language for each assignment (i.e., choose 4
from Python, JS, OCaml, Haskell, Ruby). - <a
href="http://www.cs.virginia.edu/~weimer/4610/lectures.html">Lecture
Notes</a> - <a
href="http://www.cs.virginia.edu/~weimer/4610/pa.html">Assignments</a> -
<a href="http://www.cs.cornell.edu/courses/CS5114/2013sp/index.php">CS
5114</a> <strong>Network Programming Languages</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- This course provides an introduction to the languages used to program
computer networks. It will examine recent proposals based on logic,
functional, and distributed languages, as well as tools for establishing
correctness using automatic solvers, model checkers, and proof
assistants. - <a
href="http://www.cs.cornell.edu/courses/CS5114/2013sp/syllabus.php">Syllabus</a>
- <a
href="http://www.cs.cornell.edu/courses/CS5114/2013sp/syllabus.php">Lectures</a>
- <a href="http://www.cs.cornell.edu/courses/CS5142/2013fa/">CS 5142</a>
<strong>Scripting Languages</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- Perl, PHP, JavaScript, VisualBasic they are often-requested skills
for employment, but most of us do not have the time to find out what
they are all about. In this course, you learn how to use scripting
languages for rapid prototyping, web programming, data processing, and
application extension. Besides covering traditional programming
languages concepts as they apply to scripting (e.g., dynamic typing and
scoping), this course looks at new concepts rarely found in traditional
languages (e.g., string interpolation, hashes, and polylingual code).
Through a series of small projects, you use different languages to
achieve programming tasks that highlight the strengths and weaknesses of
scripting. As a side effect, you practice teaching yourself new
languages. - <a
href="http://www.cs.cornell.edu/courses/CS5142/2013fa/">Syllabus</a> -
<a
href="http://www.cs.cornell.edu/courses/CS5142/2013fa/#schedule">Lectures</a>
- <a
href="http://www.cs.cornell.edu/courses/CS5142/2013fa/#schedule">Assignments</a>
- <a href="http://matt.might.net/teaching/compilers/spring-2015/">CS
5470</a> <strong>Compilers</strong> <em>University of Utah</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- If youre a fan of Prof Matts writing on his <a
href="http://matt.might.net/articles/">fantastic blog</a> you ought to
give this a shot. The course covers the design and implementation of
compilers, and it explores related topics such as interpreters, virtual
machines and runtime systems. Aside from the Profs witty take on <a
href="http://matt.might.net/teaching/compilers/spring-2015/#collaboration">cheating</a>
the page has tons of interesting links on programming languages, parsing
and compilers. - <a
href="https://www.dropbox.com/sh/zanwtoflw4pcfu8/5pdT6axS3y">Lecture
Notes</a> - <a
href="http://matt.might.net/teaching/compilers/spring-2015/#projects">Projects</a>
- <a href="http://www.cs.cornell.edu/courses/CS6118/2012fa/">CS 6118</a>
<strong>Types and Semantics</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- Types and Semantics is about designing and understand programming
languages, whether they be domain specific or general purpose. The goal
of this class is to provide a variety of tools for designing custom
(programming) languages for whatever task is at hand. Part of that will
be a variety of insights on how languages work along with experiences
from working with academics and industry on creating new languages such
as Ceylon and Kotlin. The class focuses on types and semantics and the
interplay between them. This means category theory and constructive type
theory (e.g. Coq and richer variations) are ancillary topics of the
class. The class also covers unconventional semantic domains such as
classical linear type theory in order to both break students from
conventional thinking and to provide powerful targets capable of
formalizing thinks like networking protocols, resource-sensitive
computation, and concurrency constructs. The class project is to design
and formalize a (programming) language for a purpose of the students
choosing, and assignments are designed to ensure students have had a
chance to practice applying the techniques learned in class before
culminating these skills in the class project. - <a
href="http://www.cs.cornell.edu/courses/CS6118/2012fa/">Syllabus</a> -
<a href="http://www.cs.cornell.edu/courses/CS6118/2012fa/">Lectures</a>
- <a href="http://pgbovine.net/cpython-internals.htm">CSC 253</a>
<strong>CPython internals: A ten-hour codewalk through the Python
interpreter source code</strong> <em>University of Rochester</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- Nine lectures walking through the internals of CPython, the canonical
Python interpreter implemented in C. They were from the <em>Dynamic
Languages and Software Development</em> course taught in Fall 2014 at
the University of Rochester. - <a
href="http://courses.cs.washington.edu/courses/cse341/16sp/">CSE 341</a>
<strong>Programming Languages</strong> <em>University of Washington</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Covers non-imperative paradigms and languages such as Ruby, Racket,
and ML and the fundamentals of programming languages. - <a
href="https://courses.cs.washington.edu/courses/cse341/16sp/#lectures">Lectures
and Videos</a> - <a
href="https://courses.cs.washington.edu/courses/cse341/16sp/#homeworks">Assignments
and Tests</a> - <a
href="http://courses.cs.washington.edu/courses/csep501/09au/lectures/video.html">CSE
P 501</a> <strong>Compiler Construction</strong> <em>University of
Washington</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- Teaches understanding of how a modern compiler is structured and the
major algorithms that are used to translate code from high-level to
machine language. The best way to do this is to actually build a working
compiler, so there will be a significant project to implement one that
translates programs written in a core subset of Java into executable x86
assembly language. The compilers themselves will use scanner and parser
generator tools and the default implementation language is Java. - <a
href="http://courses.cs.washington.edu/courses/csep501/09au/lectures/video.html">Lectures</a>
- <a
href="http://courses.cs.washington.edu/courses/csep501/09au/homework/index.html">Assignments,
Tests, and Solutions</a> - <a
href="http://cs.wheaton.edu/~tvandrun/dmfp/">DMFP</a> <strong>Discrete
Mathematics and Functional Programming</strong> <em>Wheaton College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- A course that teaches discrete maths concepts with functional
programming - <a href="http://cs.wheaton.edu/~tvandrun/dmfp/">Lecture
Videos</a> - <a
href="http://cs.wheaton.edu/~tvandrun/dmfp/source.html">Assignments</a>
- <a href="http://www.itu.dk/people/sestoft/itu/PCPP/E2015/">PCPP</a>
<strong>Practical Concurrent and Parallel Programming</strong> <em>IT
University of Copenhagen</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- In this MSc course you learn how to write correct and efficient
concurrent and parallel software, primarily using Java, on standard
shared-memory multicore hardware. - The course covers basic mechanisms
such as threads, locks and shared memory as well as more advanced
mechanisms such as parallel streams for bulk data, transactional memory,
message passing, and lock-free data structures with compare-and-swap. -
It covers concepts such as atomicity, safety, liveness and deadlock. -
It covers how to measure and understand performance and scalability of
parallel programs. - It covers tools and methods to find bugs in
concurrent programs. - <a
href="https://groups.csail.mit.edu/mac/users/gjs/6.945/index.html">6.945</a>
<strong>Adventures in Advanced Symbolic Programming</strong>
<em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- Taught by Gerald Sussman of SICP fame, this class deals with concepts
and techniques for the design an implementation of large software
systems that can be adapted to uses not anticipated by the designer.
Applications include compilers, computer-algebra systems, deductive
systems, and some artificial intelligence applications. - <a
href="https://groups.csail.mit.edu/mac/users/gjs/6.945/assignments.html">Assignments</a>:
Extensive programming assignments, using MIT/GNU Scheme. Students should
have significant programming experience in Scheme, Common Lisp, Haskell,
CAML or other “functional” language. - <a
href="https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/">Readings</a>
- <a href="http://www.eli.sdsu.edu/courses/fall15/cs696/index.html">CS
696</a> <strong>Functional Design and Programming</strong> <em>San Diego
State University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- Covers functional programming basis using Clojure. - Topics include
testing, functional programming, immutable collections and concurrency.
- Also includes assignments covering Clojurescript, <a
href="Reagent%20Github">Reagent</a> etc. - <a
href="https://www.cl.cam.ac.uk/teaching/1516/L28/">L28</a>
<strong>Advanced Functional Programming</strong> <em>University of
Cambridge</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- This module aims to teach students how to use the features of modern
typed functional programming languages (e.g. OCaml, Haskell) to design
and implement libraries and DSLs. It aims to demonstrate how such
techniques can improve both correctness and efficiency. Students wishing
to take the module should have some experience of a typed functional
programming language and an understanding of type inference. - This
particular session was taught by a prominent OCaml programmer, open
Source contributor &amp; author of real world OCaml - Dr Anil
Madhavapeddy.</td>
</tr>
</tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<ul>
<li><a href="http://datastructur.es/sp16/">CS 61B</a> <strong>Data
Structures</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>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.</li>
<li><a href="http://datastructur.es/sp16/">Full Lecture Materials</a>
Lecture of Spring 2016. This website contains full matrials including
video links, labs, homeworks, projects. Very good for self-learner. Also
a good start for Java. And it includes some other useful resources for
Java Documentation, Data Structure Resources, Git/GitHub and Java
Development Resources. <a
href="http://datastructur.es/sp16/resources.html">Resources</a></li>
<li><a
href="http://www.cs.berkeley.edu/~jrs/61b/lab/index.html">Labs</a> The
link to labs and projects is included in the website.</li>
<li><a
href="https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iC2Khb1B5NnbE7SHPQ1-W17">Lecture
Videos</a></li>
</ul></li>
<li><a href="http://web.stanford.edu/class/cs97si/">CS 97SI</a>
<strong>Introduction to Competitive Programming</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Fantastic repository of theory and practice problems across various
topics for students who are interested to participate in ACM-ICPC.</li>
<li><a href="https://github.com/jaehyunp/stanfordacm">Lectures and
Assignments</a></li>
</ul></li>
<li><a
href="http://people.seas.harvard.edu/~minilek/cs224/fall14/index.html">CS
224</a> <strong>Advanced Algorithms</strong> <em>Harvard University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS 224 is an advanced course in algorithm design, and topics we will
cover include the word RAM model, data structures, amortization, online
algorithms, linear programming, semidefinite programming, approximation
algorithms, hashing, randomized algorithms, fast exponential time
algorithms, graph algorithms, and computational geometry.</li>
<li><a
href="http://people.seas.harvard.edu/~minilek/cs224/fall14/lec.html">Lecture
Videos</a> (<a
href="https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf">Youtube</a>)</li>
<li><a
href="http://people.seas.harvard.edu/~minilek/cs224/fall14/hmwk.html">Assignments</a></li>
</ul></li>
<li><a href="http://theory.stanford.edu/~tim/w16/w16.html">CS 261</a>
<strong>A Second Course in Algorithms</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Algorithms for network optimization: max-flow, min-cost flow,
matching, assignment, and min-cut problems. Introduction to linear
programming. Use of LP duality for design and analysis of algorithms.
Approximation algorithms for NP-complete problems such as Steiner Trees,
Traveling Salesman, and scheduling problems. Randomized algorithms.
Introduction to online algorithms.</li>
<li><a href="http://theory.stanford.edu/~tim/w16/w16.html">Lecture
Notes, Videos &amp; Assignments</a> (<a
href="https://www.youtube.com/playlist?list=PLEGCF-WLh2RJh2yDxlJJjnKswWdoO8gAc">Youtube</a>)</li>
</ul></li>
<li><a href="http://jeffe.cs.illinois.edu/teaching/algorithms/">CS
473/573</a> <strong>Fundamental Algorithms</strong> <em>Univ of
Illinois, Urbana-Champaign</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Algorithms class covering recursion, randomization, amortization,
graph algorithms, network flows and hardness. The lecture notes by
Prof. Erikson are comprehensive enough to be a book by themselves.
Highly recommended!</li>
<li><a
href="http://web.engr.illinois.edu/~jeffe/teaching/algorithms/all-algorithms.pdf">Lecture
Notes</a></li>
<li><a
href="http://web.engr.illinois.edu/~jeffe/teaching/algorithms/all-hwex.pdf">Labs
and Exams</a></li>
</ul></li>
<li><a href="https://github.com/aaronbloomfield/pdr">CS 2150</a>
<strong>Program &amp; Data Representation</strong> <em>University of
Virginia</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This data structures course introduces C++, linked-lists, stacks,
queues, trees, numerical representation, hash tables, priority queues,
heaps, huffman coding, graphs, and x86 assembly.</li>
<li><a
href="http://aaronbloomfield.github.io/pdr/slides/">Lectures</a></li>
<li><a
href="http://aaronbloomfield.github.io/pdr/labs/">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS4820/2015sp/">CS
4820</a> <strong>Introduction to Analysis of Algorithms</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course develops techniques used in the design and analysis of
algorithms, with an emphasis on problems arising in computing
applications. Example applications are drawn from systems and networks,
artificial intelligence, computer vision, data mining, and computational
biology. This course covers four major algorithm design techniques
(greedy algorithms, divide and conquer, dynamic programming, and network
flow), computability theory focusing on undecidability, computational
complexity focusing on NP-completeness, and algorithmic techniques for
intractable problems, including identification of structured special
cases, approximation algorithms, and local search heuristics.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4820/2015sp/lectures/">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4820/2015sp/syllabus/">Syllabus</a></li>
</ul></li>
<li><a href="http://www-scf.usc.edu/~csci104/20142/lectures/">CSCI
104</a> <strong>Data Structures and Object Oriented Design</strong>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<em>University of Southern California (USC)</em>
<ul>
<li><a
href="http://www-scf.usc.edu/~csci104/20142/lectures">Lectures</a></li>
<li><a href="http://www-scf.usc.edu/~csci104/20142/labs">Labs</a></li>
<li><a
href="http://www-scf.usc.edu/~csci104/20142/assignments/">Assignments</a></li>
<li><a
href="http://www-scf.usc.edu/~csci104/20142/resources.html">Additional
Resources</a></li>
</ul></li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/courses/csci135.php">CSCI
135</a> <strong>Software Design and Analysis I</strong>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<em>CUNY Hunter College</em>
<ul>
<li>It is currently an intensive introduction to program development and
problem solving. Its emphasis is on the process of designing,
implementing, and evaluating small-scale programs. It is not supposed to
be a C++ programming course, although much of the course is spent on the
details of C++. C++ is an extremely large and complex programming
language with many features that interact in unexpected ways. One does
not need to know even half of the language to use it well.</li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci135/csci135_36_fall12.php">Lectures
and Assignments</a></li>
</ul></li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/courses/csci235.php">CSCI
235</a> <strong>Software Design and Analysis II</strong> <em>CUNY Hunter
College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Introduces algorithms for a few common problems such as sorting.
Practically speaking, it furthers the students programming skills with
topics such as recursion, pointers, and exception handling, and provides
a chance to improve software engineering skills and to give the students
practical experience for more productive programming.</li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci235/csci235_f14.php">Lectures
and Assignments</a></li>
</ul></li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/courses/csci335.php">CSCI
335</a> <strong>Software Design and Analysis III</strong>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<em>CUNY Hunter College</em>
<ul>
<li>This includes the introduction of hashes, heaps, various forms of
trees, and graphs. It also revisits recursion and the sorting problem
from a higher perspective than was presented in the prequels. On top of
this, it is intended to introduce methods of algorithmic analysis.</li>
<li><a
href="http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci335/csci335_s14.php">Lectures
and Assignments</a></li>
</ul></li>
<li><a href="http://courses.cs.washington.edu/courses/cse331/15sp/">CSE
331</a> <strong>Software Design and Implementation</strong>
<em>University of Washington</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Explores concepts and techniques for design and construction of
reliable and maintainable software systems in modern high-level
languages; program structure and design; program-correctness approaches,
including testing.</li>
<li><a
href="http://courses.cs.washington.edu/courses/cse331/15sp/#all">Lectures,
Assignments, and Exams</a></li>
</ul></li>
<li><a href="http://www3.cs.stonybrook.edu/~skiena/373/">CSE 373</a>
<strong>Analysis of Algorithms</strong> <em>Stony Brook University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Prof Steven Skienas no stranger to any student when it comes to
algorithms. His seminal <a href="http://www.algorist.com/">book</a> has
been touted by many to be best for <a
href="http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html">getting
that job in Google</a>. In addition, hes also well-known for tutoring
students in competitive <a
href="http://www.programming-challenges.com/pg.php?page=index">programming
competitions</a>. If youre looking to brush up your knowledge on
Algorithms, you cant go wrong with this course.</li>
<li><a href="http://www.cs.sunysb.edu/~algorith/video-lectures/">Lecture
Videos</a></li>
</ul></li>
<li><a href="http://web.cs.ucdavis.edu/~gusfield/cs122f10/">ECS 122A</a>
<strong>Algorithm Design and Analysis</strong> <em>UC Davis</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Taught by <a href="http://web.cs.ucdavis.edu/~gusfield/">Dan
Gusfield</a> in 2010, this course is an undergraduate introduction to
algorithm design and analysis. It features traditional topics, such as
Big Oh notation, as well as an importance on implementing specific
algorithms. Also featured are sorting (in linear time), graph
algorithms, depth-first search, string matching, dynamic programming,
NP-completeness, approximation, and randomization.</li>
<li><a
href="http://web.cs.ucdavis.edu/~gusfield/cs122f10/syll122.pdf">Syllabus</a></li>
<li><a
href="http://web.cs.ucdavis.edu/~gusfield/cs122f10/videolist.html">Lecture
Videos</a></li>
<li><a
href="http://web.cs.ucdavis.edu/~gusfield/cs122f10/">Assignments</a></li>
</ul></li>
<li><a href="http://web.cs.ucdavis.edu/~gusfield/cs222w11/">ECS 222A</a>
<strong>Graduate Level Algorithm Design and Analysis</strong> <em>UC
Davis</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This is the graduate level complement to the ECS 122A undergraduate
algorithms course by <a href="http://web.cs.ucdavis.edu/~gusfield/">Dan
Gusfield</a> in 2011. It assumes an undergrad course has already been
taken in algorithms, and, while going over some undergraduate algorithms
topics, focuses more on increasingly complex and advanced
algorithms.</li>
<li><a
href="http://web.cs.ucdavis.edu/~gusfield/cs222f07/videolist.html">Lecture
Videos</a></li>
<li><a
href="http://web.cs.ucdavis.edu/~gusfield/cs222w11/syll11.pdf">Syllabus</a></li>
<li><a
href="http://web.cs.ucdavis.edu/~gusfield/cs222w11/">Assignments</a></li>
</ul></li>
<li><a
href="https://courses.csail.mit.edu/iap/interview/index.php">6.INT</a>
<strong>Hacking a Google Interview</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course taught in the MIT Independent Activities Period in 2009
goes over common solution to common interview questions for software
engineer interviews at highly selective companies like Apple, Google,
and Facebook. They cover time complexity, hash tables, binary search
trees, and other common algorithm topics you should have already covered
in a different course, but goes more in depth on things you wouldnt
otherwise learn in class- like bitwise logic and problem solving
tricks.</li>
<li><a
href="https://courses.csail.mit.edu/iap/interview/materials.php">Handouts</a></li>
<li><a
href="https://courses.csail.mit.edu/iap/interview/calendar.php">Topics
Covered</a></li>
</ul></li>
<li><a
href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/index.htm">6.006</a>
<strong>Introduction to Algorithms</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course provides an introduction to mathematical modeling of
computational problems. It covers the common algorithms, algorithmic
paradigms, and data structures used to solve these problems. The course
emphasizes the relationship between algorithms and programming, and
introduces basic performance measures and analysis techniques for these
problems.</li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/">Lecture
Videos</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/assignments/">Assignments</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/readings/">Readings</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/download-course-materials/">Resources</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/exams/">Old
Exams</a></li>
</ul></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/index.htm">6.046J/18.410J</a>
<strong>Design and Analysis of Algorithms</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This is an intermediate algorithms course with an emphasis on
teaching techniques for the design and analysis of efficient algorithms,
emphasizing methods of application. Topics include divide-and-conquer,
randomization, dynamic programming, greedy algorithms, incremental
improvement, complexity, and cryptography. This course assumes that
students know how to analyze simple algorithms and data structures from
having taken <a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/">6.006</a>.
It introduces students to the design of computer algorithms, as well as
analysis of sophisticated algorithms.</li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-videos/">Lecture
Videos</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-notes/">Lecture
Notes</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/assignments/">Assignments</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/download-course-materials/">Resources</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/exams/">Old
Exams</a></li>
</ul></li>
<li><a
href="https://courses.csail.mit.edu/6.851/spring21/index.html">6.851</a>
<strong>Advanced Data Structures</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This is an advanced DS course, you must be done with the <a
href="https://courses.csail.mit.edu/6.854/current/">Advanced
Algorithms</a> course before attempting this one.</li>
<li><a
href="https://courses.csail.mit.edu/6.851/spring21/lectures/">Lectures</a>
Contains videos from sp2012 version, but there isnt much
difference.</li>
<li><a
href="https://courses.csail.mit.edu/6.851/spring21/psets/">Assignments</a>
contains the calendar as well.</li>
</ul></li>
<li><a
href="https://courses.csail.mit.edu/6.854/current/">6.854/18.415J</a>
<strong>Advanced Algorithms</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Advanced course in algorithms by Dr. David Karger covering topics
such as amortization, randomization, fingerprinting, word-level
parallelism, bit scaling, dynamic programming, network flow, linear
programming, fixed-parameter algorithms, and approximation
algorithms.</li>
<li><strong>Register</strong> on <a
href="http://nb.mit.edu/subscribe?key=D3a8CYpoO2VcR1ZcfaxmR5KbyjCGXd3INNXvL3mxEakYJ7qGJw">NB</a>
to access the <a href="http://nb.mit.edu/">problem set and
lectures</a>.</li>
</ul></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/index.htm">6.854J/18.415J</a>
<strong>Advanced Algorithms</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course is a first-year graduate course in algorithms. Emphasis
is placed on fundamental algorithms and advanced methods of algorithmic
design, analysis, and implementation. Techniques to be covered include
amortization, randomization, fingerprinting, word-level parallelism, bit
scaling, dynamic programming, network flow, linear programming,
fixed-parameter algorithms, and approximation algorithms. Domains
include string algorithms, network optimization, parallel algorithms,
computational geometry, online algorithms, external memory, cache, and
streaming algorithms, and data structures. The need for efficient
algorithms arises in nearly every area of computer science. But the type
of problem to be solved, the notion of what algorithms are “efficient,
and even the model of computation can vary widely from area to area. In
this second class in algorithms, we will survey many of the techniques
that apply broadly in the design of efficient algorithms, and study
their application in a wide range of application domains and
computational models. The goal is for the class to be broad rather than
deep. Our plan is to touch upon the following areas. This is a tentative
list of topics that might be covered in the class; we will select
material adaptively based on the background, interests, and rate of
progress of the students.</li>
<li><a
href="https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c">Lecture
Videos - Spring 2016</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/lecture-notes/">Lecture
Notes</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/assignments/">Assignments</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/readings/">Readings</a></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2005/download-course-materials/">Resources</a></li>
</ul></li>
<li><a
href="http://www.cs.cmu.edu/afs/cs/academic/class/15451-f10/www/">15-451/651</a>
<strong>Algorithms</strong> <em>Carnegie Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>The required algorithms class that go in depth into all basic
algorithms and the proofs behind them. This is one of the heavier
algorithms curriculums on this page. Taught by Avrim Blum and <a
href="http://en.wikipedia.org/wiki/Manuel_Blum">Manuel Blum</a> who has
a Turing Award due to his contributions to algorithms. Course link
includes a very comprehensive set of reference notes by Avrim Blum.</li>
</ul></li>
<li><a href="http://www.cs.virginia.edu/~shelat/16s-4102/">16s-4102</a>
<strong>Algorithms</strong> <em>University of Virginia</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li><a href="http://www.cs.virginia.edu/~shelat/16s-4102/">Lecture
Videos &amp; Homeworks</a> (<a
href="https://www.youtube.com/channel/UCxXYk53cSZof2bR_Ax0uJYQ/videos">Youtube</a>)</li>
</ul></li>
</ul>
<hr />
<h3 id="cs-theory">CS Theory</h3>
<ul>
<li><a
href="http://www.seas.upenn.edu/~cis500/cis500-f14/index.html">CIS
500</a> <strong>Software Foundations</strong> <em>University of
Pennsylvania</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>An introduction to formal verification of software using the Coq
proof assistant. Topics include basic concepts of logic,
computer-assisted theorem proving, functional programming, operational
semantics, Hoare logic, and static type systems.</li>
<li><a
href="http://www.seas.upenn.edu/~cis500/cis500-f14/index.html#schedule">Lectures
and Assignments</a></li>
<li><a
href="http://www.cis.upenn.edu/~bcpierce/sf/current/index.html">Textbook</a></li>
</ul></li>
<li><a href="http://web.stanford.edu/class/cs103/">CS 103</a>
<strong>Mathematical Foundations of Computing</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS103 is a first course in discrete math, computability theory, and
complexity theory. In this course, well probe the limits of computer
power, explore why some problems are harder to solve than others, and
see how to reason with mathematical certainty.</li>
<li>Links to all lectures notes and assignments are directly on the
course page</li>
</ul></li>
<li><a
href="https://courses.engr.illinois.edu/cs173/fa2014/A-lecture/index.html">CS
173</a> <strong>Discrete Structures</strong> <em>Univ of Illinois
Urbana-Champaign</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course is an introduction to the theoretical side of computer
science. In it, you will learn how to construct proofs, read and write
literate formal mathematics, get a quick introduction to key theory
topics and become familiar with a range of standard mathematics concepts
commonly used in computer science.</li>
<li><a
href="http://web.engr.illinois.edu/~mfleck/building-blocks/">Textbook</a>
Written by the professor. Includes Instructors Guide.</li>
<li><a
href="https://courses.engr.illinois.edu/cs173/fa2014/A-lecture/Homework/index.html">Assignments</a></li>
<li><a
href="https://courses.engr.illinois.edu/cs173/fa2014/A-lecture/Exams/index.html">Exams</a></li>
</ul></li>
<li><a
href="http://www.cs.berkeley.edu/~sanjamg/classes/cs276-fall14/">CS
276</a> <strong>Foundations of Cryptography</strong> <em>UC
Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course discusses the complexity-theory foundations of modern
cryptography, and looks at recent results in the field such as Fully
Homomorphic Encryption, Indistinguishability Obfuscation, MPC and so
on.</li>
</ul></li>
<li><a href="http://www.cs.berkeley.edu/~luca/cs278-08/">CS 278</a>
<strong>Complexity Theory</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>A graduate level course on complexity theory that introduces P vs
NP, the power of randomness, average-case complexity, hardness of
approximation, and so on.</li>
</ul></li>
<li><a href="https://courses.engr.illinois.edu/cs498374/fa2014/">CS
374</a> <strong>Algorithms &amp; Models of Computation (Fall
2014)</strong> <em>University of Illinois Urbana-Champaign</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS 498 section 374 (unofficially “CS 374”) covers fundamental tools
and techniques from theoretical computer science, including design and
analysis of algorithms, formal languages and automata, computability,
and complexity. Specific topics include regular and context-free
languages, finite-state automata, recursive algorithms (including divide
and conquer, backtracking, dynamic programming, and greedy algorithms),
fundamental graph algorithms (including depth- and breadth-first search,
topological sorting, minimum spanning trees, and shortest paths),
undecidability, and NP-completeness. The course also has a strong focus
on clear technical communication.</li>
<li><a
href="https://courses.engr.illinois.edu/cs498374/fa2014/work.html">Assignments/Exams</a></li>
<li><a
href="https://courses.engr.illinois.edu/cs498374/fa2014/lectures.html">Lecture
Notes/Labs</a></li>
<li><a
href="http://recordings.engineering.illinois.edu/ess/portal/section/115f3def-7371-4e98-b72f-6efe53771b2a">Lecture
videos</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS3110/2014fa/">CS
3110</a> <strong>Data Structures and Functional Programming</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>CS 3110 (formerly CS 312) is the third programming course in the
Computer Science curriculum, following CS 1110/1112 and CS 2110. The
goal of the course is to help students become excellent programmers and
software designers who can design and implement software that is
elegant, efficient, and correct, and whose code can be maintained and
reused.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3110/2014fa/course_info.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3110/2014fa/lecture_notes.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3110/2014fa/index.php">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/~bindel/class/cs3220-s12/">CS
3220</a> <strong>Introduction to Scientific Computing</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>In this one-semester survey course, we introduce numerical methods
for solving linear and nonlinear equations, interpolating data,
computing integrals, and solving differential equations, and we describe
how to use these tools wisely (we hope!) when solving scientific
problems.</li>
<li><a
href="http://www.cs.cornell.edu/~bindel/class/cs3220-s12/syllabus.html">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/~bindel/class/cs3220-s12/lectures.html">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/~bindel/class/cs3220-s12/assignments.html">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS4300/2013fa/">CS
4300</a> <strong>Information Retrieval</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Studies the methods used to search for and discover information in
large-scale systems. The emphasis is on information retrieval applied to
textual materials, but there is some discussion of other formats.The
course includes techniques for searching, browsing, and filtering
information and the use of classification systems and thesauruses. The
techniques are illustrated with examples from web searching and digital
libraries.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4300/2013fa/lectures/introduction.pdf">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4300/2013fa/lectures.htm">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4300/2013fa/lectures.htm">Assignments</a></li>
</ul></li>
<li><a href="https://www.dsteurer.org/toc13/">CS 4810</a>
<strong>Introduction to Theory of Computing</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This undergraduate course provides a broad introduction to the
mathematical foundations of computer science. We will examine basic
computational models, especially Turing machines. The goal is to
understand what problems can or cannot be solved in these models.</li>
<li><a href="https://www.dsteurer.org/toc13/syllabus/">Syllabus</a></li>
<li><a href="https://www.dsteurer.org/toc13/lectures/">Lectures</a></li>
<li><a
href="https://www.dsteurer.org/toc13/homework/">Assignments</a></li>
</ul></li>
<li><a href="https://complexity16.dsteurer.org/">CS 6810</a>
<strong>Theory of Computing</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This graduate course gives a broad introduction to complexity
theory, including classical results and recent developments. Complexity
theory aims to understand the power of efficient computation (when
computational resources like time and space are limited). Many
compelling conceptual questions arise in this context. Most of these
questions are (surprisingly?) difficult and far from being resolved.
Nevertheless, a lot of progress has been made toward understanding them
(and also why they are difficult). We will learn about these advances in
this course. A theme will be combinatorial constructions with
random-like properties, e.g., expander graphs and error-correcting
codes. Some examples:
<ul>
<li>Is finding a solution inherently more difficult than verifying
it?</li>
<li>Do more computational resources mean more computing power?</li>
<li>Is it easier to find approximate solutions than exact ones?</li>
<li>Are randomized algorithms more powerful than deterministic
ones?</li>
<li>Is it easier to solve problems in the average case than in the worst
case?</li>
<li>Are quantum computers more powerful than classical ones?</li>
</ul></li>
<li><a
href="https://complexity16.dsteurer.org/syllabus/">Syllabus</a></li>
<li><a
href="https://complexity16.dsteurer.org/lectures/">Lectures</a></li>
<li><a
href="https://complexity16.dsteurer.org/homework/">Assignments</a></li>
</ul></li>
<li><a href="http://www.csce.uark.edu/~sgauch/3193/S11/index.html">CSCE
3193</a> <strong>Programming Paradigms</strong> <em>University of
Arkansas (Fayetteville)</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Programming in different paradigms with emphasis on object oriented
programming, network programming and functional programming. Survey of
programming languages, event driven programming, concurrency, software
validation.</li>
<li><a
href="http://www.csce.uark.edu/~sgauch/3193/S11/syllabus.html">Syllabus</a></li>
<li><a
href="http://www.csce.uark.edu/~sgauch/3193/S11/notes/index.html">Notes</a></li>
<li><a
href="http://www.csce.uark.edu/~sgauch/3193/S11/hw/index.html">Assignments</a></li>
<li><a
href="http://www.csce.uark.edu/~sgauch/3193/S11/exams/index.html">Practice
Exams</a></li>
</ul></li>
<li><a
href="https://stellar.mit.edu/S/course/6/sp15/6.045/index.html">6.045</a>
<strong>Great Ideas in Theoretical Computer Science</strong>
<em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course provides a challenging introduction to some of the
central ideas of theoretical computer science. Beginning in antiquity,
the course will progress through finite automata, circuits and decision
trees, Turing machines and computability, efficient algorithms and
reducibility, the P versus NP problem, NP-completeness, the power of
randomness, cryptography and one-way functions, computational learning
theory, and quantum computing. It examines the classes of problems that
can and cannot be solved by various kinds of machines. It tries to
explain the key differences between computational models that affect
their power.</li>
<li><a
href="https://stellar.mit.edu/S/course/6/sp15/6.045/courseMaterial/topics/topic1/syllabus/syllabus2015/syllabus2015.pdf">Syllabus</a></li>
<li><a
href="https://stellar.mit.edu/S/course/6/sp15/6.045/materials.html">Lecture
Notes</a></li>
<li><a
href="http://stellar.mit.edu/S/course/6/sp15/6.045/special/videos/index.html">Lecture
Videos</a></li>
</ul></li>
</ul>
<hr />
<h3 id="introduction-to-cs">Introduction to CS</h3>
<ul>
<li><a href="https://inst.eecs.berkeley.edu/~cs10/fa14/">CS 10</a>
<strong>The Beauty and Joy of Computing</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS10 is UCBs introductory computer science class, taught using the
beginners drag-and-drop language. Students learn about history, social
implications, great principles, and future of computing. They also learn
the joy of programming a computer using a friendly, graphical language,
and will complete a substantial team programming project related to
their interests.</li>
<li><a href="http://snap.berkeley.edu">Snap<em>!</em></a> (based on
Scratch by MIT).</li>
<li><a href="http://bjc.berkeley.edu">Curriculum</a></li>
</ul></li>
<li><a href="https://cs50.harvard.edu/">CS 50</a> <strong>Introduction
to Computer Science</strong> <em>Harvard University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS50x is Harvard Colleges introduction to the intellectual
enterprises of computer science and the art of programming for majors
and non-majors alike, with or without prior programming experience. An
entry-level course taught by David J. Malan.</li>
<li><a href="http://cs50.tv/2017/fall/#about,lectures">Lectures</a></li>
<li><a href="http://cs50.tv/2017/fall/#about,psets">Problem
Sets</a></li>
<li>The course can also be taken from <a
href="https://www.edx.org/course/introduction-computer-science-harvardx-cs50x">edX</a>.</li>
<li>The courses OpenCourseware resides <a
href="http://cs50.tv">here</a></li>
</ul></li>
<li><a href="http://cs61a.org/">CS 61A</a> <strong>Structure and
Interpretation of Computer Programs [Python]</strong> <em>UC
Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>In CS 61A, we are interested in teaching you about programming, not
about how to use one particular programming language. We consider a
series of techniques for controlling program complexity, such as
functional programming, data abstraction, and object-oriented
programming. Mastery of a particular programming language is a very
useful side effect of studying these general techniques. However, our
hope is that once you have learned the essence of programming, you will
find that picking up a new programming language is but a few days
work.</li>
<li><a
href="http://www.infocobuild.com/education/audio-video-courses/computer-science/cs61a-spring2014-berkeley.html">Lecture
Videos</a></li>
<li><a href="http://cs61a.org/by_type.html">Lecture Resources by
Type</a></li>
<li><a href="http://cs61a.org/by_topic.html">Lecture Resources by
Topic</a></li>
<li><a href="http://cs61a.org/articles/resources.html">Additional
Resources</a></li>
<li><a href="http://cs61a.org/problems/">Practice Problems</a></li>
<li><a href="http://cs61a.org/extra.html">Extra Lectures</a></li>
</ul></li>
<li><a href="http://berkeley-cs61as.github.io/">CS 61AS</a>
<strong>Structure &amp; Interpretation of Computer Programs
[Racket]</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>A self-paced version of the CS61 Course but in Racket / Scheme. 61AS
is a great introductory course that will ease you into all the amazing
concepts that future CS courses will cover, so remember to keep an open
mind, have fun, and always respect the data abstraction</li>
<li><a
href="https://www.youtube.com/course?category=University%2FEngineering%2FComputer%2520Science%2FProgramming%2520Languages&amp;list=EC6D76F0C99A731667">Lecture
Videos</a></li>
<li><a href="http://berkeley-cs61as.github.io/textbook.html">Assignments
and Notes</a></li>
</ul></li>
<li><a
href="http://online.stanford.edu/course/computer-science-101-self-paced">CS
101</a> <strong>Computer Science 101</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS101 teaches the essential ideas of Computer Science for a
zero-prior-experience audience. Participants play and experiment with
short bits of “computer code” to bring to life to the power and
limitations of computers.</li>
<li>Lectures videos will available for free after registration.</li>
</ul></li>
<li><a href="https://see.stanford.edu/Course/CS106A">CS 106A</a>
<strong>Programming Methodology</strong> <em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course is the largest of the introductory programming courses
and is one of the largest courses at Stanford. Topics focus on the
introduction to the engineering of computer applications emphasizing
modern software engineering principles: object-oriented design,
decomposition, encapsulation, abstraction, and testing. Programming
Methodology teaches the widely-used Java programming language along with
good software engineering principles.</li>
<li><a href="https://see.stanford.edu/Course/CS106A">Lecture
Videos</a></li>
<li><a
href="https://see.stanford.edu/Course/CS106A">Assignments</a></li>
<li><a
href="http://see.stanford.edu/materials/icspmcs106a/ProgrammingMethodologyAllMaterials.zip">All
materials in a zip file</a></li>
</ul></li>
<li><a href="https://see.stanford.edu/Course/CS106B">CS 106B</a>
<strong>Programming Abstractions</strong> <em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course is the natural successor to Programming Methodology and
covers such advanced programming topics as recursion, algorithmic
analysis, and data abstraction using the C++ programming language, which
is similar to both C and Java.</li>
<li><a href="https://see.stanford.edu/Course/CS106B">Lectures</a></li>
<li><a
href="https://see.stanford.edu/Course/CS106B">Assignments</a></li>
<li><a
href="http://see.stanford.edu/materials/icspacs106b/ProgrammingAbstractionsAllMaterials.zip">All
materials in a zip file</a></li>
</ul></li>
<li><a href="https://see.stanford.edu/Course/CS107">CS 107</a>
<strong>Programming Paradigms</strong> <em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Topics: Advanced memory management features of C and C++; the
differences between imperative and object-oriented paradigms. The
functional paradigm (using LISP) and concurrent programming (using C and
C++)</li>
<li><a href="https://see.stanford.edu/Course/CS107">Lectures</a></li>
<li><a href="https://see.stanford.edu/Course/CS107">Assignments</a></li>
</ul></li>
<li><a href="http://otfried.org/courses/cs109/index.html">CS 109</a>
<strong>Programming Practice Using Scala</strong> <em>KAIST</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course introduces basic concepts of programming and computer
science, such as dynamic and static typing, dynamic memory allocation,
objects and methods, binary representation of numbers, using an editor
and compiler from the command line, running programs with arguments from
the command line, using libraries, and the use of basic data structures
such as arrays, lists, sets, and maps. We will use Scala for this
course.</li>
<li>[Lectures] (http://otfried.org/courses/cs109/index.html)</li>
<li>[Assignments] (http://otfried.org/courses/cs109/index.html)</li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS1109/2013su/">CS
1109</a> <strong>Fundamental Programming Concepts</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course provides an introduction to programming and problem
solving using a high-level programming language. It is designed to
increase your knowledge level to comfortably continue to courses CS111x.
Our focus will be on generic programming concepts: variables,
expressions, control structures, loops, arrays, functions, pseudocode
and algorithms. You will learn how to analyze problems and convert your
ideas into solutions interpretable by computers. We will use MATLAB;
because it provides a productive environment, and it is widely used by
all engineering communities.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1109/2013su/syllabus.html">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1109/2013su/calendar.html">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1109/2013su/calendar.html">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS1110/2014fa/">CS
1110</a> <strong>Introduction to Computing Using Python</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Programming and problem solving using Python. Emphasizes principles
of software development, style, and testing. Topics include procedures
and functions, iteration, recursion, arrays and vectors, strings, an
operational model of procedure and function calls, algorithms,
exceptions, object-oriented programming, and GUIs (graphical user
interfaces). Weekly labs provide guided practice on the computer, with
staff present to help. Assignments use graphics and GUIs to help develop
fluency and understanding.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1110/2014fa/about/grading.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1110/2014fa/lectures/index.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1110/2014fa/assignments/index.php">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS1112/2014fa/">CS
1112</a> <strong>Introduction to Computing Using Matlab</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Programming and problem solving using MATLAB. Emphasizes the
systematic development of algorithms and programs. Topics include
iteration, functions, arrays and vectors, strings, recursion,
algorithms, object-oriented programming, and MATLAB graphics.
Assignments are designed to build an appreciation for complexity,
dimension, fuzzy data, inexact arithmetic, randomness, simulation, and
the role of approximation. NO programming experience is necessary; some
knowledge of Calculus is required.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1112/2014fa/syllabus.html">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1112/2014fa/syllabus.html#schedule">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1112/2014fa/Exercises/exercises.html">Assignments</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1112/2014fa/Projects/projects.html">Projects</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS1115/2013fa/">CS
1115</a> <strong>Introduction to Computational Science and Engineering
Using Matlab Graphical User Interfaces</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Programming and problem solving using MATLAB. Emphasizes the
systematic development of algorithms and programs. Topics include
iteration, functions, arrays and vectors, strings, recursion,
algorithms, object-oriented programming, and MATLAB graphics.
Assignments are designed to build an appreciation for complexity,
dimension, fuzzy data, inexact arithmetic, randomness, simulation, and
the role of approximation. NO programming experience is necessary; some
knowledge of Calculus is required.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1115/2013fa/syllabus.htm">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1115/2013fa/lecture_slides.htm">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1115/2013fa/projects_and_exams.htm">Projects</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS1130/2014sp/">CS
1130</a> <strong>Transition to OO Programming</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Introduction to object-oriented concepts using Java. Assumes
programming knowledge in a language like MATLAB, C, C++, or Fortran.
Students who have learned Java but were not exposed heavily to OO
programming are welcome.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1130/2014sp/about/overview.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1130/2014sp/web-lectures/index.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1130/2014sp/assignments/index.php">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS1133/2013fa/">CS
1133</a> <strong>Transition to Python</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Introduction to the Python programming language. Covers the basic
programming constructs of Python, including assignment, conditionals,
iteration, functions, object-oriented design, arrays, and vectorized
computation. Assumes programming knowledge in a language like Java,
Matlab, C, C++, or Fortran.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1133/2013fa/about/overview.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1133/2013fa/lectures/index.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS1133/2013fa/assignments/index.php">Assignments</a></li>
</ul></li>
<li><a href="http://www.eng.utah.edu/~cs1410-20/">CS 1410-2</a> and <a
href="http://www.eng.utah.edu/~cs2420-20/">CS2420-20</a>
<strong>Computer Science I and II for Hackers</strong> <em>University of
Utah</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>An intro course in the spirit of SICP designed by <a
href="http://www.cs.utah.edu/~mflatt/">Professor Matthew Flatt</a> (one
of the lead designers of Racket and author of HtDP). Mostly Racket and
C, and a bit of Java, with explanations on how high level functional
programming concepts relate to the design of OOP programs. Do this one
before SICP if SICP is a bit too much…</li>
<li><a href="http://www.eng.utah.edu/~cs1410-20/schedule.html">Lectures
and Assignments 1</a></li>
<li><a href="http://www.eng.utah.edu/~cs2420-20/schedule.html">Lectures
and Assignments 2</a></li>
<li><a
href="http://htdp.org/2003-09-26/Book/curriculum.html">Textbook</a></li>
<li><a href="http://racket-lang.org/">Racket Language</a></li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS2110/2014fa/index.html">CS
2110</a> <strong>Object-Oriented Programming and Data
Structures</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>CS 2110 is an intermediate-level programming course and an
introduction to computer science. Topics include program design and
development, debugging and testing, object-oriented programming, proofs
of correctness, complexity analysis, recursion, commonly used data
structures, graph algorithms, and abstract data types. Java is the
principal programming language. The course syllabus can easily be
extracted by looking at the link to <a
href="http://www.cs.cornell.edu/courses/CS2110/2014fa/lecturenotes.html">lectures</a>.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS2110/2014fa/lecturenotes.html">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS2110/2014fa/lecturenotes.html">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS2110/2014fa/assignments.html">Assignments</a></li>
</ul></li>
<li><a href="http://courses2.cit.cornell.edu/info4302_2012fa/">CS
4302</a> <strong>Web Information Systems</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course will introduce you to technologies for building
data-centric information systems on the World Wide Web, show the
practical applications of such systems, and discuss their design and
their social and policy context by examining cross-cutting issues such
as citizen science, data journalism and open government. Course work
involves lectures and readings as well as weekly homework assignments,
and a semester-long project in which the students demonstrate their
expertise in building data-centric Web information systems.</li>
<li><a
href="http://courses2.cit.cornell.edu/info4302_2012fa/course_information.php">Syllabus</a></li>
<li><a
href="http://courses2.cit.cornell.edu/info4302_2012fa/lectures.php">Lectures</a></li>
<li><a
href="http://courses2.cit.cornell.edu/info4302_2012fa/homeworks.php">Assignments</a></li>
</ul></li>
<li><a href="http://www.csce.uark.edu/~sgauch/2004/S14/index.html">CSCE
2004</a> <strong>Programming Foundations I</strong> <em>University of
Arkansas (Fayetteville)</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Introductory course for students majoring in computer science or
computer engineering. Software development process: problem
specification, program design, implementation, testing and
documentation. Programming topics: data representation, conditional and
iterative statements, functions, arrays, strings, file I/O, and classes.
Using C++ in a UNIX environment.</li>
<li><a
href="http://www.csce.uark.edu/~sgauch/2004/S14/syllabus.html">Syllabus</a></li>
<li><a
href="http://www.csce.uark.edu/~sgauch/2004/S14/notes/index.html">Notes</a></li>
<li><a
href="http://www.csce.uark.edu/~sgauch/2004/S14/hw/index.html">Assignments</a></li>
<li><a
href="http://www.csce.uark.edu/~sgauch/2004/S14/index.html">Practice
Exams</a></li>
</ul></li>
<li><a href="http://cse1.net/lectures">CSCI E-1</a>
<strong>Understanding Computers and the Internet</strong> <em>Harvard
University Extension College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course is all about understanding: understanding whats going
on inside your computer when you flip on the switch, why tech support
has you constantly rebooting your computer, how everything you do on the
Internet can be watched by others, and how your computer can become
infected with a worm just by being turned on. Designed for students who
use computers and the Internet every day but dont fully understand how
it all works, this course fills in the gaps. Through lectures on
hardware, software, the Internet, multimedia, security, privacy, website
development, programming, and more, this course “takes the hood off” of
computers and the Internet so that students understand how it all works
and why. Through discussions of current events, students are exposed
also to the latest technologies.</li>
<li><a href="http://cse1.net/lectures">Lecture Videos</a></li>
<li><a href="http://cse1.net/syllabus">Syllabus</a></li>
<li><a href="http://cse1.net/recaps">Notes / Recaps</a></li>
<li><a href="http://cse1.net/psets">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.hmc.edu/csforall/">CS-for-all</a> <strong>CS
for All</strong> <em>Harvey Mudd College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This book (and course) takes a unique approach to “Intro CS.” In a
nutshell, our objective is to provide an introduction to computer
science as an intellectually rich and vibrant field rather than focusing
exclusively on computer programming. While programming is certainly an
important and pervasive element of our approach, we emphasize concepts
and problem-solving over syntax and programming language features.</li>
<li><a href="https://www.cs.hmc.edu/twiki/bin/view/ModularCS1">Lectures
and Other resources</a></li>
</ul></li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/index.htm">6.001</a>
<strong>Structure and Interpretation of Computer Programs</strong>
<em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Teaches big-picture computing concepts using the Scheme programming
language. Students will implement programs in a variety of different
programming paradigms (functional, object-oriented, logical). Heavy
emphasis on function composition, code-as-data, control abstraction with
continuations, and syntactic abstraction through macros. An excellent
course if you are looking to build a mental framework on which to hang
your programming knowledge.</li>
<li><a
href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures">Lectures</a></li>
<li><a
href="http://mitpress.mit.edu/sicp/full-text/book/book.html">Textbook</a>
(<a href="https://github.com/sarabander/sicp">epub</a>, <a
href="https://github.com/sarabander/sicp-pdf">pdf</a>)</li>
<li><a href="http://www.neilvandyke.org/racket-sicp/">IDE</a></li>
</ul></li>
<li><a href="http://web.mit.edu/6.005/www/fa16/">6.005</a>
<strong>Software Construction, Fall 2016</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course introduces fundamental principles and techniques of
software development. Students learn how to write software that is safe
from bugs, easy to understand, and ready for change. Topics include
specifications and invariants; testing, test-case generation, and
coverage; state machines; abstract data types and representation
independence; design patterns for object-oriented programming;
concurrent programming, including message passing and shared
concurrency, and defending against races and deadlock; and functional
programming with immutable data and higher-order functions.</li>
<li><a href="http://web.mit.edu/6.005/www/fa16/">Lectures
Notes/Assignments</a></li>
</ul></li>
</ul>
<hr />
<h3 id="machine-learning">Machine Learning</h3>
<ul>
<li><a href="https://github.com/oxford-cs-deepnlp-2017/">DEEPNLP</a>
<strong>Deep Learning for Natural Language Processing</strong>
<em>University of Oxford</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This is an applied course focussing on recent advances in analysing
and generating speech and text using recurrent neural networks. We
introduce the mathematical definitions of the relevant machine learning
models and derive their associated optimisation algorithms. The course
covers a range of applications of neural networks in NLP including
analysing latent dimensions in text, transcribing speech to text,
translating between languages, and answering questions. This course is
organised by Phil Blunsom and delivered in partnership with the
<strong>DeepMind Natural Language Research Group</strong>.</li>
<li><a
href="https://github.com/oxford-cs-deepnlp-2017/lectures">Lectures</a></li>
<li>Assignments are available on the organisation page titled as
“practicals”</li>
</ul></li>
<li><a href="http://web.stanford.edu/class/cs20si/index.html">CS20si</a>
<strong>Tensorflow for Deep Learning Research</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course will cover the fundamentals and contemporary usage of
the Tensorflow library for deep learning research. We aim to help
students understand the graphical computational model of Tensorflow,
explore the functions it has to offer, and learn how to build and
structure models best suited for a deep learning project. Through the
course, students will use Tensorflow to build models of different
complexity, from simple linear/logistic regression to convolutional
neural network and recurrent neural networks with LSTM to solve tasks
such as word embeddings, translation, optical character recognition.
Students will also learn best practices to structure a model and manage
research experiments.</li>
<li><a
href="https://github.com/chiphuyen/tf-stanford-tutorials">Assignments</a>
available on Github.</li>
</ul></li>
<li><a href="http://www.cs.columbia.edu/~jebara/4771/index.html">COMS
4771</a> <strong>Machine Learning</strong> <em>Columbia University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Course taught by <a
href="http://www.cs.columbia.edu/~jebara/resume.html">Tony Jebara</a>
introduces topics in Machine Learning for both generative and
discriminative estimation. Material will include least squares methods,
Gaussian distributions, linear classification, linear regression,
maximum likelihood, exponential family distributions, Bayesian networks,
Bayesian inference, mixture models, the EM algorithm, graphical models,
hidden Markov models, support vector machines, and kernel methods.</li>
<li><a
href="http://www.cs.columbia.edu/~jebara/4771/handouts.html">Lectures
and Assignments</a></li>
</ul></li>
<li><a href="http://cs109.github.io/2015/">CS 109</a> <strong>Data
Science</strong> <em>Harvard University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Learning from data in order to gain useful predictions and insights.
This course introduces methods for five key facets of an investigation:
data wrangling, cleaning, and sampling to get a suitable data set; data
management to be able to access big data quickly and reliably;
exploratory data analysis to generate hypotheses and intuition;
prediction based on statistical methods such as regression and
classification; and communication of results through visualization,
stories, and interpretable summaries.</li>
<li><a
href="http://cm.dce.harvard.edu/2015/01/14328/publicationListing.shtml">Lectures</a></li>
<li><a
href="http://cs109.github.io/2014/pages/schedule.html">Slides</a></li>
<li><a href="http://cs109.github.io/2014/pages/homework.html">Labs and
Assignments</a></li>
<li><a href="http://cs109.github.io/2014/">2014 Lectures</a></li>
<li><a
href="http://cm.dce.harvard.edu/2014/01/14328/publicationListing.shtml">2013
Lectures</a> <em>(slightly better)</em></li>
</ul></li>
<li><a href="https://work.caltech.edu/telecourse.html">CS 156</a>
<strong>Learning from Data</strong> <em>Caltech</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This is an introductory course in machine learning (ML) that covers
the basic theory, algorithms, and applications. ML is a key technology
in Big Data, and in many financial, medical, commercial, and scientific
applications. It enables computational systems to adaptively improve
their performance with experience accumulated from the observed data. ML
has become one of the hottest fields of study today, taken up by
undergraduate and graduate students from 15 different majors at Caltech.
This course balances theory and practice, and covers the mathematical as
well as the heuristic aspects.<br />
</li>
<li><a href="https://work.caltech.edu/lectures.html">Lectures</a></li>
<li><a href="https://work.caltech.edu/homeworks.html">Homework</a></li>
<li><a href="https://work.caltech.edu/textbook.html">Textbook</a></li>
</ul></li>
<li><a href="http://www.eecs189.org/">CS 189</a> <strong>Introduction To
Machine Learning</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Introductory ML course covering a wide range of topics: ranging from
least squares to convolutional neural networks</li>
<li><a href="http://www.eecs189.org/">Notes</a></li>
<li><a href="http://www.eecs189.org/">Homework</a></li>
</ul></li>
<li><a href="http://cs224d.stanford.edu/">CS 224d</a> <strong>Deep
Learning for Natural Language Processing</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Natural language processing (NLP) is one of the most important
technologies of the information age. Understanding complex language
utterances is also a crucial part of artificial intelligence.
Applications of NLP are everywhere because people communicate most
everything in language: web search, advertisement, emails, customer
service, language translation, radiology reports, etc. There are a large
variety of underlying tasks and machine learning models powering NLP
applications. Recently, deep learning approaches have obtained very high
performance across many different NLP tasks. These models can often be
trained with a single end-to-end model and do not require traditional,
task-specific feature engineering. In this spring quarter course
students will learn to implement, train, debug, visualize and invent
their own neural network models. The course provides a deep excursion
into cutting-edge research in deep learning applied to NLP.</li>
<li><a href="http://cs224d.stanford.edu/syllabus.html">Syllabus</a></li>
<li><a href="http://cs224d.stanford.edu/syllabus.html">Lectures and
Assignments</a></li>
</ul></li>
<li><a
href="http://people.seas.harvard.edu/~minilek/cs229r/fall15/index.html">CS
229r</a> <strong>Algorithms for Big Data</strong> <em>Harvard
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Big data is data so large that it does not fit in the main memory of
a single machine, and the need to process big data by efficient
algorithms arises in Internet search, network traffic monitoring,
machine learning, scientific computing, signal processing, and several
other areas. This course will cover mathematically rigorous models for
developing such algorithms, as well as some provable limitations of
algorithms operating in those models.</li>
<li><a
href="http://people.seas.harvard.edu/~minilek/cs229r/fall15/lec.html">Lectures</a>
(<a
href="https://www.youtube.com/playlist?list=PL2SOU6wwxB0v1kQTpqpuu5kEJo2i-iUyf">Youtube</a>)</li>
<li><a
href="http://people.seas.harvard.edu/~minilek/cs229r/fall15/hmwk.html">Assignments</a></li>
</ul></li>
<li><a href="http://cs231n.stanford.edu/">CS 231n</a>
<strong>Convolutional Neural Networks for Visual Recognition</strong>
<em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<ul>
<li>Computer Vision has become ubiquitous in our society, with
applications in search, image understanding, apps, mapping, medicine,
drones, and self-driving cars. This course is a deep dive into details
of the deep learning architectures with a focus on learning end-to-end
models for these tasks, particularly image classification. During the
10-week course, students will learn to implement, train and debug their
own neural networks and gain a detailed understanding of cutting-edge
research in computer vision.</li>
<li><a href="http://cs231n.stanford.edu/syllabus.html">Lecture
Notes</a></li>
<li><a
href="https://www.youtube.com/watch?v=NfnWJUyUJYU&amp;list=PLkt2uSq6rBVctENoVBg1TpCC7OQi31AlC">Lecture
Videos</a></li>
<li><a href="http://cs231n.github.io/">Github Page</a></li>
</ul></li>
<li><a href="http://www.cs.berkeley.edu/~pabbeel/cs287-fa13/">CS 287</a>
<strong>Advanced Robotics</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>The course introduces the math and algorithms underneath
state-of-the-art robotic systems. The majority of these techniques are
heavily based on probabilistic reasoning and optimization—two areas with
wide applicability in modern Artificial Intelligence. An intended
side-effect of the course is to generally strengthen your expertise in
these two areas.</li>
<li><a
href="http://www.cs.berkeley.edu/~pabbeel/cs287-fa13/#syllabus">Lectures
Notes</a></li>
<li><a
href="http://www.cs.berkeley.edu/~pabbeel/cs287-fa13/#assignments">Assignments</a></li>
</ul></li>
<li><a href="http://www.nr.com/CS395T/">CS 395T</a> <strong>Statistical
and Discrete Methods for Scientific Computing</strong> <em>University of
Texas</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>Practical course in applying modern statistical techniques to real
data, particularly bioinformatic data and large data sets. The emphasis
is on efficient computation and concise coding, mostly in MATLAB and
C++. Topics covered include probability theory and Bayesian inference;
univariate distributions; Central Limit Theorem; generation of random
deviates; tail (p-value) tests; multiple hypothesis correction;
empirical distributions; model fitting; error estimation; contingency
tables; multivariate normal distributions; phylogenetic clustering;
Gaussian mixture models; EM methods; maximum likelihood estimation;
Markov Chain Monte Carlo; principal component analysis; dynamic
programming; hidden Markov models; performance measures for classifiers;
support vector machines; Wiener filtering; wavelets; multidimensional
interpolation; information theory.</li>
<li><a href="http://wpressutexas.net/forum/">Lectures and
Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS4780/2014fa/">CS
4780</a> <strong>Machine Learning</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course will introduce you to technologies for building
data-centric information systems on the World Wide Web, show the
practical applications of such systems, and discuss their design and
their social and policy context by examining cross-cutting issues such
as citizen science, data journalism and open government. Course work
involves lectures and readings as well as weekly homework assignments,
and a semester-long project in which the students demonstrate their
expertise in building data-centric Web information systems.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4780/2014fa/">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4780/2014fa/">Lectures</a></li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4786/2015sp/index.htm">CS
4786</a> <strong>Machine Learning for Data Science</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>An introductory course in machine learning, with a focus on data
modeling and related methods and learning algorithms for data sciences.
Tentative topic list:
<ul>
<li>Dimensionality reduction, such as principal component analysis (PCA)
and the singular value decomposition (SVD), canonical correlation
analysis (CCA), independent component analysis (ICA), compressed
sensing, random projection, the information bottleneck. (We expect to
cover some, but probably not all, of these topics).</li>
<li>Clustering, such as k-means, Gaussian mixture models, the
expectation-maximization (EM) algorithm, link-based clustering. (We do
not expect to cover hierarchical or spectral clustering.).</li>
<li>Probabilistic-modeling topics such as graphical models,
latent-variable models, inference (e.g., belief propagation), parameter
learning.</li>
<li>Regression will be covered if time permits.</li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4786/2015sp/assignments.htm">Assignments</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4786/2015sp/lectures.htm">Lectures</a></li>
</ul></li>
<li><a
href="https://class.stanford.edu/courses/Engineering/CVX101/Winter2014/info">CVX
101</a> <strong>Convex Optimization</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>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.</li>
<li><a href="http://web.stanford.edu/~boyd/cvxbook/">Textbook</a></li>
<li><a
href="https://class.stanford.edu/courses/Engineering/CVX101/Winter2014/courseware/7206c57866504e83821d00b5d3f80793/">Lectures
and Assignments</a></li>
</ul></li>
<li><a
href="http://cilvr.cs.nyu.edu/doku.php?id=deeplearning2015:schedule">DS-GA
1008</a> <strong>Deep Learning</strong> <em>New York University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>This increasingly popular course is taught through the Data Science
Center at NYU. Originally introduced by <a
href="http://yann.lecun.com/">Yann Lecun</a>, it is now led by <a
href="http://www.harchaoui.eu/">Zaid Harchaoui</a>, although Prof. Lecun
is rumored to still stop by from time to time. It covers the theory,
technique, and tricks that are used to achieve very high accuracy for
machine learning tasks in computer vision and natural language
processing. The assignments are in Lua and hosted on Kaggle.</li>
<li><a
href="http://cilvr.cs.nyu.edu/doku.php?id=deeplearning2015:schedule">Course
Page</a></li>
<li><a
href="http://techtalks.tv/deep-learning-nyu-spring-2015/">Recorded
Lectures</a></li>
</ul></li>
<li><a href="http://www.ee.columbia.edu/~cylin/course/bigdata/">EECS
E6893 &amp; EECS E6895</a> <strong>Big Data Analytics &amp; Advanced Big
Data Analytics</strong> <em>Columbia University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Students will gain knowledge on analyzing Big Data. It serves as an
introductory course for graduate students who are expecting to face Big
Data storage, processing, analysis, visualization, and application
issues on both workplaces and research environments.</li>
<li>Taught by <a
href="http://researcher.watson.ibm.com/researcher/view.php?person=us-chingyung">Dr. Ching-Yung
Lin</a></li>
<li><a href="http://www.ee.columbia.edu/~cylin/course/bigdata/">Course
Site</a></li>
<li>Assignments - Assignments are present in the Course Slides</li>
</ul></li>
<li><a href="http://llcao.net/cu-deeplearning15/index.html">EECS
E6894</a> <strong>Deep Learning for Computer Vision and Natural Language
Processing</strong> <em>Columbia University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This graduate level research class focuses on deep learning
techniques for vision and natural language processing problems. It gives
an overview of the various deep learning models and techniques, and
surveys recent advances in the related fields. This course uses Theano
as the main programming tool. GPU programming experiences are preferred
although not required. Frequent paper presentations and a heavy
programming workload are expected.</li>
<li><a
href="http://llcao.net/cu-deeplearning15/reading.html">Readings</a></li>
<li><a
href="http://llcao.net/cu-deeplearning15/programming_problem.html">Assignments</a></li>
<li><a href="http://llcao.net/cu-deeplearning15/index.html">Lecture
Notes</a></li>
</ul></li>
<li><a href="http://stanford.edu/class/ee103/">EE103</a>
<strong>Introduction to Matrix Methods</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>The course covers the basics of matrices and vectors, solving linear
equations, least-squares methods, and many applications. Itll cover the
mathematics, but the focus will be on using matrix methods in
applications such as tomography, image processing, data fitting, time
series prediction, finance, and many others. EE103 is based on a book
that <a href="http://stanford.edu/~boyd/">Stephen Boyd</a> and <a
href="http://www.seas.ucla.edu/~vandenbe/">Lieven Vandenberghe</a> are
currently writing. Students will use a new language called <a
href="http://julialang.org/">Julia</a> to do computations with matrices
and vectors.</li>
<li><a
href="http://stanford.edu/class/ee103/lectures.html">Lectures</a></li>
<li><a href="http://stanford.edu/class/ee103/mma.html">Book</a></li>
<li><a
href="http://stanford.edu/class/ee103/homework.html">Assignments</a></li>
<li><a href="http://stanford.edu/class/ee103/julia_files">Code</a></li>
</ul></li>
<li><a href="http://course.fast.ai/ml.html">Fast.ai Introduction to
Machine Learning for Coders</a> <em>Fast.ai / University of San
Francisco</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>There are around 24 hours of lessons, and you should plan to spend
around 8 hours a week for 12 weeks to complete the material. The course
is based on lessons recorded at the University of San Francisco for the
Masters of Science in Data Science program. We assume that you have at
least one year of coding experience, and either remember what you
learned in high school math, or are prepared to do some independent
study to refresh your knowledge.</li>
<li><a href="http://course.fast.ai/lessonsml1/lessonsml1.html">Lecture
Videos</a></li>
<li><a
href="https://medium.com/@hiromi_suenaga/machine-learning-1-lesson-1-84a1dc2b5236">Lecture
Notes</a></li>
<li><a
href="https://github.com/fastai/fastai/tree/master/courses/ml1">Jupyter
Notebooks</a></li>
</ul></li>
<li><a href="http://www.ischool.berkeley.edu/courses/i290-abdt">Info
290</a> <strong>Analyzing Big Data with Twitter</strong> <em>UC Berkeley
school of information</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<ul>
<li>In this course, UC Berkeley professors and Twitter engineers provide
lectures on the most cutting-edge algorithms and software tools for data
analytics as applied to Twitters data. Topics include applied natural
language processing algorithms such as sentiment analysis, large scale
anomaly detection, real-time search, information diffusion and outbreak
detection, trend detection in social streams, recommendation algorithms,
and advanced frameworks for distributed computing.</li>
<li><a
href="http://www.ischool.berkeley.edu/newsandevents/audiovideo/webcast/21963">Lecture
Videos</a></li>
<li><a href="http://blogs.ischool.berkeley.edu/i290-abdt-s12/">Previous
Years coursepage</a></li>
</ul></li>
<li><a
href="https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/">Machine
Learning: 2014-2015</a> <em>University of Oxford</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>The course focusses on neural networks and uses the <a
href="https://github.com/torch/torch7/wiki/Cheatsheet">Torch</a> deep
learning library (implemented in Lua) for exercises and assignments.
Topics include: logistic regression, back-propagation, convolutional
neural networks, max-margin learning, siamese networks, recurrent neural
networks, LSTMs, hand-writing with recurrent neural networks,
variational autoencoders and image generation and reinforcement
learning</li>
<li><a
href="https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/">Lectures
and Assignments</a></li>
<li><a href="https://github.com/oxford-cs-ml-2015/">Source code</a></li>
</ul></li>
<li><a
href="https://lagunita.stanford.edu/courses/HumanitiesandScience/StatLearning/Winter2015/about">StatLearning</a>
<strong>Intro to Statistical Learning</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<ul>
<li>This is an introductory-level course in supervised learning, with a
focus on regression and classification methods. The syllabus includes:
linear and polynomial regression, logistic regression and linear
discriminant analysis; cross-validation and the bootstrap, model
selection and regularization methods (ridge and lasso); nonlinear
models, splines and generalized additive models; tree-based methods,
random forests and boosting; support-vector machines.</li>
<li>The lectures cover all the material in <a
href="http://www-bcf.usc.edu/~gareth/ISL/">An Introduction to
Statistical Learning, with Applications in R</a> which is a more
approachable version of the <a
href="http://statweb.stanford.edu/~tibs/ElemStatLearn/">Elements of
Statistical Learning</a> (or ESL) book.</li>
</ul></li>
<li><a href="http://www.cs.cmu.edu/~ninamf/courses/601sp15/">10-601</a>
<strong>Machine Learning</strong> <em>Carnegie Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<ul>
<li>This course covers the theory and practical algorithms for machine
learning from a variety of perspectives. It covers topics such as
Bayesian networks, decision tree learning, Support Vector Machines,
statistical learning methods, unsupervised learning and reinforcement
learning. The course covers theoretical concepts such as inductive bias,
the PAC learning framework, Bayesian learning methods, margin-based
learning, and Occams Razor. Short programming assignments include
hands-on experiments with various learning algorithms. This course is
designed to give a graduate-level student a thorough grounding in the
methodologies, technologies, mathematics and algorithms currently needed
by people who do research in machine learning.</li>
<li>Taught by one of the leading experts on Machine Learning -
<strong>Tom Mitchell</strong></li>
<li><a
href="http://www.cs.cmu.edu/~tom/10701_sp11/lectures.shtml">Lectures</a></li>
<li><a href="http://www.cs.cmu.edu/~tom/10701_sp11/proj.shtml">Project
Ideas and Datasets</a></li>
</ul></li>
<li><a
href="http://www.cs.cmu.edu/~epxing/Class/10708-14/index.html">10-708</a>
<strong>Probabilistic Graphical Models</strong> <em>Carnegie Mellon
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Many of the problems in artificial intelligence, statistics,
computer systems, computer vision, natural language processing, and
computational biology, among many other fields, can be viewed as the
search for a coherent global conclusion from local information. The
probabilistic graphical models framework provides a unified view for
this wide range of problems, enabling efficient inference,
decision-making and learning in problems with a very large number of
attributes and huge datasets. This graduate-level course will provide
you with a strong foundation for both applying graphical models to
complex problems and for addressing core research topics in graphical
models.</li>
<li><a
href="http://www.cs.cmu.edu/~epxing/Class/10708-14/lecture.html">Lecture
Videos</a></li>
<li><a
href="http://www.cs.cmu.edu/~epxing/Class/10708-14/homework.html">Assignments</a></li>
<li><a
href="http://www.cs.cmu.edu/~epxing/Class/10708-14/lecture.html">Lecture
notes</a></li>
<li><a
href="http://www.cs.cmu.edu/~epxing/Class/10708-14/lecture.html">Readings</a></li>
</ul></li>
<li><a href="http://deeplearning.cs.cmu.edu/">11-785</a> <strong>Deep
Learning</strong> <em>Carnegie Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>The course presents the subject through a series of seminars and
labs, which will explore it from its early beginnings, and work
themselves to some of the state of the art. The seminars will cover the
basics of deep learning and the underlying theory, as well as the
breadth of application areas to which it has been applied, as well as
the latest issues on learning from very large amounts of data. We will
concentrate largely, although not entirely, on the connectionist
architectures that are most commonly associated with it.
<em>Lectures</em> and <em>Reading Notes</em> are available on the
page.</li>
</ul></li>
<li><a href="http://web.stanford.edu/class/cs246/">CS246</a>
<strong>Mining Massive Data Sets</strong> <em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>The course will discuss data mining and machine learning algorithms
for analyzing very large amounts of data. The emphasis will be on Map
Reduce as a tool for creating parallel algorithms that can process very
large amounts of data.</li>
<li><a href="http://www.mmds.org/#mooc">Lecture Videos</a></li>
<li><a
href="http://web.stanford.edu/class/cs246/handouts.html">Assignments</a></li>
<li><a href="http://web.stanford.edu/class/cs246/handouts.html">Lecture
notes</a></li>
<li><a href="http://www.mmds.org/#book">Readings</a></li>
</ul></li>
<li><a href="http://web.stanford.edu/class/cs276/index.html">CS276</a>
<strong>Information Retrieval and Web Search</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Basic and advanced techniques for text-based information systems:
efficient text indexing; Boolean and vector space retrieval models;
evaluation and interface issues; Web search including crawling,
link-based algorithms, and Web metadata; text/Web clustering,
classification; text mining.</li>
<li><a
href="http://web.stanford.edu/class/cs276/index.html#syllabus">Lecture
notes</a></li>
<li><a
href="http://web.stanford.edu/class/cs276/index.html#books">Readings</a></li>
</ul></li>
<li><a
href="https://github.com/yandexdataschool/Practical_RL">Practical_RL</a>
<strong>Reinforcement Learning in the Wild</strong> <em>Yandex SDA</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>A course on reinforcement learning in the wild. Taught on-campus in
HSE and Yandex SDA (russian) and maintained to be friendly to online
students (both english and russian).</li>
<li><a
href="https://github.com/yandexdataschool/Practical_RL#syllabus">Syllabus</a></li>
</ul></li>
<li><a href="http://uvadlc.github.io/">UvA DEEP LEARNING</a> <strong>UvA
Deep Learning Course</strong> <em>University of Amsterdam</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course is taught in the MSc program in Artificial Intelligence
of the University of Amsterdam. In this course we study the theory of
deep learning, namely of modern, multi-layered neural networks trained
on big data. The course focuses particularly on computer vision and
language modelling, which are perhaps two of the most recognizable and
impressive applications of the deep learning theory.</li>
<li><a href="http://uvadlc.github.io/#lecture">Lecture Videos &amp;
Notes</a></li>
<li><a href="http://uvadlc.github.io/#practicals">Practicals</a></li>
<li><a href="http://uvadlc.github.io/#other-links">Readings</a></li>
</ul></li>
</ul>
<hr />
<h3 id="security">Security</h3>
<ul>
<li><a
href="http://www.cs.fsu.edu/~redwood/OffensiveComputerSecurity/">CIS
4930 / CIS 5930</a> <strong>Offensive Computer Security</strong>
<em>Florida State University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Course taught by <a href="http://ww2.cs.fsu.edu/~redwood/">W. Owen
Redwood</a> and <a href="http://www.cs.fsu.edu/~liux/">Xiuwen Liu</a>.
It covers a wide range of computer security topics, starting from Secure
C Coding and Reverse Engineering to Penetration Testing, Exploitation
and Web Application Hacking, both from the defensive and the offensive
point of view.</li>
<li><a
href="http://www.cs.fsu.edu/~redwood/OffensiveComputerSecurity/lectures.html">Lectures
and Videos</a></li>
<li><a
href="http://www.cs.fsu.edu/~redwood/OffensiveComputerSecurity/assignments.html">Assignments</a></li>
</ul></li>
<li><a href="https://crypto.stanford.edu/cs155/">CS 155</a>
<strong>Computer and Network Security</strong> <em>Stanford</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Principles of computer systems security. Attack techniques and how
to defend against them. Topics include: network attacks and defenses,
operating system holes, application security (web, email, databases),
viruses, social engineering attacks, privacy, and digital rights
management. Course projects focus on building reliable code.
Recommended: Basic Unix. Primarily intended for seniors and first-year
graduate students.</li>
</ul></li>
<li><a href="http://www-inst.eecs.berkeley.edu/~cs161/sp15/">CS 161</a>
<strong>Computer Security</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Introduction to computer security. Cryptography, including
encryption, authentication, hash functions, cryptographic protocols, and
applications. Operating system security, access control. Network
security, firewalls, viruses, and worms. Software security, defensive
programming, and language-based security. Case studies from real-world
systems.</li>
</ul></li>
<li><a
href="https://courseware.stanford.edu/pg/courses/331628/cs259-winter-2013">CS
259</a> <strong>Security Modeling and Analysis</strong>
<em>Stanford</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>The course will cover a variety of contemporary network protocols
and other systems with security properties. The course goal is to give
students hands-on experience in using automated tools and related
techniques to analyze and evaluate security mechanisms. To understand
security properties and requirements, we will look at several network
protocols and their properties, including secrecy, authentication, key
establishment, and fairness. In parallel, the course will look at
several models and tools used in security analysis and examine their
advantages and limitations. In addition to fully automated finite-state
model checking techniques, we will also study other approaches, such as
constraint solving, process algebras, protocol logics, probabilistic
model checking, game theory, and executable models based on logic
programming.</li>
</ul></li>
<li><a href="http://www.icir.org/vern/cs261n-Sp14/">CS 261</a>
<strong>Internet/Network Security</strong> <em>UC Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This class aims to provide a thorough grounding in network security
suitable for those interested in conducting research in the area, as
well as students more generally interested in either security or
networking. We will also look at broader issues relating to Internet
security for which networking plays a role. Topics include:
denial-of-service; capabilities; network intrusion detection; worms;
forensics; scanning; traffic analysis / inferring activity;
architecture; protocol issues; legality and ethics; web attacks;
anonymity; honeypots; botnets; spam; the underground economy; research
pitfalls. The course is taught with an emphasis on seminal papers rather
than bleeding-edge for a given topic.</li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS5430/2013sp/">CS
5430</a> <strong>System Security</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>This course discusses security for computers and networked
information systems. We focus on abstractions, principles, and defenses
for implementing military as well as commercial-grade secure
systems.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS5430/2013sp/01.intro.html">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS5430/2013sp/02.outline.html">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS5430/2013sp/">Assignments</a></li>
</ul></li>
<li><a href="https://github.com/RPISEC/MBE">CSCI 4968</a> <strong>Modern
Binary Exploitation</strong> <em>Rensselaer Polytechnic Institute</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>This repository contains the materials as developed and used by <a
href="http://rpis.ec">RPISEC</a> to teach Modern Binary Exploitation at
<a href="http://rpi.edu">Rensselaer Polytechnic Institute</a> in Spring
2015. This was a university course developed and run solely by students
to teach skills in vulnerability research, reverse engineering, and
binary exploitation.</li>
<li><a
href="http://security.cs.rpi.edu/courses/binexp-spring2015/lectures/">Lectures
Notes</a></li>
<li><a
href="https://github.com/RPISEC/MBE/tree/master/src">Labs</a></li>
<li><a
href="https://github.com/RPISEC/MBE/tree/master/src">Projects</a></li>
</ul></li>
<li><a href="https://github.com/RPISEC/Malware">CSCI 4976</a>
<strong>Malware Analysis</strong> <em>Rensselaer Polytechnic
Institute</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>This repository contains the materials as developed and used by <a
href="http://rpis.ec">RPISEC</a> to teach Malware Analysis at <a
href="http://rpi.edu">Rensselaer Polytechnic Institute</a> in Fall 2015.
This was a university course developed and run solely by students,
primarily using the</li>
</ul></li>
<li><a href="https://www.eecs.umich.edu/courses/eecs588/">EECS 588</a>
<strong>Computer &amp; Network Security</strong> <em>University of
Michigan</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Taught by <a href="https://jhalderm.com/">J. Alex Halderman</a> who
has analyzed the security of Electronic Voting Machines in the <a
href="https://jhalderm.com/pub/papers/dcvoting-fc12.pdf">US</a> and <a
href="https://jhalderm.com/pub/papers/ivoting-ccs14.pdf">over</a> <a
href="https://jhalderm.com/pub/papers/evm-ccs10.pdf">seas</a>.</li>
<li>This intensive research seminar covers foundational work and current
topics in computer systems security.</li>
<li><a
href="https://www.eecs.umich.edu/courses/eecs588/readings.html">Readings</a>
<a
href="http://www.amazon.com/Practical-Malware-Analysis-Dissecting-Malicious/dp/1593272901">Practical
Malware Analysis</a> book by Michael Sikorski and Andrew Honig, to teach
skills in reverse engineering, malicious behaviour, malware, and
anti-analysis techniques.</li>
<li><a
href="https://github.com/RPISEC/Malware/tree/master/Lectures">Lectures
Notes</a></li>
<li><a
href="https://github.com/RPISEC/Malware/tree/master/Labs">Labs</a></li>
<li><a
href="https://github.com/RPISEC/Malware/tree/master/Projects">Projects</a></li>
</ul></li>
<li><a href="https://courses.csail.mit.edu/6.857/2015/">6.857</a>
<strong>Computer and Network Security</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Emphasis on applied cryptography and may include: basic notion of
systems security, cryptographic hash functions, symmetric cryptography
(one-time pad, stream ciphers, block ciphers), cryptanalysis,
secret-sharing, authentication codes, public-key cryptography
(encryption, digital signatures), public-key attacks, web browser
security, biometrics, electronic cash, viruses, electronic voting,
Assignments include a group final project. Topics may vary year to year.
<a href="https://courses.csail.mit.edu/6.857/2015/handouts">Lecture
Notes</a> <a
href="https://courses.csail.mit.edu/6.857/2015/references">References</a></li>
</ul></li>
<li><a href="http://css.csail.mit.edu/6.858/2014/">6.858</a>
<strong>Computer Systems Security</strong> <em>MIT</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Design and implementation of secure computer systems. Lectures cover
threat models, attacks that compromise security, and techniques for
achieving security, based on recent research papers. Topics include
operating system (OS) security, capabilities, information flow control,
language security, network protocols, hardware security, and security in
web applications.</li>
<li>Taught by <a
href="http://research.microsoft.com/en-us/people/mickens/">James
Mickens</a> and <a href="http://people.csail.mit.edu/nickolai/">Nickolai
Zeldovich</a></li>
<li><a href="http://css.csail.mit.edu/6.858/2014/schedule.html">Video
Lectures and Labs</a></li>
<li><a
href="http://css.csail.mit.edu/6.858/2014/quiz.html">Quizzes</a></li>
<li><a
href="http://css.csail.mit.edu/6.858/2014/reference.html">Readings</a></li>
<li><a href="http://css.csail.mit.edu/6.858/2014/projects.html">Final
Projects</a></li>
</ul></li>
<li><a
href="https://courseware.stanford.edu/pg/courses/334553/18636-spring-2013">18-636</a>
<strong>Browser Security</strong> <em>Stanford</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>The Web continues to grow in popularity as platform for retail
transactions, financial services, and rapidly evolving forms of
communication. It is becoming an increasingly attractive target for
attackers who wish to compromise users systems or steal data from other
sites. Browser vendors must stay ahead of these attacks by providing
features that support secure web applications. This course will study
vulnerabilities in existing web browsers and the applications they
render, as well as new technologies that enable web applications that
were never before possible. The material will be largely based on
current research problems, and students will be expected to criticize
and improve existing defenses. Topics of study include (but are not
limited to) browser encryption, JavaScript security, plug-in security,
sandboxing, web mashups, and authentication.</li>
</ul></li>
</ul>
<table style="width:11%;">
<colgroup>
<col style="width: 11%" />
</colgroup>
<thead>
<tr class="header">
<th>### Artificial Intelligence</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>### Computer Graphics - <a
href="http://crcv.ucf.edu/courses/CAP5415/">CAP 5415</a>
<strong>Computer Vision</strong> <em>University of Central Florida</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
- An introductory level course covering the basic topics of computer
vision, and introducing some fundamental approaches for computer vision
research. - <a
href="http://crcv.ucf.edu/videos/Lecture_Videos/">Lectures and
Videos</a> - <a
href="http://crcv.ucf.edu/courses/CAP5415/Fall2014/index.php">Assignments</a>
- <a
href="https://alliance.seas.upenn.edu/~cis581/wiki/index.php?title=CIS_581:_Computer_Vision_%26_Computational_Photography">CIS
581</a> <strong>Computer Vision and Computational Photography</strong>
<em>University of Pennsylvania</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- An introductory course in computer vision and computational
photography focusing on four topics: image features, image morphing,
shape matching, and image search. - <a
href="https://alliance.seas.upenn.edu/~cis581/wiki/index.php?title=Schedule">Lectures</a>
- <a
href="https://alliance.seas.upenn.edu/~cis581/wiki/index.php?title=Projects">Assignments</a>
- <a href="http://15462.courses.cs.cmu.edu/fall2015">CMU 462</a>
<strong>Computer Graphics</strong> <em>Carnegie Mellon University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- This course provides a comprehensive introduction to computer
graphics. Focuses on fundamental concepts and techniques, and their
cross-cutting relationship to multiple problem domains in graphics
(rendering, animation, geometry, imaging). Topics include: sampling,
aliasing, interpolation, rasterization, geometric transformations,
parameterization, visibility, compositing, filtering, convolution,
curves &amp; surfaces, geometric data structures, subdivision, meshing,
spatial hierarchies, ray tracing, radiometry, reflectance, light fields,
geometric optics, Monte Carlo rendering, importance sampling, camera
models, high-performance ray tracing, differential equations, time
integration, numerical differentiation, physically-based animation,
optimization, numerical linear algebra, inverse kinematics, Fourier
methods, data fitting, example-based synthesis. - <a
href="http://15462.courses.cs.cmu.edu/fall2015/reading">Lectures and
Readings</a> - <a
href="http://15462.courses.cs.cmu.edu/fall2015/exercises">Assignments
and Quizes</a> - <a
href="https://github.com/ut-cs378-vision-2014fall/course-info">CS
378</a> <strong>3D Reconstruction with Computer Vision</strong>
<em>UTexas</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- In this lab-based class, well dive into practical applications of 3D
reconstruction, combining hardware and software to build our own 3D
environments from scratch. Well use open-source frameworks like OpenCV
to do the heavy lifting, with the focus on understanding and applying
state-of-the art approaches to geometric computer vision - <a
href="https://github.com/ut-cs378-vision-2014fall/course-info/tree/master/meeting-notes">Lectures</a>
- <a
href="http://www.cs.cornell.edu/Courses/CS4620/2014fa/index.shtml#">CS
4620</a> <strong>Introduction to Computer Graphics</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" />
- The study of creating, manipulating, and using visual images in the
computer. - <a
href="http://www.cs.cornell.edu/Courses/CS4620/2014fa/index.shtml#asgn">Assignments</a>
- <a
href="http://www.cs.cornell.edu/Courses/CS4620/2014fa/index.shtml#exams">Exams</a>
- <a href="http://www.cs.cornell.edu/courses/CS4670/2015sp/">CS 4670</a>
<strong>Introduction to Computer Vision</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
- This course will provide an introduction to computer vision, with
topics including image formation, feature detection, motion estimation,
image mosaics, 3D shape reconstruction, and object and face detection
and recognition. Applications of these techniques include building 3D
maps, creating virtual characters, organizing photo and video databases,
human computer interaction, video surveillance, automatic vehicle
navigation, and mobile computer vision. This is a project-based course,
in which you will implement several computer vision algorithms
throughout the semester. - <a
href="http://www.cs.cornell.edu/courses/CS4670/2015sp/projects/projects.html">Assignments</a>
- <a
href="http://www.cs.cornell.edu/courses/CS4670/2015sp/lectures/lectures.html">Lectures</a>
- <a href="https://canvas.instructure.com/courses/904706">CS 6670</a>
<strong>Computer Vision</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- Introduction to computer vision. Topics include edge detection, image
segmentation, stereopsis, motion and optical flow, image mosaics, 3D
shape reconstruction, and object recognition. Students are required to
implement several of the algorithms covered in the course and complete a
final project. - <a
href="https://canvas.instructure.com/courses/904706/assignments/syllabus">Syllabus</a>
- <a href="https://canvas.instructure.com/courses/904706">Lectures</a> -
<a
href="https://canvas.instructure.com/courses/904706/assignments">Assignments</a>
- <a href="http://cs.brown.edu/courses/csci1230/index.html">CSCI
1230</a> <strong>Introduction to Computer Graphics</strong> <em>Brown
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
- This course offers an in-depth exploration of fundamental concepts in
2D and 3D computer graphics. It introduces 2D raster graphics
techniques, including scan conversion, simple image processing,
interaction techniques and user interface design. The bulk of the course
is devoted to 3D modeling, geometric transformations, and 3D viewing and
rendering. - <a
href="http://cs.brown.edu/courses/csci1230/lectures.html">Lectures</a> -
<a href="http://cs.brown.edu/courses/csci1230/labs.html">Labs</a> - <a
href="http://cs.brown.edu/courses/csci1230/demos.html">Demos</a> - <a
href="https://mrl.nyu.edu/~perlin/courses/fall2015/">CSCI-GA.2270-001</a>
<strong>Graduate Computer Graphics</strong> <em>New York University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" />
- Step-by-step study computer graphics, with reading and homework at
each lecture (Fall2015) - <a
href="https://mrl.nyu.edu/~perlin/courses/fall2015/">Lectures</a></td>
</tr>
</tbody>
</table>
<h3 id="misc">Misc</h3>
<ul>
<li><a href="http://am207.github.io/2016/index.html">AM 207</a>
<strong>Monte Carlo Methods and Stochastic Optimization</strong>
<em>Harvard University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<ul>
<li>This course introduces important principles of Monte Carlo
techniques and demonstrates the power of these techniques with simple
(but very useful) applications. All of this in Python!</li>
<li><a
href="http://cm.dce.harvard.edu/2015/02/24104/publicationListing.shtml">Lecture
Videos</a></li>
<li><a
href="http://am207.github.io/2016/homework.html">Assignments</a></li>
<li><a href="http://am207.github.io/2016/lectures.html">Lecture
Notes</a></li>
</ul></li>
<li><a href="http://ocw.tufts.edu/Course/75">CS 75</a>
<strong>Introduction to Game Development</strong> <em>Tufts
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>The course taught by <a href="http://mchow01.github.io">Ming Y.
Chow</a> teaches game development initially in PyGame through Python,
before moving on to addressing all facets of game development. Topics
addressed include game physics, sprites, animation, game development
methodology, sound, testing, MMORPGs and online games, and addressing
mobile development in Android, HTML5, and iOS. Most to all of the
development is focused on PyGame for learning principles</li>
<li><a href="http://ocw.tufts.edu/Course/75/Learningunits">Text
Lectures</a></li>
<li><a
href="http://ocw.tufts.edu/Course/75/Assignments">Assignments</a></li>
<li><a href="http://ocw.tufts.edu/Course/75/Labs">Labs</a></li>
</ul></li>
<li><a href="https://cs50.github.io/games/">CS 50</a> <strong>Intro to
Game Developement</strong> <em>Harvard University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course picks up where Harvard Colleges <a
href="https://cs50.harvard.edu/">CS50</a> leaves off, focusing on the
development of 2D and 3D interactive games. Students explore the design
of such childhood games as Super Mario Bros., Legend of Zelda, and
Portal in a quest to understand how video games themselves are
implemented. Via lectures and hands-on projects, the course explores
principles of 2D and 3D graphics, animation, sound, and collision
detection using frameworks like Unity and <a
href="https://love2d.org/">LÖVE 2D</a>, as well as languages like Lua
and C#. By classs end, students will have programmed several of their
own games and gained a thorough understanding of the basics of game
design and development.</li>
<li><a
href="https://cs50.github.io/games/assignments">Assignments</a></li>
<li><a href="https://cs50.github.io/games/lectures">Lecture
Videos</a></li>
</ul></li>
<li><a href="https://github.com/mikeizbicki/ucr-cs100">CS 100</a>
<strong>Open Source Software Construction</strong> <em>UC Riverside</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This is a course on how to be a hacker. Your first four homework
assignments walk you through the process of building your own unix
shell. Youll be developing it as an open source project, and you will
collaborate with each other at various points.</li>
<li><a href="https://github.com/mikeizbicki/ucr-cs100">Github
Page</a></li>
<li><a
href="https://github.com/mikeizbicki/ucr-cs100/tree/2015winter/assignments">Assignments</a></li>
</ul></li>
<li><a
href="http://web.stanford.edu/class/archive/cs/cs108/cs108.1092/">CS
108</a> <strong>Object Oriented System Design</strong> <em>Stanford</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Software design and construction in the context of large OOP
libraries. Taught in Java. Topics: OOP design, design patterns, testing,
graphical user interface (GUI) OOP libraries, software engineering
strategies, approaches to programming in teams.</li>
</ul></li>
<li><a href="https://inst.eecs.berkeley.edu/~cs168/fa15/">CS 168</a>
<strong>Computer Networks</strong> <em>UC
Berkeley</em><img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This is an undergraduate level course covering the fundamental
concepts of networking as embodied in the Internet. The course will
cover a wide range of topics; see the lecture schedule for more details.
While the class has a textbook, we will not follow its order of
presentation but will instead use the text as a reference when covering
each individual topic. The course will also have several projects that
involve programming (in Python).</li>
<li>You should know programming, data structures, and software
engineering. In terms of mathematics, your algebra should be very solid,
you need to know basic probability, and you should be comfortable with
thinking abstractly. The TAs will spend very little time reviewing
material that is not specific to networking. We assume that you either
know the material covered in those courses, or are willing to learn the
material as necessary. We wont cover any of this material in
lecture.</li>
</ul></li>
<li><a href="http://web.stanford.edu/class/cs193a/lectures.shtml">CS
193a</a> <strong>Android App Development, Spring 2016</strong>
<em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Course Description: This course provides an introduction to
developing applications for the Android mobile platform.</li>
<li>Prerequisite: CS 106B or equivalent. Java experience highly
recommended. OOP highly recommmended.</li>
<li>Devices: Access to an Android phone and/or tablet recommended but
not required.</li>
<li>Videos: Videos list can be found <a
href="http://web.stanford.edu/class/cs193a/videos.shtml">here</a></li>
<li>Other materials: Some codes, handsout, homework ….. and lecture
notes are not downloadable on the site due to login requirement. Please
head to my Github repo <a
href="https://github.com/VoLuong/Materials-CS193A-Android-App-Development-Standford">here</a>
to download them.</li>
</ul></li>
<li><a
href="https://itunes.apple.com/us/course/developing-ios-7-apps-for/id733644550">CS
193p</a> <strong>Developing Applications for iOS</strong> <em>Stanford
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Updated for iOS 7. Tools and APIs required to build applications for
the iPhone and iPad platform using the iOS SDK. User interface designs
for mobile devices and unique user interactions using multi-touch
technologies. Object-oriented design using model-view-controller
paradigm, memory management, Objective-C programming language. Other
topics include: object-oriented database API, animation, multi-threading
and performance considerations.</li>
<li>Prerequisites: C language and object-oriented programming
experience</li>
<li>Recommended: <a
href="https://itunes.apple.com/us/course/programming-abstractions/id495054099">Programming
Abstractions</a></li>
<li><a
href="https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099">Updated
courses for iOS8 - Swift</a></li>
<li><a
href="https://itunes.apple.com/us/course/developing-ios-9-apps-swift/id1104579961">Updated
courses for iOS9 - Swift</a></li>
</ul></li>
<li><a href="https://see.stanford.edu/Course/CS223A">CS 223A</a>
<strong>Introduction to Robotics</strong> <em>Stanford University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>The purpose of this course is to introduce you to basics of
modeling, design, planning, and control of robot systems. In essence,
the material treated in this course is a brief survey of relevant
results from geometry, kinematics, statics, dynamics, and control.</li>
</ul></li>
<li><a href="http://www.cs.berkeley.edu/~brewer/cs262/">CS 262a</a>
<strong>Advanced Topics in Computer Systems</strong> <em>UC
Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS262a is the first semester of a year-long sequence on computer
systems research, including operating systems, database systems, and
Internet infrastructure systems. The goal of the course is to cover a
broad array of research topics in computer systems, and to engage you in
top-flight systems research. The first semester is devoted to basic
thematic issues and underlying techniques in computer systems, while the
second semester goes deeper into topics related to scalable, parallel
and distributed systems. The class is based on a discussion of important
research papers and a research project.<br />
</li>
<li><strong>Parts</strong>: Some Classics, Persistent Storage,
Concurrency, Higher-Level Models, Virtual Machines, Cloud Computing,
Parallel and Distributed Computing, Potpourri.<br />
</li>
<li>Prerequisites: The historical prerequisite was to pass an entrance
exam in class, which covered undergraduate operating systems material
(similar to <a href="https://cs162.eecs.berkeley.edu/">UCBs CS162</a>).
There is no longer an exam. However, if you have not already taken a
decent undergrad OS class, you should talk with me before taking this
class. The exam had the benefit of “paging in” the undergrad material,
which may have been its primary value (since the pass rate was
high).</li>
<li><a href="http://www.cs.berkeley.edu/~brewer/cs262/">Readings &amp;
Lectures</a></li>
</ul></li>
<li><a href="http://inst.eecs.berkeley.edu/~cs294-101/sp15/">CS 294</a>
<strong>Cutting-edge Web Technologies</strong> <em>Berkeley</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Want to learn what makes future web technologies tick? Join us for
the class where we will dive into the internals of many of the newest
web technologies, analyze and dissect them. We will conduct survey
lectures to provide the background and overview of the area as well as
invite guest lecturers from various leading projects to present their
technologies.</li>
</ul></li>
<li><a
href="http://video.bilkent.edu.tr/course_videos.php?courseid=10">CS
411</a> <strong>Software Architecture Design</strong> <em>Bilkent
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<ul>
<li>This course teaches the basic concepts, methods and techniques for
designing software architectures. The topics include: rationale for
software architecture design, modeling software architecture design,
architectural styles/patterns, architectural requirements analysis,
comparison and evaluation of architecture design methods,
synthesis-based software architecture design, software product-line
architectures, domain modeling, domain engineering and application
engineering, software architecture implementation, evaluating software
architecture designs.</li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS3152/2014sp/">CS
3152</a> <strong>Introduction to Computer Game Development</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>A project-based course in which programmers and designers
collaborate to make a computer game. This course investigates the theory
and practice of developing computer games from a blend of technical,
aesthetic, and cultural perspectives. Technical aspects of game
architecture include software engineering, artificial intelligence, game
physics, computer graphics, and networking. Aesthetic and cultural
include art and modeling, sound and music, game balance, and player
experience.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3152/2014sp/about/faq.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3152/2014sp/lectures/index.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS3152/2014sp/assignments/index.php">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS4152/2014sp/">CS
4152</a> <strong>Advanced Topics in Computer Game Development</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Project-based follow-up course to CS/INFO 3152. Students work in a
multidisciplinary team to develop a game that incorporates innovative
game technology. Advanced topics include 3D game development, mobile
platforms, multiplayer gaming, and nontraditional input devices. There
is a special emphasis on developing games that can be submitted to
festivals and competitions, or that can be commercialized.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4152/2014sp/about/faq.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4152/2014sp/sessions/index.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4152/2014sp/assignments/index.php">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS4154/2014fa/">CS
4154</a> <strong>Analytics-driven Game Design</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>A project-based course in which programmers and designers
collaborate to design, implement, and release a video game online
through popular game portals. In this course, students will use the
internet to gather data anonymously from players. Students will analyze
this data in order to improve their game over multiple iterations.
Technical aspects of this course include programming, database
architecture, and statistical analysis.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4154/2014fa/about/faq.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4154/2014fa/lectures/index.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4154/2014fa/assignments/index.php">Assignments</a></li>
</ul></li>
<li><a
href="https://courses.cit.cornell.edu/physics4481-7681_2018fa/">CS
4812</a> <strong>Quantum Information Processing</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Hardware that exploits quantum phenomena can dramatically alter the
nature of computation. Though constructing a working quantum computer is
a formidable technological challenge, there has been much recent
experimental progress. In addition, the theory of quantum computation is
of interest in itself, offering strikingly different perspectives on the
nature of computation and information, as well as providing novel
insights into the conceptual puzzles posed by the quantum theory. The
course is intended both for physicists, unfamiliar with computational
complexity theory or cryptography, and also for computer scientists and
mathematicians, unfamiliar with quantum mechanics. The prerequisites are
familiarity (and comfort) with finite dimensional vector spaces over the
complex numbers, some standard group theory, and ability to count in
binary.</li>
<li><a
href="https://courses.cit.cornell.edu/physics4481-7681_2018fa/">Syllabus</a></li>
<li><a
href="https://courses.cit.cornell.edu/physics4481-7681_2018fa/">Lectures</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS4860/2012fa/">CS
4860</a> <strong>Applied Logic</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>In addition to basic first-order logic, when taught by Computer
Science this course involves elements of Formal Methods and Automated
Reasoning. Formal Methods is concerned with proving properties of
algorithms, specifying programming tasks and synthesizing programs from
proofs. We will use formal methods tools such as interactive proof
assistants (see <a href="http://www.nuprl.org">www.nuprl.org</a>). We
will also spend two weeks on constructive type theory, the language used
by the Coq and Nuprl proof assistants.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4860/2012fa/schedule.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4860/2012fa/schedule.php">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS4860/2012fa/schedule.php">Assignments</a></li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS5150/2014fa/overview.html">CS
5150</a> <strong>Software Engineering</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Introduction to the practical problems of specifying, designing,
building, testing, and delivering reliable software systems</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS5150/2014fa/materials.html">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS5150/2014fa/assignments.html">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/~bindel/class/cs5220-f11/">CS
5220</a> <strong>Applications of Parallel Computers</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>How do we solve the large-scale problems of science quickly on
modern computers? How do we measure the performance of new or existing
simulation codes, and what things can we do to make them run faster? How
can we best take advantage of features like multicore processors, vector
units, and graphics co-processors? These are the types of questions we
will address in CS 5220, Applications of Parallel Computers. Topics
include:
<ul>
<li>Single-processor architecture, caches, and serial performance
tuning</li>
<li>Basics of parallel machine organization</li>
<li>Distributed memory programming with MPI</li>
<li>Shared memory programming with OpenMP</li>
<li>Parallel patterns: data partitioning, synchronization, and load
balancing</li>
<li>Examples of parallel numerical algorithms</li>
<li>Applications from science and engineering</li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/~bindel/class/cs5220-f11/lectures.html">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/~bindel/class/cs5220-f11/assignments.html">Assignments</a></li>
</ul></li>
<li><a href="https://sites.google.com/site/cs5540sp2013/">CS 5540</a>
<strong>Computational Techniques for Analyzing Clinical Data</strong>
<em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>CS5540 is a masters-level course that covers a wide range of
clinical problems and their associated computational challenges. The
practice of medicine is filled with digitally accessible information
about patients, ranging from EKG readings to MRI images to electronic
health records. This poses a huge opportunity for computer tools that
make sense out of this data. Computation tools can be used to answer
seemingly straightforward questions about a single patients test
results (“Does this patient have a normal heart rhythm?”), or to address
vital questions about large populations (“Is there any clinical
condition that affects the risks of Alzheimer”). In CS5540 we will look
at many of the most important sources of clinical data and discuss the
basic computational techniques used for their analysis, ranging in
sophistication from current clinical practice to state-of-the-art
research projects.</li>
<li><a
href="https://sites.google.com/site/cs5540sp2013/home/course-description">Syllabus</a></li>
<li><a
href="https://sites.google.com/site/cs5540sp2013/lectures">Lectures</a></li>
<li><a
href="https://sites.google.com/site/cs5540sp2013/assignments">Assignments</a></li>
</ul></li>
<li><a href="http://courses2.cit.cornell.edu/cs5724/">CS 5724</a>
<strong>Evolutionary Computation</strong> <em>Cornell University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course will cover advanced topics in evolutionary algorithms
and their application to open-ended computational design. The field of
evolutionary computation tries to address large-scale optimization and
planning problems through stochastic population-based methods. It draws
inspiration from evolutionary processes in nature and in engineering,
and also serves as abstract models for these phenomena. Evolutionary
processes are generally weak methods that require little information
about the problem domain and hence can be applied across a wide variety
of applications. They are especially useful for open-ended problem
domains for which little formal knowledge exists and the number of
parameters is undefined, such as for the general engineering design
process. This course will provide insight to a variety of evolutionary
computation paradigms, such as genetic algorithms, genetic programming,
and evolutionary strategies, as well as governing dynamics of
co-evolution, arms races and mediocre stable states. New methods
involving symbiosis models and pattern recognition will also be
presented. The material will be intertwined with discussions of
representations and results for design problems in a variety of problem
domains including software, electronics, and mechanics.</li>
<li><a href="http://courses2.cit.cornell.edu/cs5724/">Syllabus</a></li>
<li><a
href="http://courses2.cit.cornell.edu/cs5724/schedule.htm">Lectures</a></li>
<li><a
href="http://courses2.cit.cornell.edu/cs5724/">Assignments</a></li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6452/2012sp/index.php">CS
6452</a> <strong>Datacenter Networks and Services</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>CS6452 focuses on datacenter networks and services. The emerging
demand for web services and cloud computing have created need for large
scale data centers. The hardware and software infrastructure for
datacenters critically determines the functionality, performance, cost
and failure tolerance of applications running on that datacenter. This
course will examine design alternatives for both the hardware
(networking) infrastructure, and the software infrastructure for
datacenters.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6452/2012sp/lectures.php">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6452/2012sp/lectures.php">Lectures</a></li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6630/2012sp/about.stm">CS
6630</a> <strong>Realistic Image Synthesis</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>CS6630 is an introduction to physics-based rendering at the graduate
level. Starting from the fundamentals of light transport we will look at
formulations of the Rendering Equation, and a series of Monte Carlo
methods, from sequential sampling to multiple importance sampling to
Markov Chains, for solving the equation to make pictures. Well look at
light reflection from surfaces and scattering in volumes, illumination
from luminaries and environments, and diffusion models for translucent
materials. We will build working implementations of many of the
algorithms we study, and learn how to make sure they are actually
working correctly. Its fun to watch integrals and probability
distributions transform into photographs of a slightly too perfect
synthetic world.</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6630/2012sp/about.stm">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6630/2012sp/schedule.stm">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6630/2012sp/schedule.stm">Assignments</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6630/2012sp/schedule.stm">Readings</a></li>
</ul></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6640/2012fa/index.shtml#">CS
6640</a> <strong>Computational Photography</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>A course on the emerging applications of computation in photography.
Likely topics include digital photography, unconventional cameras and
optics, light field cameras, image processing for photography,
techniques for combining multiple images, advanced image editing
algorithms, and projector-camera
systems.cornell.edu/courses/CS6630/2012sp/about.stm)</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6640/2012fa/index.shtml#schedule">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6640/2012fa/index.shtml#hw">Assignments</a></li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS6650/2013fa/">CS
6650</a> <strong>Computational Motion</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Covers computational aspects of motion, broadly construed. Topics
include the computer representation, modeling, analysis, and simulation
of motion, and its relationship to various areas, including
computational geometry, mesh generation, physical simulation, computer
animation, robotics, biology, computer vision, acoustics, and
spatio-temporal databases. Students implement several of the algorithms
covered in the course and complete a final project. This offering will
also explore the special role of motion processing in physically based
sound rendering.</li>
</ul></li>
<li><a href="http://www.cs.cornell.edu/courses/CS6840/2014sp/">CS
6840</a> <strong>Algorithmic Game Theory</strong> <em>Cornell
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments"/>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Algorithmic Game Theory combines algorithmic thinking with
game-theoretic, or, more generally, economic concepts. The course will
study a range of topics at this interface</li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6840/2014sp/">Syllabus</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6840/2014sp/">Lectures</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6840/2014sp/">Assignments</a></li>
<li><a
href="http://www.cs.cornell.edu/courses/CS6840/2014sp/">Readings</a></li>
</ul></li>
<li><a href="http://courses.cs.washington.edu/courses/cse154/14au/">CSE
154</a> <strong>Web Programming</strong> <em>University of
Washington</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course is an introduction to programming for the World Wide
Web. Covers use of HTML, CSS, PHP, JavaScript, AJAX, and SQL.</li>
<li><a
href="http://courses.cs.washington.edu/courses/cse154/14au/lectures.shtml#today">Lectures</a></li>
<li><a
href="http://courses.cs.washington.edu/courses/cse154/14au/homework.shtml">Assignments</a></li>
</ul></li>
<li><a href="http://ucsb-bren.github.io/esm296-4f/">ESM 296-4F</a>
<strong>GIS &amp; Spatial Analysis</strong> <em>UC Santa Barbara</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Taught by <a
href="http://www.bren.ucsb.edu/people/Faculty/james_frew.htm">James
Frew</a>, <a href="http://mgel.env.duke.edu/people/ben-best/">Ben
Best</a>, and <a
href="http://www.centerforoceansolutions.org/team/lisa-wedding">Lisa
Wedding</a></li>
<li>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</li>
<li><a href="http://ucsb-bren.github.io/esm296-4f/">GitHub</a> (includes
lecture materials and labs)</li>
</ul></li>
<li><a href="http://philipmjohnson.github.io/ics314f13/">ICS 314</a>
<strong>Software Engineering</strong> <em>University of Hawaii</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<ul>
<li>Taught by <a href="http://philipmjohnson.org/">Philip
Johnson</a></li>
<li>Introduction to software engineering using the <a
href="http://philipmjohnson.org/essays/ase-initial-results.html">“Athletic
Software Engineering” pedagogy</a></li>
<li><a
href="http://philipmjohnson.github.io/ics314f13/readings/">Readings</a></li>
<li><a
href="http://philipmjohnson.github.io/ics314f13/experiences/">Experiences</a></li>
<li><a
href="http://philipmjohnson.github.io/ics314f13/assessments/">Assessments</a></li>
</ul></li>
<li><a href="http://hfoss-fossrit.rhcloud.com">IGME 582</a>
<strong>Humanitarian Free &amp; Open Source Software
Development</strong> <em>Rochester Institute of Technology</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This course provides students with exposure to the design, creation
and production of Open Source Software projects. Students will be
introduced to the historic intersections of technology and intellectual
property rights and will become familiar with Open Source development
processes, tools and practices.</li>
</ul></li>
<li><a href="http://www.informatics.indiana.edu/rocha/i-bic/">I485 /
H400</a> <strong>Biologically Inspired Computation</strong> <em>Indiana
University</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>Course taught by <a
href="http://www.informatics.indiana.edu/rocha/lr_form.html">Luis
Rocha</a> about the multi-disciplinary field algorithms inspired by
naturally occurring phenomenon. This course provides introduces the
following areas: L-systems, Cellular Automata, Emergence, Genetic
Algorithms, Swarm Intelligence and Artificial Immune Systems. Its aim
is to cover the fundamentals and enable readers to build up a
proficiency in applying various algorithms to real-world problems.</li>
<li><a
href="http://www.informatics.indiana.edu/rocha/i-bic/#materials">Lectures</a></li>
<li><a
href="http://www.informatics.indiana.edu/rocha/i-bic/#labs">Assignments</a></li>
</ul></li>
<li><a href="http://www.schneems.com/ut-rails/">Open Sourced Elective:
Database and Rails</a> <strong>Intro to Ruby on Rails</strong>
<em>University of Texas</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>An introductory course in Ruby on Rails open sourced by University
of Texas CS Adjunct Professor, Richard Schneeman.</li>
<li><a href="http://www.schneems.com/ut-rails/">Lectures</a></li>
<li><a href="http://www.schneems.com/ut-rails/">Assignments</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PL7A85FD7803A8CB1F">Videos</a></li>
</ul></li>
<li><a
href="http://mlecture.uni-bremen.de/ml/index.php?option=com_content&amp;view=article&amp;id=233">SCICOMP</a>
<strong>An Introduction to Efficient Scientific Computation</strong>
<em>Universität Bremen</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<ul>
<li>This is a graduate course in scientific computing created and taught
by <a href="http://colorfulengineering.org/">Oliver Serang</a> in 2014,
which covers topics in computer science and statistics with applications
from biology. The course is designed top-down, starting with a problem
and then deriving a variety of solutions from scratch.</li>
<li>Topics include memoization, recurrence closed forms, string matching
(sorting, hash tables, radix tries, and suffix tries), dynamic
programming (e.g. Smith-Waterman and Needleman-Wunsch), Bayesian
statistics (e.g. the envelope paradox), graphical models (HMMs, Viterbi,
junction tree, belief propagation), FFT, and the probabilistic
convolution tree.</li>
<li><a href="https://www.youtube.com/user/fillwithlight/videos">Lecture
videos on Youtube</a> and for direct <a
href="http://mlecture.uni-bremen.de/ml/index.php?option=com_content&amp;view=article&amp;id=233">download</a></li>
</ul></li>
<li><a href="http://www.ini740.rocks/F20">14-740</a>
<strong>Fundamentals of Computer Networks</strong> <em>CMU</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4f9.png" width="20" height="20" alt="Lecture Videos" title="Lecture Videos" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4da.png" width="20" height="20" alt="Readings" title="Readings" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" />
<ul>
<li>This is an introductory course on Networking for graduate students.
It follows a top-down approach to teaching Computer Networks, so it
starts with the Application layer which most of the students are
familiar with and as the course unravels we learn more about transport,
network and link layers of the protocol stack.</li>
<li>As far as prerequisites are concerned - basic computer, programming
and probability theory background is required.</li>
<li>The course site contains links to the lecture videos, reading
material and assignments.</li>
</ul></li>
</ul>
<hr />
<h3 id="statistics">Statistics</h3>
<ul>
<li><p><a href="https://andrewpbray.github.io/reg/index.html">STAT
340</a> <strong>Applied Regression Methods</strong> <em>Smith
College</em>
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" width="20" height="20" alt="Assignments" title="Assignments" />
<img src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" width="20" height="20" alt="Lecture Notes" title="Lecture Notes" /></p></li>
<li><p>This course covers the beautiful and useful tool of regression,
which is the central technique of statistical modeling. By the end of
this course you will be able to:</p>
<ul>
<li>Discern research questions and data that are well-suited to
regression analysis.</li>
<li>Conduct thorough exploratory data analysis of data in multiple
dimensions.</li>
<li>Understand the mathematical foundations of regression.</li>
<li>Perform regression analysis in a modern computing environment.</li>
<li>Interpret your model and communicate what it implies.</li>
</ul></li>
<li><p><a
href="https://andrewpbray.github.io/reg/syllabus.html">Syllabus</a></p></li>
<li><p><a href="https://andrewpbray.github.io/reg/index.html">Lecture
Notes</a></p></li>
</ul>