Awesome Courses
by prakhar1989 · prakhar1989/awesome-courses
Awesome university courses for learning computer science.
. It introduces students to the design of computer algorithms, as well as analysis of sophisticated algorithms.
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.
Data Structures and Object Oriented Design University of Southern California (USC)
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.
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
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.
, 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 logic
Algorithms & Models of Computation (Fall 2014) University of Illinois Urbana-Champaign
Computer Vision and Computational Photography University of Pennsylvania
Introduction to Computational Science and Engineering Using Matlab Graphical User Interfaces Cornell University
Structure & Interpretation of Computer Programs [Racket] UC Berkeley
(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...
Convolutional Neural Networks for Visual Recognition Stanford University
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
and Lieven Vandenberghe are currently writing. Students will use a new language called Julia to do computations with matrices and vectors.
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.
Tdeep 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
, 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.
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 LÖVE 2D, as well as languages like Lua and C#. By class’s end, students will have programmed
Humanitarian Free & Open Source Software Development Rochester Institute of Technology
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.
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
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.
An Introduction to Efficient Scientific Computation Universität Bremen
). 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).
). We will also spend two weeks on constructive type theory, the language used by the Coq and Nuprl proof assistants.
Extensive programming assignments, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or other "functional" language.
Principles of Programming Languages Politecnico di Milano - Lecture Notes - Readings
Programming Languages and Compilers Univ of Illinois, Urbana-Champaign
CPython internals: A ten-hour codewalk through the Python interpreter source code University of Rochester
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.
) 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.
, this course teaches how to build a compiler in OCaml
programming language & PAPL book to understand the fundamentals of programming languages.
who has analyzed the security of Electronic Voting Machines in the US and over seas.
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.
Parallel Computer Architecture and Programming Carnegie-Mellon University
is also a gem and recommended as a must read in Google's tutorial on Distributed System Design
Introduction to the Internet: Architecture and Protocols UC Berkeley
Systems Programming (Spring 2016) Univ of Illinois, Urbana-Champaign
Great Ideas in Computer Architecture (Machine Structures) UC Berkeley
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.
UNIX System Programming (formerly UNIX Tools) CUNY Hunter College
Embedded Systems using the Renesas RX63N Processor University of North Carolina at Charlotte
C
L
C
A
D
J
P
S
A
H
A
C
C
C
L