User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome University Courses

List of awesome university courses for learning Computer Science!

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Dec. 4, 2020, 12:12 p.m.

Thank you prakhar1989 & contributors
View Topic on GitHub:
prakhar1989/awesome-courses

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Systems

Angrave's Crowd-Sourced System Programming Book used at UIUC

4.83K
738
10m
n/a

ECE 459: Programming for Performance, Winter 2015

71
27
5y 8m
n/a

Great Ideas in Computer Architecture (Machine Structures) UC Berkeley Lecture VideosLecture Notes Assignments Readings

Computer Organization & Systems Stanford University Lecture Videos Assignments

Operating Systems Stanford University Assignments Lecture Notes

Computation Structures MIT Assignments Lecture Notes Lecture Videos

Operating Systems and Systems Programming UC Berkeley Lecture Videos Lecture Notes Assignments Readings

Introduction to the Internet: Architecture and Protocols UC Berkeley Lecture Notes Assignments

Introduction to Database Systems UC Berkeley Lecture Videos Assignments Readings Lecture Notes

Systems Programming (Spring 2016) Univ of Illinois, Urbana-Champaign Assignments Lecture Notes

Distributed Systems Univ of Illinois, Urbana-Champaign Assignments Readings

Real-Time Programming University of Waterloo Assignments Lecture Notes

Unix Tools & Scripting Cornell University Assignments Lecture NotesReadings

Computer System Organization and Programming Cornell University Assignments Lecture NotesReadings

Operating Systems Cornell University Lecture NotesReadings

Operating Systems University of Virginia Lecture Videos Assignments

Cloud Computing Cornell University Lecture Notes Readings

is also a gem and recommended as a must read in Google's tutorial on Distributed System Design

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

Computer Architecture 3 CUNY Hunter College Assignments Lecture Notes

UNIX System Programming (formerly UNIX Tools) CUNY Hunter College Assignments Lecture Notes

Parallel Computing CUNY Hunter College Assignments Lecture Notes

Introduction to Operating Systems SUNY University at Buffalo, NY Lecture Videos Assignments Lecture Notes

Programming for Performance University of Waterloo Lecture Notes Assignments

Embedded Systems using the Renesas RX63N Processor University of North Carolina at Charlotte Lecture Videos Readings

Principles of Distributed Computing ETH-Zurich Assignments Readings Lecture Notes

Parallelism and Concurrency Univ of Washington Readings

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

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

Distributed Systems University of Washington Lecture Videos Assignments Lecture Notes

of a previous session are available to watch.

Introduction to Computer Systems (ICS) Carnegie-Mellon University Lecture Videos Assignments Lecture Notes

Cloud Computing (ICS) Carnegie-Mellon University Lecture Videos Assignments

Parallel Computer Architecture and Programming Carnegie-Mellon University Lecture Videos Assignments Lecture Notes Readings

Distributed Systems Carnegie-Mellon University Assignments Lecture Notes

Database Systems Carnegie-Mellon University Lecture Videos Assignments Readings

Database Systems Carnegie-Mellon University Lecture Videos Assignments Readings

Engineering Distributed Systems Carnegie-Mellon University Readings

Introduction to Computer Architecture CMU Lecture Videos Assignments Readings

Programming Languages / Compilers

Principles of Compiler Design Swathmore College Lecture Videos Assignments Lecture Notes

Introduction to Programming Languages Swathmore College Lecture Notes Assignments

programming language & PAPL book to understand the fundamentals of programming languages.

Introduction to Haskell Penn Engineering Assignments Lecture Notes

semester also available, with more exercises

Rust Programming UPenn Lecture Notes Assignments

Functional Programming with Clojure University of Helsinki Assignments

Introduction to Compilers Univ of Maryland Assignments Lecture Notes

Functional Programming Princeton University Assignments Lecture Notes

Compiler construction Stanford University Lecture NotesAssignments

Programming Languages Brown University Lecture Videos Assignments

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 you to enjoy.

Purely Functional Data Structures In Elm University of Chicago Assignments Lecture Notes

Functional Systems in Haskell Stanford University Assignments Lecture Notes

Lab2](http://www.scs.stanford.edu/14sp-cs240h/labs/lab2.html), Lab3

Course that uses OCaml to teach functional programming and programming language design

Introduction to Compilers Cornell University Assignments Lecture NotesReadings

Programming Languages Northeastern University Assignments Lecture Notes Readings

Programming Languages and Compilers University of Virginia Assignments Lecture Notes

Network Programming Languages Cornell University Lecture NotesReadings

Scripting Languages Cornell University Lecture NotesAssignments

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 witty take on cheating the page has tons of interesting links on programming languages, parsing and compilers.

Types and Semantics Cornell University Lecture NotesReadings

CPython internals: A ten-hour codewalk through the Python interpreter source code University of Rochester Lecture VideosReadings

Programming Languages University of Washington Lecture Videos Assignments Lecture Notes

Compiler Construction University of Washington Lecture Videos Assignments

Discrete Mathematics and Functional Programming Wheaton College Lecture Videos Assignments

Practical Concurrent and Parallel Programming IT University of Copenhagen Lecture NotesAssignmentsReadings

Adventures in Advanced Symbolic Programming MIT Lecture NotesAssignmentsReadings

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

Functional Design and Programming San Diego State University Lecture NotesAssignmentsReadings

L28

Advanced Functional Programming University of Cambridge Lecture NotesAssignmentsReadings

Algorithms

Stanford ACM-ICPC related materials

1.32K
468
2y 7m
MIT

A repo for a Program and Data Representation university-level course

95
399
2y 63d
n/a

Data Structures UC Berkeley Lecture Videos Assignments Lecture Notes Readings

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

Introduction to Competitive Programming Stanford University Assignments Lecture Notes

Advanced Algorithms Harvard University Lecture Videos Assignments Lecture Notes

Youtube](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf))

A Second Course in Algorithms Stanford University Lecture Videos Assignments Lecture Notes

Fundamental Algorithms Univ of Illinois, Urbana-Champaign Assignments Lecture Notes

Introduction to Analysis of Algorithms Cornell University Assignments Lecture Notes Readings

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

Software Design and Analysis II CUNY Hunter College Assignments Lecture Notes

Software Design and Analysis III** Assignments Lecture Notes

Software Design and Implementation University of Washington Assignments Lecture Notes

Analysis of Algorithms Stony Brook University Lecture Videos Assignments Lecture Notes Readings

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 competitions. If you're looking to brush up your knowledge on Algorithms, you can't go wrong with this course.

Algorithm Design and Analysis UC Davis Lecture Videos Assignments Lecture Notes

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.

Graduate Level Algorithm Design and Analysis UC Davis Lecture Videos Assignments Lecture Notes

Design and Analysis of Algorithms MIT Lecture VideosLecture Notes Assignments Readings

It introduces students to the design of computer algorithms, as well as analysis of sophisticated algorithms.

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

Algorithms Carnegie Mellon University Lecture Notes

who has a Turing Award due to his contributions to algorithms. Course link includes a very comprehensive set of reference notes by Avrim Blum.

Algorithms University of Virginia Lecture Videos Assignments

CS Theory

Software Foundations University of Pennsylvania Assignments Lecture Notes

Mathematical Foundations of Computing Stanford University Assignments Lecture Notes

Discrete Structures Univ of Illinois Urbana-Champaign Assignments Lecture Notes Readings

Written by the professor. Includes Instructor's Guide.

Foundations of Cryptography UC Berkeley Lecture Notes

Complexity Theory UC Berkeley Lecture Notes

Algorithms & Models of Computation (Fall 2014) University of Illinois Urbana-Champaign Lecture Videos Assignments Lecture Notes

Data Structures and Functional Programming Cornell University Assignments Lecture NotesReadings

Introduction to Scientific Computing Cornell University Assignments Lecture NotesReadings

Information Retrieval Cornell University Assignments Lecture NotesReadings

Introduction to Theory of Computing Cornell University Assignments Lecture Notes Readings

Theory of Computing Cornell University Assignments Lecture Notes Readings

Programming Paradigms University of Arkansas (Fayetteville) Assignments Lecture Notes

Great Ideas in Theoretical Computer Science MIT Lecture Notes Lecture Videos Readings

Introduction to CS

The Beauty and Joy of Computing UC Berkeley Lecture Videos Assignments Lecture Notes

based on Scratch by MIT).

Introduction to Computer Science Harvard University Lecture Videos Assignments Lecture Notes

Structure and Interpretation of Computer Programs [Python] UC Berkeley Lecture Videos Assignments Lecture Notes

Structure & Interpretation of Computer Programs [Racket] UC Berkeley Lecture Videos Assignments Lecture Notes

Computer Science 101 Stanford University Lecture Videos Assignments Lecture Notes

Programming Methodology Stanford University Lecture Videos Assignments Lecture Notes

Programming Abstractions Stanford University Lecture Videos Assignments Lecture Notes

Programming Paradigms Stanford University Lecture Videos Assignments Lecture Notes

Programming Practice Using Scala KAIST Assignments Lecture Notes

Fundamental Programming Concepts Cornell University Assignments Lecture Notes

Introduction to Computing Using Python Cornell University Assignments Lecture NotesReadings

Introduction to Computing Using Matlab Cornell University Assignments Lecture NotesReadings

Introduction to Computational Science and Engineering Using Matlab Graphical User Interfaces Cornell University Assignments Lecture NotesReadings

Transition to OO Programming Cornell University Assignments Lecture NotesReadings

Transition to Python Cornell University Assignments Lecture NotesReadings

and CS2420-20 Computer Science I and II for Hackers University of Utah Assignments Lecture Notes Readings

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...

Object-Oriented Programming and Data Structures Cornell University Assignments Lecture NotesReadings

Web Information Systems Cornell University Assignments Lecture NotesReadings

Programming Foundations I University of Arkansas (Fayetteville) Assignments Lecture NotesReadings

Understanding Computers and the Internet Harvard University Extension College

CS for All Harvey Mudd College Assignments Lecture Notes Readings

Structure and Interpretation of Computer Programs MIT Lecture Videos Assignments Lecture Notes

epub](https://github.com/sarabander/sicp), pdf)

Software Construction, Fall 2016 MIT Assignments Lecture Notes

Machine Learning

Oxford Deep NLP 2017 course

14.82K
3.56K
3y 5m
n/a

This repository contains code examples for the Stanford's course: TensorFlow for Deep Learning Research.

9.79K
4.37K
2y 8m
MIT

The fastai deep learning library, plus lessons and tutorials

20.01K
6.85K
2d
Apache-2.0

http://torch.ch

8.55K
2.38K
1y 7m
n/a

A course in reinforcement learning in the wild

4.24K
1.29K
33d
Unlicense

Tensorflow for Deep Learning Research Stanford University Assignments Lecture Notes

Machine Learning Columbia University Assignments Lecture Notes

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.

Data Science Harvard University Assignments Lecture Notes Readings

Introduction To Machine Learning UC Berkeley Assignments Lecture Notes

Deep Learning for Natural Language Processing Stanford University Lecture Videos Assignments Lecture Notes

Algorithms for Big Data Harvard University Lecture Videos Assignments Lecture Notes

Youtube](https://www.youtube.com/playlist?list=PL2SOU6wwxB0v1kQTpqpuu5kEJo2i-iUyf))

Convolutional Neural Networks for Visual Recognition Stanford University Assignments Lecture Notes Lecture Videos

Statistical and Discrete Methods for Scientific Computing University of Texas Lecture Videos Lecture Notes Assignments

Machine Learning Cornell University Lecture NotesReadings

Machine Learning for Data Science Cornell University Assignments Lecture Notes Readings

Convex Optimization Stanford University Assignments Lecture Notes Readings

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 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.

Big Data Analytics & Advanced Big Data Analytics Columbia University Assignments Readings Lecture Notes

Deep Learning for Computer Vision and Natural Language Processing Columbia University Lecture Notes Assignments Readings

Introduction to Matrix Methods Stanford University Assignments Lecture Notes Readings

and Lieven Vandenberghe are currently writing. Students will use a new language called Julia to do computations with matrices and vectors.

Analyzing Big Data with Twitter UC Berkeley school of information Lecture Videos

Intro to Statistical Learning Stanford University Assignments Lecture Notes Readings Lecture Videos

Machine Learning Carnegie Mellon University Assignments Lecture Notes Readings Lecture Videos

Probabilistic Graphical Models Carnegie Mellon University Lecture Videos Lecture Notes Assignments Readings

Deep Learning Carnegie Mellon University Assignments Readings

Mining Massive Data Sets Stanford University Lecture Videos Lecture Notes Assignments Readings

Information Retrieval and Web Search Stanford University Lecture Notes Readings

UvA Deep Learning Course University of Amsterdam Lecture Videos Lecture Notes Assignments Readings

Security

Course materials for Modern Binary Exploitation by RPISEC

4.21K
765
1y 8m
BSD-2-Clause

Course materials for Malware Analysis by RPISEC

2.77K
674
3y 6m
n/a

Offensive Computer Security Florida State University Lecture Videos Assignments Lecture Notes

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 and the offensive point of view.

Computer and Network Security Stanford Lecture Notes Readings

Security Modeling and Analysis Stanford Lecture Notes Assignments Readings

Internet/Network Security UC Berkeley Lecture Notes Readings

System Security Cornell University Assignments Lecture Notes Readings

Computer & Network Security University of Michigan Lecture Notes Readings

who has analyzed the security of Electronic Voting Machines in the US and over seas.

Computer and Network Security MIT Lecture Notes

Computer Systems Security MIT Lecture Videos Lecture Notes Assignments Readings

Artificial Intelligence

Introduction to Artificial Intelligence UC Berkeley Lecture Videos Assignments Lecture Notes

Foundations of Artificial Intelligence Cornell University Assignments Lecture Notes

Advanced Artificial Intelligence Cornell University Lecture Notes Readings

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 personality. It incorporates ideas from psychology, artificial intelligence, and computer science to resolve theoretical issues such as wholes vs. parts, structural vs. functional descriptions, declarative vs. procedural representations, symbolic vs. connectionist models, and logical vs. common-sense theories of learning.

Computer Graphics

Syllabus and other general course information

75
14
5y 9m
n/a

Computer Vision University of Central Florida Lecture Videos Lecture Notes Assignments

Computer Vision and Computational Photography University of Pennsylvania Assignments Lecture Notes

Computer Graphics Carnegie Mellon University Lecture Notes Assignments Readings

Introduction to Computer Graphics Cornell University Assignments Lecture Notes Readings

Introduction to Computer Vision Cornell University Assignments Lecture Notes Readings

Computer Vision Cornell University Assignments Lecture Notes

Introduction to Computer Graphics Brown University Assignments Lecture Notes

Graduate Computer Graphics New York University Assignments Lecture Notes Readings

Misc

open source software construction course

410
397
5y 39d
n/a

Standford CS193A Android-App-Development material.

104
71
2y 9m
n/a

Monte Carlo Methods and Stochastic Optimization Harvard University Lecture Videos Lecture Notes Assignments

Introduction to Game Development Tufts University Assignments Lecture Notes

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

Intro to Game Developement Harvard University Lecture VideosAssignments Lecture Notes

Introduction to Computer Science Harvard University Lecture Videos Assignments Lecture Notes

Object Oriented System Design Stanford Assignments Lecture Notes

Computer Networks UC BerkeleyAssignments Readings Lecture Notes

Android App Development, Spring 2016 Stanford University Lecture VideosAssignments Lecture Notes

Developing Applications for iOS Stanford University Lecture VideosAssignments Lecture Notes

Introduction to Robotics Stanford University Lecture Videos Assignments Lecture Notes

Advanced Topics in Computer Systems UC Berkeley Readings Lecture Notes

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).

Cutting-edge Web Technologies Berkeley Assignments Readings Lecture Notes

Software Architecture Design Bilkent University Lecture Videos

Introduction to Computer Game Development Cornell University Assignments Lecture NotesReadings

Advanced Topics in Computer Game Development Cornell University Assignments Lecture NotesReadings

Analytics-driven Game Design Cornell University Assignments Lecture NotesReadings

Quantum Information Processing Cornell University Lecture Notes Readings

Applied Logic Cornell University Assignments Lecture Notes

We will also spend two weeks on constructive type theory, the language used by the Coq and Nuprl proof assistants.

Software Engineering Cornell University Assignments Lecture Notes Readings

Applications of Parallel Computers Cornell University Assignments Lecture Notes Readings

Computational Techniques for Analyzing Clinical Data Cornell University Assignments Lecture NotesReadings

Evolutionary Computation Cornell University Assignments Lecture Notes

Datacenter Networks and Services Cornell University