Skip to content
54

Awesome CS Courses

:books: List of awesome university courses for learning Computer Science!

71k stars8,450 forks546 entriesLast push May 4, 2023 (3 years ago)License none

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Courses >Systems

CS 61C

Great Ideas in Computer Architecture (Machine Structures) UC Berkeley; 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,…

Lecture Videos

Old Exams

CS 107

Computer Organization & Systems Stanford University; CS107 is the third course in Stanford's introductory programming sequence. The course will work from the C programming language down to the microprocessor to de-mystify the machine. With a complete understanding of how computer systems execute…

Lecture Videos

Assignments

CS 140

Operating Systems Stanford University; 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…

Assignments

6.004

Computation Structures MIT; 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…

Youtube Playlist

Lecture Notes

Labs-Assignments

CS 162

Operating Systems and Systems Programming UC Berkeley; 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…

Lecture Videos

Spring 2015 lectures

Lecture Notes

Spring 2015 lectures

CS 168

Introduction to the Internet: Architecture and Protocols UC Berkeley; This course is an introduction to the Internet architecture. We will focus on the concepts and fundamental design principles that have contributed to the Internet's scalability and robustness and survey the various protocols and…

Lecture Notes & Assignments

CS 179

GPU Programming Caltech; This course will cover programming techniques for the GPU. The course will introduce NVIDIA's parallel computing language, CUDA. Beyond covering the CUDA programming model and syntax, the course will also discuss GPU architecture, high performance computing on GPUs,…

CS 186

Introduction to Database Systems UC Berkeley; 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…

Lecture Videos

Lecture Notes

Projects

CS 241

Systems Programming (Spring 2016) Univ of Illinois, Urbana-Champaign; 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…

Assignments

Labs

Github Page

Crowd Sourced Book

CS 425

Distributed Systems Univ of Illinois, Urbana-Champaign; Brilliant set of lectures and reading material covering fundamental concepts in distributed systems such as Vector clocks, Consensus and Paxos. This is the 2016 version by Prof Indranil Gupta.

Lectures

Assignments

CS 452

Real-Time Programming University of Waterloo; 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…

Assignments

Lecture notes

CS 2043

Unix Tools & Scripting Cornell University; 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,…

CS 3410

Computer System Organization and Programming Cornell University; 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…

Lectures

CS 4410

Operating Systems Cornell University; 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.…

Syllabus

Lectures

CS 4414

Operating Systems University of Virginia; 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…

Syllabus

Lectures

CS 5412

Cloud Computing Cornell University; Taught by one of the stalwarts of this field, Prof Ken Birman, this course has a fantastic set of slides that one can go through. The Prof's book is also a gem and recommended as a must read in Google's tutorial on Distributed System Design

Slides

CSCE 3613

Operating Systems University of Arkansas (Fayetteville) - An introduction to operating systems including topics in system structures, process management, storage management, files, distributed systems, and case studies.

Syllabus

Assignments

Lecture Notes

Readings

CSCI-UA.0202: Operating Systems (Undergrad)

Operating Systems NYU; NYU's operating system course. It's a fundamental course focusing basic ideas of operating systems, including memory management, process scheduling, file system, ect. It also includes some recommended reading materials. What's more, there are a series of hands-on lab…

Assignments

Lectures

Old Exams

CSCI 360

Computer Architecture 3 CUNY Hunter College; A course that covers cache design, buses, memory hierarchies, processor-peripheral interfaces, and multiprocessors, including GPUs.

CSCI 493.66

UNIX System Programming (formerly UNIX Tools) CUNY Hunter College; A course that is mostly about writing programs against the UNIX API, covering all of the basic parts of the kernel interface and libraries, including files, processes, terminal control, signals, and threading.

CSCI 493.75

Parallel Computing CUNY Hunter College; 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…

Hack the Kernel

Introduction to Operating Systems SUNY University at Buffalo, NY; 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…

Syllabus

Slides

Video lectures

Assignments

Old Exams

ECE 459

Programming for Performance University of Waterloo; 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,…

Lecture slides

ECGR4101/5101

Embedded Systems using the Renesas RX63N Processor University of North Carolina at Charlotte; 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…

Lecture Videos

PODC

Principles of Distributed Computing ETH-Zurich; Explore essential algorithmic ideas and lower bound techniques, basically the "pearls" of distributed computing in an easy-to-read set of lecture notes, combined with complete exercises and solutions.

Book

SPAC

Parallelism and Concurrency Univ of Washington; Technically not a course nevertheless an awesome collection of materials used by Prof Dan Grossman to teach parallelism and concurrency concepts to sophomores at UWash

6.824

Distributed Systems MIT; MIT's graduate-level DS course with a focus on fault tolerance, replication, and consistency, all taught via awesome lab assignments in Golang!

Assignments

Just do git clone git://g.csail.mit.edu/6.824-golabs-2014 6.824

Readings

6.828

Operating Systems MIT; MIT's operating systems course focusing on the fundamentals of OS design including booting, memory management, environments, file systems, multitasking, and more. In a series of lab assignments, you will build JOS, an OS exokernel written in C.

Assignments

Lectures

Videos

Note: These are student recorded cam videos of the 2011 course. The videos explain a lot of concepts required for the labs and assignments.

CSEP 552

Distributed Systems University of Washington; 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…

Lectures

of a previous session are available to watch.

15-213

Introduction to Computer Systems (ICS) Carnegie-Mellon University; The ICS course provides a programmer's 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,…

Lecture Notes

Videos

Assignments

15-319/619

Cloud Computing (ICS) Carnegie-Mellon University; 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),…

15-410

Operating System Design and Implementation Carnegie-Mellon University; 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…

In 2 lists

Lecture Notes

Assignments

15-418

Parallel Computer Architecture and Programming Carnegie-Mellon University; 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…

Assignments

Lecture Notes

15-440

Distributed Systems Carnegie-Mellon University; Introduction to distributed systems with a focus on teaching concepts via projects implemented in the Go programming language.

Assignments

15-721

Database Systems Carnegie-Mellon University; 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…

Assignments

Lecture Videos

Readings

15-445/645

Database Systems Carnegie-Mellon University; This course covers fundamental topics of DBMS, compared to CMU 15-721.

Assignments

Lecture Videos

Readings

15-749

Engineering Distributed Systems Carnegie-Mellon University; A project focused course on Distributed Systems with an awesome list of readings

Readings

18-447

Introduction to Computer Architecture CMU; Very comprehensive material on Computer Architecture - definitely more than just "introduction". Online material is very user-friendly, even the recitation videos available online. This is the Spring'15 version by Prof. Onur Mutlu

Lectures and Recitation

Homeworks

7 HWs with answer set as well

Readings

Courses >Programming Languages / Compilers

CS 75

Principles of Compiler Design Swathmore College; Modelled after the influential paper on incremental approach to compiler design, this course teaches how to build a compiler in OCaml

Course on Github

Notes

CS 91

Introduction to Programming Languages Swathmore College; Uses the Pyret programming language & PAPL book to understand the fundamentals of programming languages.

Labs

CIS 194

Introduction to Haskell Penn Engineering; Explore the joys of functional programming, using Haskell as a vehicle. The aim of the course will be to allow you to use Haskell to easily and conveniently write practical programs.

Previous

semester also available, with more exercises

CIS 198

Rust Programming UPenn; 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); Rust’s rich macro system; closures; and concurrency.

In 2 lists

Assignments

CMSC 430

Introduction to Compilers Univ of Maryland; 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…

Lecture Notes

Assignments

Corsopl

Principles of Programming Languages Politecnico di Milano - Lecture Notes - 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…

COS 326

Functional Programming Princeton University; Covers functional programming concepts like closures, tail-call recursion & parallelism using the OCaml programming language

Lectures

Assignments

CS 143

Compiler construction Stanford University; CS143 is a Stanford's course in the practical and theoretical aspects of compiler construction.

In 2 lists

Syllabus

CS143 - 2011

CS 164

Hack your language! UC Berkeley; Introduction to programming languages by designing and implementing domain-specific languages.

Lecture Videos

Code for Assignments

CS 173

Programming Languages Brown University; Course by Prof. Krishnamurthi (author of HtDP) and numerous other awesome books on programming languages. Uses a custom designed Pyret programming language to teach the concepts. There was an online class hosted in 2012, which includes all lecture videos for…

Videos

Assignments

CS 223

Purely Functional Data Structures In Elm University of Chicago; This course teaches functional reactive programming and purely functional data structures based on Chris Okazaki's book and using the Elm programming language.

Lectures

CS 240h

Functional Systems in Haskell Stanford University; Building software systems in Haskell; 3 Assignments: Lab1, Lab2, Lab3

In 2 lists

Lecture Slides

CS 421

Programming Languages and Compilers Univ of Illinois, Urbana-Champaign Course that uses OCaml to teach functional programming and programming language design.

In 2 lists

Lectures

Videos

Assignments

Exams

CS 3110

Data Structures and Functional Programming Cornell University; Another course that uses OCaml to teach alternative programming paradigms, especially functional and concurrent programming.

In 2 lists

Lecture Slides

Assignments

CS 4120

Introduction to Compilers Cornell University; 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…

Syllabus

Lectures

Assignments

CS 4400

Programming Languages Northeastern University; 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…

Syllabus

Lecture Notes/Resources

CS 4610

Programming Languages and Compilers University of Virginia; 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…

Lecture Notes

Assignments

CS 5114

Network Programming Languages Cornell University; 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,…

Syllabus

CS 5142

Scripting Languages Cornell University; 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,…

CS 5470

Compilers University of Utah; If you're a fan of Prof Matt's writing on his fantastic blog 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 Prof's…

Lecture Notes

CS 6118

Types and Semantics Cornell University; 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…

CSC 253

CPython internals: A ten-hour codewalk through the Python interpreter source code University of Rochester; Nine lectures walking through the internals of CPython, the canonical Python interpreter implemented in C. They were from the Dynamic Languages and Software Development course taught in Fall…

CSE 341

Programming Languages University of Washington; Covers non-imperative paradigms and languages such as Ruby, Racket, and ML and the fundamentals of programming languages.

Lectures and Videos

CSE P 501

Compiler Construction University of Washington; 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…

Assignments, Tests, and Solutions

DMFP

Discrete Mathematics and Functional Programming Wheaton College; A course that teaches discrete maths concepts with functional programming

Assignments

PCPP

Practical Concurrent and Parallel Programming IT University of Copenhagen; 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,…

6.945

Adventures in Advanced Symbolic Programming MIT; 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,…

Assignments

Extensive programming assignments, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or other "functional" language.

Readings

CS 696

Functional Design and Programming San Diego State University; Covers functional programming basis using Clojure.; Topics include testing, functional programming, immutable collections and concurrency.; Also includes assignments covering Clojurescript, [Reagent](Reagent Github) etc.

L28

Advanced Functional Programming University of Cambridge; 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…

Courses >Algorithms

CS 61B

Data Structures UC Berkeley; In this course, you will study advanced programming techniques including data structures, encapsulation, abstract data types, interfaces, and algorithms for sorting and searching, and you will get a taste of “software engineering”—the design and implementation of large…

In 2 lists

Labs

The link to labs and projects is included in the website.

Lecture Videos

CS 97SI

Introduction to Competitive Programming Stanford University; Fantastic repository of theory and practice problems across various topics for students who are interested to participate in ACM-ICPC.

In 2 lists

Lectures and Assignments

Stanford Notebook provides printable templates usable during online/on-site contests.

In 2 lists

CS 224

Advanced Algorithms Harvard University; 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,…

Lecture Videos

(Youtube)

Assignments

CS 261

A Second Course in Algorithms Stanford University; 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…

CS 473/573

Fundamental Algorithms Univ of Illinois, Urbana-Champaign; 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!

In 3 lists

Lecture Notes

Labs and Exams

CS 2150

Program & Data Representation University of Virginia; This data structures course introduces C++, linked-lists, stacks, queues, trees, numerical representation, hash tables, priority queues, heaps, huffman coding, graphs, and x86 assembly.

Lectures

Assignments

CS 4820

Introduction to Analysis of Algorithms Cornell University; 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…

Lectures

Syllabus

CSCI 104

Data Structures and Object Oriented Design University of Southern California (USC)

Labs

Assignments

Additional Resources

CSCI 135

Software Design and Analysis I CUNY Hunter College; 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…

Lectures and Assignments

CSCI 235

Software Design and Analysis II CUNY Hunter College; 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…

Lectures and Assignments

CSCI 335

Software Design and Analysis III CUNY Hunter College; 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…

Lectures and Assignments

CSE 331

Software Design and Implementation University of Washington; 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.

CSE 373

Analysis of Algorithms Stony Brook University; Prof Steven Skiena's no stranger to any student when it comes to algorithms. His seminal book has been touted by many to be best for getting that job in Google. In addition, he's also well-known for tutoring students in competitive programming…

Lecture Videos

ECS 122A

Algorithm Design and Analysis UC Davis; Taught by Dan Gusfield 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…

Syllabus

Lecture Videos

ECS 222A

Graduate Level Algorithm Design and Analysis UC Davis; This is the graduate level complement to the ECS 122A undergraduate algorithms course by Dan Gusfield in 2011. It assumes an undergrad course has already been taken in algorithms, and, while going over some undergraduate algorithms topics,…

Lecture Videos

Syllabus

6.INT

Hacking a Google Interview MIT; 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,…

Handouts

Topics Covered

6.006

Introduction to Algorithms MIT; 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…

Lecture Videos

Assignments

Readings

Resources

Old Exams

6.046J/18.410J

Design and Analysis of Algorithms MIT; 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…

Lecture Videos

Lecture Notes

Assignments

Resources

Old Exams

6.851

Advanced Data Structures MIT; This is an advanced DS course, you must be done with the Advanced Algorithms course before attempting this one.

Lectures

Contains videos from sp2012 version, but there isn't much difference.

Assignments

contains the calendar as well.

6.854/18.415J

Advanced Algorithms MIT; 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.;…

6.854J/18.415J

Advanced Algorithms MIT; 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…

Lecture Videos - Spring 2016

Lecture Notes

Assignments

Readings

Resources

15-451/651

Algorithms Carnegie Mellon University; 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 Manuel Blum who has a Turing Award due to his contributions to…

In 2 lists

16s-4102

Algorithms University of Virginia

Courses >CS Theory

CIS 500

Software Foundations University of Pennsylvania; 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.

Textbook

CS 103

Mathematical Foundations of Computing Stanford University; CS103 is a first course in discrete math, computability theory, and complexity theory. In this course, we'll probe the limits of computer power, explore why some problems are harder to solve than others, and see how to reason with…

In 2 lists

CS 173

Discrete Structures Univ of Illinois Urbana-Champaign; 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…

Textbook

Written by the professor. Includes Instructor's Guide.

Assignments

Exams

CS 276

Foundations of Cryptography UC Berkeley; 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.

CS 278

Complexity Theory UC Berkeley; 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.

CS 374

Algorithms & Models of Computation (Fall 2014) University of Illinois Urbana-Champaign; 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,…

Assignments/Exams

Lecture Notes/Labs

Lecture videos

CS 3110

Data Structures and Functional Programming Cornell University; 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…

Syllabus

Lectures

Assignments

CS 3220

Introduction to Scientific Computing Cornell University; 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…

Syllabus

Lectures

Assignments

CS 4300

Information Retrieval Cornell University; 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,…

Syllabus

Lectures

CS 4810

Introduction to Theory of Computing Cornell University; 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…

Syllabus

Lectures

Assignments

CS 6810

Theory of Computing Cornell University; 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).…

Syllabus

Lectures

Assignments

CSCE 3193

Programming Paradigms University of Arkansas (Fayetteville); 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.

Syllabus

Notes

Assignments

Practice Exams

6.045

Great Ideas in Theoretical Computer Science MIT; 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,…

Syllabus

Lecture Notes

🆓

In 2 lists

Lecture Videos

Courses >Introduction to CS

CS 10

The Beauty and Joy of Computing UC Berkeley; CS10 is UCB's 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…

Snap*!*

(based on Scratch by MIT).

Curriculum

CS 50

Introduction to Computer Science Harvard University; CS50x is Harvard College's 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.…

Lectures

CS 61A

Structure and Interpretation of Computer Programs [Python] UC Berkeley; 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,…

Lecture Videos

Lecture Resources by Type

Lecture Resources by Topic

Additional Resources

Practice Problems

Extra Lectures

CS 61AS

Structure & Interpretation of Computer Programs [Racket] UC Berkeley; 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,…

Lecture Videos

Assignments and Notes

CS 101

Computer Science 101 Stanford University; 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.; Lectures videos will available for…

CS 106A

Programming Methodology Stanford University; 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:…

All materials in a zip file

CS 106B

Programming Abstractions Stanford University; 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.

All materials in a zip file

CS 107

Programming Paradigms Stanford University; 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++)

CS 109

Programming Practice Using Scala KAIST; 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…

CS 1109

Fundamental Programming Concepts Cornell University; 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…

Syllabus

Lectures

CS 1110

Introduction to Computing Using Python Cornell University; 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…

Syllabus

Lectures

Assignments

CS 1112

Introduction to Computing Using Matlab Cornell University; 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…

Syllabus

Assignments

Projects

CS 1115

Introduction to Computational Science and Engineering Using Matlab Graphical User Interfaces Cornell University; Programming and problem solving using MATLAB. Emphasizes the systematic development of algorithms and programs. Topics include iteration, functions, arrays and vectors, strings,…

Syllabus

Lectures

Projects

CS 1130

Transition to OO Programming Cornell University; 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.

Syllabus

Lectures

Assignments

CS 1133

Transition to Python Cornell University; 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…

Syllabus

Lectures

Assignments

CS 1410-2

and CS2420-20 Computer Science I and II for Hackers University of Utah; An intro course in the spirit of SICP designed by Professor Matthew Flatt (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…

Lectures and Assignments 1

Lectures and Assignments 2

Textbook

Racket Language

CS 2110

Object-Oriented Programming and Data Structures Cornell University; 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…

Syllabus

Assignments

CS 4302

Web Information Systems Cornell University; 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…

Syllabus

Lectures

Assignments

CSCE 2004

Programming Foundations I University of Arkansas (Fayetteville); 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…

Syllabus

Notes

Assignments

CSCI E-1

Understanding Computers and the Internet Harvard University Extension College; This course is all about understanding: understanding what's 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…

Syllabus

Notes / Recaps

Assignments

CS-for-all

CS for All Harvey Mudd College; 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…

Lectures and Other resources

6.001

Structure and Interpretation of Computer Programs MIT; 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,…

Lectures

Textbook

(epub, pdf)

IDE

6.005

Software Construction, Fall 2016 MIT; 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…

In 2 lists

Courses >Machine Learning

DEEPNLP

Deep Learning for Natural Language Processing University of Oxford; 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…

Lectures

Lecture materials from Oxford's Deep Natural Language Processing course.

In 4 listsDetails

CS20si

Tensorflow for Deep Learning Research Stanford University; 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,…

In 2 lists

Assignments

available on Github.

In 2 lists

COMS 4771

Machine Learning Columbia University; Course taught by Tony Jebara 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…

Lectures and Assignments

CS 109

Data Science Harvard University; 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…

In 2 lists

Lectures

Slides

Labs and Assignments

2014 Lectures

2013 Lectures

(slightly better)

CS 156

Learning from Data Caltech; 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…

In 3 lists

Lectures

Homework

Textbook

CS 189

Introduction To Machine Learning UC Berkeley; Introductory ML course covering a wide range of topics: ranging from least squares to convolutional neural networks

CS 224d

Deep Learning for Natural Language Processing Stanford University; 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…

In 3 lists

Syllabus

by Stanford

In 4 lists

CS 229r

Algorithms for Big Data Harvard University; 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…

Lectures

(Youtube)

Assignments

CS 231n

Convolutional Neural Networks for Visual Recognition Stanford University; 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…

In 3 lists

Lecture Notes

🆓

In 2 lists

Lecture Videos

Github Page

CS 287

Advanced Robotics UC Berkeley; 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…

In 2 lists

CS 395T

Statistical and Discrete Methods for Scientific Computing University of Texas; 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…

Lectures and Assignments

CS 4780

Machine Learning Cornell University; 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…

CS 4786

Machine Learning for Data Science Cornell University; An introductory course in machine learning, with a focus on data modeling and related methods and learning algorithms for data sciences. Tentative topic list:; Dimensionality reduction, such as principal component analysis (PCA) and the…

Assignments

Lectures

CVX 101

Convex Optimization Stanford University; 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…

Textbook

Lectures and Assignments

DS-GA 1008

Deep Learning New York University; This increasingly popular course is taught through the Data Science Center at NYU. Originally introduced by Yann Lecun, it is now led by Zaid Harchaoui, although Prof. Lecun is rumored to still stop by from time to time. It covers the theory, technique, and…

Recorded Lectures

EECS E6893 & EECS E6895

Big Data Analytics & Advanced Big Data Analytics Columbia University; 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…

EECS E6894

Deep Learning for Computer Vision and Natural Language Processing Columbia University; 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…

Readings

Assignments

EE103

Introduction to Matrix Methods Stanford University; The course covers the basics of matrices and vectors, solving linear equations, least-squares methods, and many applications. It'll cover the mathematics, but the focus will be on using matrix methods in applications such as tomography, image…

In 2 lists

Lectures

Book

Assignments

Code

Fast.ai Introduction to Machine Learning for Coders

Fast.ai / University of San Francisco; 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…

In 2 lists

Lecture Videos

Lecture Notes

Jupyter Notebooks

Deep learning library providing practitioners with high-level components for state-of-the-art results. Built on PyTorch with a focus on usability and transfer learning. Apache 2.0 licensed.

In 6 listsDetails

Info 290

Analyzing Big Data with Twitter UC Berkeley school of information; 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 Twitter's data. Topics include applied natural language…

Lecture Videos

Previous Years coursepage

Machine Learning: 2014-2015

University of Oxford; The course focusses on neural networks and uses the Torch 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…

In 3 lists

Source code

StatLearning

Intro to Statistical Learning Stanford University; 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…

In 2 lists

10-601

Machine Learning Carnegie Mellon University; 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…

Lectures

Project Ideas and Datasets

10-708

Probabilistic Graphical Models Carnegie Mellon University; 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…

Lecture Videos

Assignments

11-785

Deep Learning Carnegie Mellon University; 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…

In 2 lists

CS246

Mining Massive Data Sets Stanford University; 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.

In 2 lists

Lecture Videos

by Jure Leskovec, Anand Rajaraman, and Jeff Ullman

In 2 lists

Assignments

CS276

Information Retrieval and Web Search Stanford University; 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;…

In 2 lists

Practical_RL

Reinforcement Learning in the Wild Yandex SDA; 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).

In 2 lists

UvA DEEP LEARNING

UvA Deep Learning Course University of Amsterdam; 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…

Courses >Security

CIS 4930 / CIS 5930

Offensive Computer Security Florida State University; Course taught by W. Owen Redwood and Xiuwen Liu. 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…

In 2 lists

Lectures and Videos

by W. Owen Redwood and Prof. Xiuwen Liu.

In 2 lists

Assignments

CS 155

Computer and Network Security Stanford; 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…

CS 161

Computer Security UC Berkeley; 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…

CS 259

Security Modeling and Analysis Stanford; 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…

CS 261

Internet/Network Security UC Berkeley; 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…

CS 5430

System Security Cornell University; 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.

Syllabus

Lectures

CSCI 4968

Modern Binary Exploitation Rensselaer Polytechnic Institute; This repository contains the materials as developed and used by RPISEC to teach Modern Binary Exploitation at Rensselaer Polytechnic Institute in Spring 2015. This was a university course developed and run solely by students to teach…

In 6 listsDetails

Lectures Notes

CSCI 4976

Malware Analysis Rensselaer Polytechnic Institute; This repository contains the materials as developed and used by RPISEC to teach Malware Analysis at Rensselaer Polytechnic Institute in Fall 2015. This was a university course developed and run solely by students, primarily using the

In 4 lists

EECS 588

Computer & Network Security University of Michigan; Taught by J. Alex Halderman who has analyzed the security of Electronic Voting Machines in the US and over seas.; This intensive research seminar covers foundational work and current topics in computer systems security.

Readings

Practical Malware Analysis book by Michael Sikorski and Andrew Honig, to teach skills in reverse engineering, malicious behaviour, malware, and anti-analysis techniques.

6.857

Computer and Network Security MIT; 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…

6.858

Computer Systems Security MIT; 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…

Video Lectures and Labs

Quizzes

Readings

Final Projects

18-636

Browser Security Stanford; 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…

Courses >Artificial Intelligence

CS 188

Introduction to Artificial Intelligence UC Berkeley; This course will introduce the basic ideas and techniques underlying the design of intelligent computer systems. A specific emphasis will be on the statistical and decision-theoretic modeling paradigm. By the end of this course, you will have…

In 3 lists

Lectures

Projects

Exams

CS 4700

Foundations of Artificial Intelligence Cornell University; 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…

CS 6700

Advanced Artificial Intelligence Cornell University; The design of systems that are among top 10 performers in the world (human, computer, or hybrid human-computer).

Syllabus

6.868J

The Society of Mind MIT; This course is an introduction, by Prof. Marvin Minsky, to the theory that tries to explain how minds are made from collections of simpler processes. It treats such aspects of thinking as vision, language, learning, reasoning, memory, consciousness, ideals, emotions, and…

Lectures

Assignments

Readings

Courses >Computer Graphics

CAP 5415

Computer Vision University of Central Florida; An introductory level course covering the basic topics of computer vision, and introducing some fundamental approaches for computer vision research.

In 2 lists

Lectures and Videos

Assignments

by UCF

In 2 lists

CIS 581

Computer Vision and Computational Photography University of Pennsylvania; An introductory course in computer vision and computational photography focusing on four topics: image features, image morphing, shape matching, and image search.

Lectures

Assignments

CMU 462

Computer Graphics Carnegie Mellon University; 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…

Lectures and Readings

Assignments and Quizes

CS 378

3D Reconstruction with Computer Vision UTexas; In this lab-based class, we'll dive into practical applications of 3D reconstruction, combining hardware and software to build our own 3D environments from scratch. We'll use open-source frameworks like OpenCV to do the heavy lifting, with the focus…

CS 4620

Introduction to Computer Graphics Cornell University; The study of creating, manipulating, and using visual images in the computer.

CS 4670

Introduction to Computer Vision Cornell University; 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…

Assignments

Lectures

CS 6670

Computer Vision Cornell University; 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…

Syllabus

Assignments

CSCI 1230

Introduction to Computer Graphics Brown University; 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.…

Lectures

Labs

Demos

CSCI-GA.2270-001

Graduate Computer Graphics New York University; Step-by-step study computer graphics, with reading and homework at each lecture (Fall2015)

Courses >Misc

AM 207

Monte Carlo Methods and Stochastic Optimization Harvard University; 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!

Lecture Videos

Assignments

Lecture Notes

CS 75

Introduction to Game Development Tufts University; The course taught by Ming Y. Chow 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,…

Text Lectures

Assignments

Labs

CS 50

Intro to Game Developement Harvard University; This course picks up where Harvard College’s CS50 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…

Assignments

Lecture Videos

CS 100

Open Source Software Construction UC Riverside; 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. You'll be developing it as an open source project, and you will collaborate with each other at various points.

CS 108

Object Oriented System Design Stanford; 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.

CS 168

Computer Networks UC Berkeley; 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…

CS 193a

Android App Development, Spring 2016 Stanford University; Course Description: This course provides an introduction to developing applications for the Android mobile platform.; Prerequisite: CS 106B or equivalent. Java experience highly recommended. OOP highly recommmended.; Devices: Access to an…

CS 193p

Developing Applications for iOS Stanford University; 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…

Updated courses for iOS8 - Swift

Stanford course by Paul Hegarty.

In 2 lists

Updated courses for iOS9 - Swift

CS 223A

Introduction to Robotics Stanford University; 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,…

In 2 lists

CS 262a

Advanced Topics in Computer Systems UC Berkeley; 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…

CS 294

Cutting-edge Web Technologies Berkeley; 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…

CS 411

Software Architecture Design Bilkent University; 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…

CS 3152

Introduction to Computer Game Development Cornell University; 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…

Syllabus

Lectures

Assignments

CS 4152

Advanced Topics in Computer Game Development Cornell University; 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…

Syllabus

Lectures

Assignments

CS 4154

Analytics-driven Game Design Cornell University; 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.…

Syllabus

Lectures

Assignments

CS 4812

Quantum Information Processing Cornell University; 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…

CS 4860

Applied Logic Cornell University; 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…

Syllabus

CS 5150

Software Engineering Cornell University; Introduction to the practical problems of specifying, designing, building, testing, and delivering reliable software systems

Lectures

Assignments

CS 5220

Applications of Parallel Computers Cornell University; 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…

Lectures

Assignments

CS 5540

Computational Techniques for Analyzing Clinical Data Cornell University; 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…

Syllabus

Lectures

Assignments

CS 5724

Evolutionary Computation Cornell University; 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…

Lectures

CS 6452

Datacenter Networks and Services Cornell University; 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…

Syllabus

CS 6630

Realistic Image Synthesis Cornell University; 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…

Lectures

CS 6640

Computational Photography Cornell University; 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…

CS 6650

Computational Motion Cornell University; 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…

CS 6840

Algorithmic Game Theory Cornell University; 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

CSE 154

Web Programming University of Washington; This course is an introduction to programming for the World Wide Web. Covers use of HTML, CSS, PHP, JavaScript, AJAX, and SQL.

Lectures

Assignments

ESM 296-4F

GIS & Spatial Analysis UC Santa Barbara; Taught by James Frew, Ben Best, and Lisa Wedding; Focuses on specific computational languages (e.g., Python, R, shell) and tools (e.g., GDAL/OGR, InVEST, MGET, ModelBuilder) applied to the spatial analysis of environmental problems

ICS 314

Software Engineering University of Hawaii; Taught by Philip Johnson; Introduction to software engineering using the "Athletic Software Engineering" pedagogy

Readings

Experiences

Assessments

IGME 582

Humanitarian Free & Open Source Software Development Rochester Institute of Technology; 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…

I485 / H400

Biologically Inspired Computation Indiana University; Course taught by Luis Rocha 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…

Open Sourced Elective: Database and Rails

Intro to Ruby on Rails University of Texas; An introductory course in Ruby on Rails open sourced by University of Texas' CS Adjunct Professor, Richard Schneeman.

In 2 lists

Videos

SCICOMP

An Introduction to Efficient Scientific Computation Universität Bremen; This is a graduate course in scientific computing created and taught by Oliver Serang in 2014, which covers topics in computer science and statistics with applications from biology. The course is designed top-down, starting…

Lecture videos on Youtube

and for direct download

14-740

Fundamentals of Computer Networks CMU; 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…

Courses >Statistics

STAT 340

Applied Regression Methods Smith College

Syllabus

See category
94

Table of Contents

hesreallyhim/awesome-claude-code

A hand-picked collection of the finest of resources for the most awesome of agents, Claude Code, the undisputed champion of coding companions, from the unstoppable team…

Fresh★ 55k202 entriesPushed today
94

Awesome Agent Skills

VoltAgent/awesome-agent-skills

A curated collection of 1000+ agent skills from official dev teams and the community, compatible with Claude Code, Codex, Gemini CLI, Cursor, and more.

Fresh★ 35k839 entriesPushed today
93

Awesome Machine Learning

josephmisiti/awesome-machine-learning

A curated list of awesome Machine Learning frameworks, libraries and software.

Fresh★ 74k1188 entriesPushed 7 days ago
92

Awesome Production Machine Learning

EthicalML/awesome-production-machine-learning

A curated list of awesome open source libraries to deploy, monitor, version and scale your machine learning

Fresh★ 21k519 entriesPushed 3 days ago
92

AWESOME DATA SCIENCE

academic/awesome-datascience

:memo: An awesome Data Science repository to learn and apply for real world problems.

Fresh★ 30k881 entriesPushed today
91

Static Analysis

analysis-tools-dev/static-analysis

⚙️ A curated list of static analysis (SAST) tools and linters for all programming languages, config files, build tools, and more. The focus is on tools which improve…

Fresh★ 15k528 entriesPushed 8 days ago