Introduction to software engineering using the
Machine Learning** *Carnegie Mellon University*
Probabilistic Graphical Models** *Carnegie Mellon University*
Deep Learning** *Carnegie Mellon University*
Fundamentals of Computer Networks** *CMU*
Introduction to Computer Systems (ICS)** *Carnegie-Mellon University*
Cloud Computing (ICS)** *Carnegie-Mellon University*
Operating System Design and Implementation** *Carnegie-Mellon University*
Parallel Computer Architecture and Programming** *Carnegie-Mellon University*
Distributed Systems** *Carnegie-Mellon University*
Database Systems** *Carnegie-Mellon University*
Algorithms** *Carnegie Mellon University*
Database Systems** *Carnegie-Mellon University*
Engineering Distributed Systems** *Carnegie-Mellon University*
Algorithms** *University of Virginia*
Introduction to Computer Architecture** *CMU*
Browser Security** *Stanford*
(slightly better)*
Structure and Interpretation of Computer Programs** *MIT*
Computation Structures** *MIT*
Software Construction, Fall 2016** *MIT*
Introduction to 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 algorithms, incremental improvement, complexity, and cryptography. This course assumes that students know how to analyze simple algorithms and data structures from having taken . It introduces students to the design of computer algorithms, as well as analysis ...
Great Ideas in Theoretical Computer Science** *MIT*
Design and Analysis of Algorithms** *MIT*
Distributed Systems** *MIT*
Operating Systems** *MIT*
Advanced Data Structures** *MIT*
Advanced Algorithms** *MIT*
Advanced Algorithms** *MIT*
Computer and Network Security** *MIT*
Computer Systems Security** *MIT*
The Society of Mind** *MIT*
Adventures in Advanced Symbolic Programming** *MIT*
Hacking a Google Interview** *MIT*
This is an advanced DS course, you must be done with the course before attempting this one.
Monte Carlo Methods and Stochastic Optimization** *Harvard University*
The lectures cover all the material in which is a more approachable version of the (or ESL) book.
Just do `git clone git://g.csail.mit.edu/6.824-golabs-2014 6.824`
: Extensive programming assignments, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or other "functional" language.
contains the calendar as well.
available on Github.
Course by Prof. Krishnamurthi (author of ) and numerous other on programming languages. Uses a custom designed programming language to teach the concepts. There was an hosted in 2012, which includes all lecture videos for you to enjoy.
Taught by , , and
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 is also a gem and recommended as a must read in Google's tutorial on
Prof Steven Skiena's no stranger to any student when it comes to algorithms. His seminal has been touted by many to be best for . In addition, he's also well-known for tutoring students in competitive . If you're looking to brush up your knowledge on Algorithms, you can't go wrong with this course.
Course by Prof. Krishnamurthi (author of ) and numerous other on programming languages. Uses a custom designed programming language to teach the concepts. There was an hosted in 2012, which includes all lecture videos for you to enjoy.
Computer Vision** *University of Central Florida*
If you're a fan of Prof Matt's writing on his 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 the page has tons of interesting links on programming languages, parsing and compilers.
Introduction to Haskell** *Penn Engineering*
Rust Programming** *UPenn*
Offensive Computer Security** *Florida State University*
Software Foundations** *University of Pennsylvania*
Computer Vision and Computational Photography** *University of Pennsylvania*
Introduction to Compilers** *Univ of Maryland*
Computer Graphics** *Carnegie Mellon University*
Machine Learning** *Columbia University*
Principles of Programming Languages** *Politecnico di Milano* - Lecture Notes - Readings
Functional Programming** *Princeton University*
The Beauty and Joy of Computing** *UC Berkeley*
Open Source Software Construction** *UC Riverside*
Computer Science 101** *Stanford University*
Mathematical Foundations of Computing** *Stanford University*
Programming Methodology** *Stanford University*
Programming Abstractions** *Stanford University*
Computer Organization & Systems** *Stanford University*
Programming Paradigms** *Stanford University*
Object Oriented System Design** *Stanford*
Programming Practice Using Scala** *KAIST*
Data Science** *Harvard University*
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*
Transition to Python** *Cornell University*
Operating Systems** *Stanford University*
and CS2420-20 **Computer Science I and II for Hackers** *University of Utah*
Compiler construction** *Stanford University*
Computer and Network Security** *Stanford*
Learning from Data** *Caltech*
Computer Security** *UC Berkeley*
Operating Systems and Systems Programming** *UC Berkeley*
Hack your language!** *UC Berkeley*
Introduction to the Internet: Architecture and Protocols** *UC Berkeley*
Computer Networks** *UC Berkeley*
Programming Languages** *Brown University*
Discrete Structures** *Univ of Illinois Urbana-Champaign*
GPU Programming** *Caltech*
Introduction to Database Systems** *UC Berkeley*
Introduction to Artificial Intelligence** *UC Berkeley*
Introduction To Machine Learning** *UC Berkeley*
Android App Development, Spring 2016** *Stanford University*
Developing Applications for iOS** *Stanford University*
Unix Tools & Scripting** *Cornell University*
Object-Oriented Programming and Data Structures** *Cornell University*
Program & Data Representation** *University of Virginia*
Purely Functional Data Structures In Elm** *University of Chicago*
Introduction to Robotics** *Stanford University*
Advanced Algorithms** *Harvard University*
Deep Learning for Natural Language Processing** *Stanford University*
Algorithms for Big Data** *Harvard University*
Convolutional Neural Networks for Visual Recognition** *Stanford University*
Functional Systems in Haskell** *Stanford University*
Systems Programming (Spring 2016)** *Univ of Illinois, Urbana-Champaign*
Security Modeling and Analysis** *Stanford*
A Second Course in Algorithms** *Stanford University*
Internet/Network Security** *UC Berkeley*
Advanced Topics in Computer Systems** *UC Berkeley*
Foundations of Cryptography** *UC Berkeley*
Complexity Theory** *UC Berkeley*
Advanced Robotics** *UC Berkeley*
Cutting-edge Web Technologies** *Berkeley*
Data Structures and Functional Programming** *Cornell University*
Data Structures and Functional Programming** *Cornell University*
Introduction to Computer Game Development** *Cornell University*
Introduction to Scientific Computing** *Cornell University*
Computer System Organization and Programming** *Cornell University*
Algorithms & Models of Computation (Fall 2014)** *University of Illinois Urbana-Champaign*
3D Reconstruction with Computer Vision** *UTexas*
Statistical and Discrete Methods for Scientific Computing** *University of Texas*
Software Architecture Design** *Bilkent University*
Introduction to Compilers** *Cornell University*
Advanced Topics in Computer Game Development** *Cornell University*
Analytics-driven Game Design** *Cornell University*
Programming Languages and Compilers** *Univ of Illinois, Urbana-Champaign*
Distributed Systems** *Univ of Illinois, Urbana-Champaign*
Information Retrieval** *Cornell University*
Web Information Systems** *Cornell University*
Programming Languages** *Northeastern University*
Operating Systems** *Cornell University*
Operating Systems** *University of Virginia*
Real-Time Programming** *University of Waterloo*
Programming Languages and Compilers** *University of Virginia*
Introduction to Computer Graphics** *Cornell University*
Introduction to Computer Vision** *Cornell University*
Foundations of Artificial Intelligence** *Cornell University*
Fundamental Algorithms** *Univ of Illinois, Urbana-Champaign*
Machine Learning** *Cornell University*
Machine Learning for Data Science** *Cornell University*
Introduction to Theory of Computing** *Cornell University*
Quantum Information Processing** *Cornell University*
Introduction to Analysis of Algorithms** *Cornell University*
Applied Logic** *Cornell University*
Introduction to Computer Science** *Harvard University*
Intro to Game Developement** *Harvard University*
Network Programming Languages** *Cornell University*
Scripting Languages** *Cornell University*
Software Engineering** *Cornell University*
Applications of Parallel Computers** *Cornell University*
Cloud Computing** *Cornell University*
System Security** *Cornell University*
Compilers** *University of Utah*
Computational Techniques for Analyzing Clinical Data** *Cornell University*
Evolutionary Computation** *Cornell University*
Types and Semantics** *Cornell University*
Structure and Interpretation of Computer Programs [Python]** *UC Berkeley*
Structure & Interpretation of Computer Programs [Racket]** *UC Berkeley*
Data Structures** *UC Berkeley*
Great Ideas in Computer Architecture (Machine Structures)** *UC Berkeley*
Datacenter Networks and Services** *Cornell University*
Realistic Image Synthesis** *Cornell University*
Computational Photography** *Cornell University*
Computational Motion** *Cornell University*
Computer Vision** *Cornell University*
Advanced Artificial Intelligence** *Cornell University*
Theory of Computing** *Cornell University*
Algorithmic Game Theory** *Cornell University*
Functional Design and Programming** *San Diego State University*
Principles of Compiler Design** *Swathmore College*
Introduction to Game Development** *Tufts University*
Introduction to Programming Languages** *Swathmore College*
Introduction to Competitive Programming** *Stanford University*
CS for All** *Harvey Mudd College*
Tensorflow for Deep Learning Research** *Stanford University*
Mining Massive Data Sets** *Stanford University*
Information Retrieval and Web Search** *Stanford University*
This course picks up where Harvard College’s leaves off, focusing on the development of 2D and 3D interactive games. Students explore the design of such childhood games as Super Mario Bros., Legend of Zelda, and Portal in a quest to understand how video games themselves are implemented. Via lectures and hands-on projects, the course explores principles of 2D and 3D graphics, animation, sound, and collision detection using frameworks like Unity and , as well as languages like Lua and C#. By class’s end, s...
CPython internals: A ten-hour codewalk through the Python interpreter source code** *University of Rochester*
Programming Foundations I** *University of Arkansas (Fayetteville)*
Programming Paradigms** *University of Arkansas (Fayetteville)*
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.
Data Structures and Object Oriented Design** *University of Southern California (USC)*
Introduction to Computer Graphics** *Brown University*
Software Design and Analysis I**
Software Design and Analysis II** *CUNY Hunter College*
Software Design and Analysis III**
Computer Architecture 3** *CUNY Hunter College*
UNIX System Programming (formerly UNIX Tools)** *CUNY Hunter College*
Parallel Computing** *CUNY Hunter College*
Modern Binary Exploitation** *Rensselaer Polytechnic Institute*
Malware Analysis** *Rensselaer Polytechnic Institute*
Understanding Computers and the Internet** *Harvard University Extension College*
Graduate Computer Graphics** *New York University*
Operating Systems** *NYU*
Web Programming** *University of Washington*
Software Design and Implementation** *University of Washington*
Programming Languages** *University of Washington*
Analysis of Algorithms** *Stony Brook University*
Compiler Construction** *University of Washington*
Distributed Systems** *University of Washington*
Convex Optimization** *Stanford University*
Taught by 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.
This is the graduate level complement to the ECS 122A undergraduate algorithms course by in 2011. It assumes an undergrad course has already been taken in algorithms, and, while going over some undergraduate algorithms topics, focuses more on increasingly complex and advanced algorithms.
Operating Systems course by the Chair of EECS, UC Berkeley
Deep Learning for Natural Language Processing** *University of Oxford*
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 is also a gem and recommended as a must read in Google's tutorial on
Discrete Mathematics and Functional Programming** *Wheaton College*
Taught by
For the processor, memory, and disks, we discuss how the operating system allocates each resource and explore the design and implementation of related abstractions. We also establish techniques for testing and improving system performance and introduce the idea of hardware virtualization. Programming assignments provide hands-on experience with implementing core operating system components in a realistic development environment. Course by
Deep Learning** *New York University*
Programming for Performance** *University of Waterloo*
Embedded Systems using the Renesas RX63N Processor** *University of North Carolina at Charlotte*
Algorithm Design and Analysis** *UC Davis*
Graduate Level Algorithm Design and Analysis** *UC Davis*
The course can also be taken from .
Introduction to Matrix Methods** *Stanford University*
Computer & Network Security** *University of Michigan*
Big Data Analytics & Advanced Big Data Analytics** *Columbia University*
Deep Learning for Computer Vision and Natural Language Processing** *Columbia University*
The lectures cover all the material in which is a more approachable version of the (or ESL) book.
GIS & Spatial Analysis** *UC Santa Barbara*
If you're a fan of Prof Matt's writing on his 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 the page has tons of interesting links on programming languages, parsing and compilers.
Fast.ai / University of San Francisco*
Lecture of Spring 2016. This website contains full matrials including video links, labs, homeworks, projects. Very good for self-learner. Also a good start for Java. And it includes some other useful resources for Java Documentation, Data Structure Resources, Git/GitHub and Java Development Resources. Resources
Prof Steven Skiena's no stranger to any student when it comes to algorithms. His seminal has been touted by many to be best for . In addition, he's also well-known for tutoring students in competitive . If you're looking to brush up your knowledge on Algorithms, you can't go wrong with this course.
(includes lecture materials and labs)
Introduction to Operating Systems** *SUNY University at Buffalo, NY*
The course's OpenCourseware resides
Videos: Videos list can be found
Other materials: Some codes, handsout, homework ..... and lecture notes are not downloadable on the site due to login requirement. Please head to my Github repo to download them.
7 HWs with answer set as well
Course by Prof. Krishnamurthi (author of ) and numerous other on programming languages. Uses a custom designed programming language to teach the concepts. There was an hosted in 2012, which includes all lecture videos for you to enjoy.
Biologically Inspired Computation** *Indiana University*
Software Engineering** *University of Hawaii*
Humanitarian Free & Open Source Software Development** *Rochester Institute of Technology*
Modelled after the influential paper on , this course teaches how to build a compiler in OCaml
Analyzing Big Data with Twitter** *UC Berkeley school of information*
Taught by who has analyzed the security of Electronic Voting Machines in the and .
Taught by , , and
Taught by and
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 processing, data fitting, time series prediction, finance, and many others. EE103 is based on a book that and are currently writing. Students will use a new language called to do computations with matrices and vectors.
Advanced Functional Programming** *University of Cambridge*
3 Assignments: , ,
3 Assignments: , ,
3 Assignments: , ,
The link to labs and projects is included in the website.
Spring 2015 lectures
(Youtube)
Spring 2015 lectures
(Youtube)
(Youtube)
and for direct download
of a previous session are available to watch.
Contains videos from sp2012 version, but there isn't much difference.
CS 2110 is an intermediate-level programming course and an introduction to computer science. Topics include program design and development, debugging and testing, object-oriented programming, proofs of correctness, complexity analysis, recursion, commonly used data structures, graph algorithms, and abstract data types. Java is the principal programming language. The course syllabus can easily be extracted by looking at the link to .
(Youtube)
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 processing, data fitting, time series prediction, finance, and many others. EE103 is based on a book that and are currently writing. Students will use a new language called to do computations with matrices and vectors.
Taught by , , and
This course picks up where Harvard College’s leaves off, focusing on the development of 2D and 3D interactive games. Students explore the design of such childhood games as Super Mario Bros., Legend of Zelda, and Portal in a quest to understand how video games themselves are implemented. Via lectures and hands-on projects, the course explores principles of 2D and 3D graphics, animation, sound, and collision detection using frameworks like Unity and , as well as languages like Lua and C#. By class’s end, s...
Course taught by about the multi-disciplinary field algorithms inspired by naturally occurring phenomenon. This course provides introduces the following areas: L-systems, Cellular Automata, Emergence, Genetic Algorithms, Swarm Intelligence and Artificial Immune Systems. It's aim is to cover the fundamentals and enable readers to build up a proficiency in applying various algorithms to real-world problems.
University of Oxford*
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 who has a Turing Award due to his contributions to algorithms. Course link includes a very comprehensive set of reference notes by Avrim Blum.
This course is an introduction, by Prof. , 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....
The course taught by 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
Register** on to access the .
Taught by and
This is a graduate course in scientific computing created and taught by in 2014, which covers topics in computer science and statistics with applications from biology. The course is designed top-down, starting with a problem and then deriving a variety of solutions from scratch.
Course by Prof. Krishnamurthi (author of ) and numerous other on programming languages. Uses a custom designed programming language to teach the concepts. There was an hosted in 2012, which includes all lecture videos for you to enjoy.
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.
Intro to Ruby on Rails** *University of Texas*
Taught by who has analyzed the security of Electronic Voting Machines in the and .
Uses the programming language & book to understand the fundamentals of programming languages.
Practical Concurrent and Parallel Programming** *IT University of Copenhagen*
Taught by
Principles of Distributed Computing** *ETH-Zurich*
Reinforcement Learning in the Wild** *Yandex SDA*
semester also available, with more exercises
Register** on to access the .
An intro course in the spirit of SICP designed by (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...
Recommended
Prof Steven Skiena's no stranger to any student when it comes to algorithms. His seminal has been touted by many to be best for . In addition, he's also well-known for tutoring students in competitive . If you're looking to brush up your knowledge on Algorithms, you can't go wrong with this course.
Uses the programming language & book to understand the fundamentals of programming languages.
Course by Prof. Krishnamurthi (author of ) and numerous other on programming languages. Uses a custom designed programming language to teach the concepts. There was an hosted in 2012, which includes all lecture videos for you to enjoy.
This repository contains the materials as developed and used by to
This repository contains the materials as developed and used by to
An Introduction to Efficient Scientific Computation** *Universität Bremen*
Taught by who has analyzed the security of Electronic Voting Machines in the and .
(based on Scratch by MIT).
Parallelism and Concurrency** *Univ of Washington*
Applied Regression Methods** *Smith College*
Intro to Statistical Learning** *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 processing, data fitting, time series prediction, finance, and many others. EE103 is based on a book that and are currently writing. Students will use a new language called to do computations with matrices and vectors.
Written by the professor. Includes Instructor's Guide.
(epub, pdf)
Course taught by 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.
The course focusses on neural networks and uses the deep learning library (implemented in Lua) for exercises and assignments. Topics include: logistic regression, back-propagation, convolutional neural networks, max-margin learning, siamese networks, recurrent neural networks, LSTMs, hand-writing with recurrent neural networks, variational autoencoders and image generation and reinforcement learning
Prerequisites: The historical prerequisite was to pass an entrance exam in class, which covered undergraduate operating systems material (similar to ). 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).
Taught by who has analyzed the security of Electronic Voting Machines in the and .
UvA Deep Learning Course** *University of Amsterdam*
Note: These are student recorded cam videos of the 2011 course. The videos explain a lot of concepts required for the labs and assignments.
Course taught by and . 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.
In addition to basic first-order logic, when taught by Computer Science this course involves elements of Formal Methods and Automated Reasoning. Formal Methods is concerned with proving properties of algorithms, specifying programming tasks and synthesizing programs from proofs. We will use formal methods tools such as interactive proof assistants (see ). We will also spend two weeks on constructive type theory, the language used by the Coq and Nuprl proof assistants.
Course taught by and . 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.
This increasingly popular course is taught through the Data Science Center at NYU. Originally introduced by , it is now led by , 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.
This increasingly popular course is taught through the Data Science Center at NYU. Originally introduced by , it is now led by , 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.