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.
Thank you prakhar1989 & contributors
View Topic on GitHub:
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.
Angrave's Crowd-Sourced System Programming Book used at UIUC
ECE 459: Programming for Performance, Winter 2015
Great Ideas in Computer Architecture (Machine Structures) UC Berkeley
Computer Organization & Systems Stanford University
Introduction to the Internet: Architecture and Protocols UC Berkeley
Systems Programming (Spring 2016) Univ of Illinois, Urbana-Champaign
Distributed Systems Univ of Illinois, Urbana-Champaign
Computer System Organization and Programming Cornell University
is also a gem and recommended as a must read in Google's tutorial on Distributed System Design
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.
Operating Systems NYU
UNIX System Programming (formerly UNIX Tools) CUNY Hunter College
Introduction to Operating Systems SUNY University at Buffalo, NY
Embedded Systems using the Renesas RX63N Processor University of North Carolina at Charlotte
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.
of a previous session are available to watch.
Introduction to Computer Systems (ICS) Carnegie-Mellon University
Cloud Computing (ICS) Carnegie-Mellon University
Parallel Computer Architecture and Programming Carnegie-Mellon University
Engineering Distributed Systems Carnegie-Mellon University
Programming Languages / Compilers
this course teaches how to build a compiler in OCaml
Introduction to Programming Languages Swathmore College
programming language & PAPL book to understand the fundamentals of programming languages.
Functional Programming with Clojure University of Helsinki
Purely Functional Data Structures In Elm University of Chicago
Course that uses OCaml to teach functional programming and programming language design
Programming Languages and Compilers University of Virginia
Network Programming Languages Cornell University
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.
CPython internals: A ten-hour codewalk through the Python interpreter source code University of Rochester
Programming Languages University of Washington
Compiler Construction University of Washington
Discrete Mathematics and Functional Programming Wheaton College
Practical Concurrent and Parallel Programming IT University of Copenhagen
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
Stanford ACM-ICPC related materials
A repo for a Program and Data Representation university-level course
The link to labs and projects is included in the website.
Introduction to Competitive Programming Stanford University
A Second Course in Algorithms Stanford University
Fundamental Algorithms Univ of Illinois, Urbana-Champaign
Introduction to Analysis of Algorithms Cornell University
Data Structures and Object Oriented Design University of Southern California (USC)
Software Design and Analysis II CUNY Hunter College
Software Design and Implementation University of Washington
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
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.
who has a Turing Award due to his contributions to algorithms. Course link includes a very comprehensive set of reference notes by Avrim Blum.
Software Foundations University of Pennsylvania
Mathematical Foundations of Computing Stanford University
Discrete Structures Univ of Illinois Urbana-Champaign
Written by the professor. Includes Instructor's Guide.
Algorithms & Models of Computation (Fall 2014) University of Illinois Urbana-Champaign
Data Structures and Functional Programming Cornell University
Introduction to Scientific Computing Cornell University
Introduction to Theory of Computing Cornell University
Programming Paradigms University of Arkansas (Fayetteville)
Introduction to CS
Structure & Interpretation of Computer Programs [Racket] UC Berkeley
Fundamental Programming Concepts Cornell University
Introduction to Computing Using Python Cornell University
Introduction to Computing Using Matlab Cornell University
Introduction to Computational Science and Engineering Using Matlab Graphical User Interfaces Cornell University
Transition to OO Programming Cornell University
and CS2420-20 Computer Science I and II for Hackers University of Utah
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
Programming Foundations I University of Arkansas (Fayetteville)
Understanding Computers and the Internet Harvard University Extension College
Structure and Interpretation of Computer Programs MIT
Oxford Deep NLP 2017 course
This repository contains code examples for the Stanford's course: TensorFlow for Deep Learning Research.
The fastai deep learning library, plus lessons and tutorials
A course in reinforcement learning in the wild
Tensorflow for Deep Learning Research Stanford University
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.
Deep Learning for Natural Language Processing Stanford University
Convolutional Neural Networks for Visual Recognition Stanford University
Statistical and Discrete Methods for Scientific Computing University of Texas
Machine Learning for Data Science Cornell University
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
Deep Learning for Computer Vision and Natural Language Processing Columbia University
Fast.ai / University of San Francisco*
Analyzing Big Data with Twitter UC Berkeley school of information
Intro to Statistical Learning Stanford University
which is a more approachable version of the Elements of Statistical Learning (or ESL) book.
Probabilistic Graphical Models Carnegie Mellon University
Information Retrieval and Web Search Stanford University
Course materials for Modern Binary Exploitation by RPISEC
Course materials for Malware Analysis by RPISEC
Offensive Computer Security Florida State University
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 & Network Security University of Michigan
Foundations of Artificial Intelligence Cornell University
Advanced Artificial Intelligence Cornell University
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.
Syllabus and other general course information
Computer Vision and Computational Photography University of Pennsylvania
Introduction to Computer Graphics Cornell University
Introduction to Computer Vision Cornell University
Introduction to Computer Graphics Brown University
open source software construction course
Standford CS193A Android-App-Development material.
Monte Carlo Methods and Stochastic Optimization Harvard University
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
Android App Development, Spring 2016 Stanford University
Developing Applications for iOS Stanford University
Stanford course by Paul Hegarty.
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).
Software Architecture Design Bilkent University
Introduction to Computer Game Development Cornell University
Advanced Topics in Computer Game Development Cornell University
Analytics-driven Game Design Cornell University
Quantum Information Processing Cornell University
We will also spend two weeks on constructive type theory, the language used by the Coq and Nuprl proof assistants.
Applications of Parallel Computers Cornell University
Computational Techniques for Analyzing Clinical Data Cornell University
Datacenter Networks and Services Cornell University