Awesome Lists

awesome-courses

by prakhar1989

awesome listpushed over 3 years ago

books List of awesome university courses for learning Computer Science!

AI summary

Course catalog

Lists and describes various computer science courses with their resources and topics.

stars
58K
forks
8.2K
watching
2.3K
awesome lists
11
entries
702
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/prakhar1989/awesome-courses/links.svg)](https://awesome.facts.dev/awesome/prakhar1989/awesome-courses)
HTML
<a href="https://awesome.facts.dev/awesome/prakhar1989/awesome-courses"><img src="https://awesome.facts.dev/shield/prakhar1989/awesome-courses/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/prakhar1989/awesome-courses/links.svg

What's in the list

702 links in 377 sections, with live GitHub stats.activeno commit in 2y

Courses / Systems

Courses / Systems / CS 61C

Courses / Systems

Courses / Systems / CS 107

Courses / Systems

Courses / Systems / CS 140

Courses / Systems

Courses / Systems / 6.004

Courses / Systems

Courses / Systems / CS 162 / 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 distributed systems, and storage systems, including multiple-program systems (processes, interprocess communication, and synchronization), memory allocation (segmentation, paging), resource allocation and scheduling, file systems, basic networking (sockets, layering, APIs, reliability), transactions, security, and privacy

Courses / Systems

Courses / Systems / CS 168

Courses / Systems

Courses / Systems / CS 179

Courses / Systems

Courses / Systems / CS 186

Courses / Systems

Courses / Systems / CS 241

Courses / Systems

Courses / Systems / CS 425

Courses / Systems

Courses / Systems / CS 452

Courses / Systems

Courses / Systems / CS 2043

Courses / Systems

Courses / Systems / CS 3410

Courses / Systems

Courses / Systems / CS 4410

Courses / Systems

Courses / Systems / CS 4414

Courses / Systems

Courses / Systems / CS 5412

  • book

    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

Courses / Systems

  • CSCE 3613

    An introduction to operating systems including topics in system structures, process management, storage management, files, distributed systems, and case studies

Courses / Systems / CSCE 3613

Courses / Systems

Courses / Systems / CSCI-UA.0202: Operating Systems (Undergrad)

Courses / Systems

Courses / Systems / Hack the Kernel

  • Dr.Geoffrey Challen

    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

Courses / Systems

Courses / Systems / ECE 459

Courses / Systems

Courses / Systems / ECGR4101/5101

Courses / Systems

Courses / Systems / PODC

Courses / Systems

Courses / Systems / 6.824

Courses / Systems

Courses / Systems / 6.828

  • 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

Courses / Systems

Courses / Systems / CSEP 552

  • Lectures

    of a previous session are available to watch

Courses / Systems

Courses / Systems / 15-213

Courses / Systems

Courses / Systems / 15-319/619

Courses / Systems

Courses / Systems / 15-410

Courses / Systems

Courses / Systems / 15-418

Courses / Systems

Courses / Systems / 15-440

Courses / Systems

Courses / Systems / 15-721

Courses / Systems

Courses / Systems / 15-445/645

Courses / Systems

Courses / Systems / 15-749

Courses / Systems

Courses / Systems / 18-447

  • Onur Mutlu

    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

  • Homeworks

    7 HWs with answer set as well

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 75

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 91

  • Pyret

    Uses the programming language & book to understand the fundamentals of programming languages

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CIS 194

  • Previous

    semester also available, with more exercises

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CIS 198

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CMSC 430

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / COS 326

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 143

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 164

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 173

  • HtDP

    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

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 223

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 240h

Courses / Programming Languages / Compilers

  • CS 421

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

Courses / Programming Languages / Compilers / CS 421

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 3110

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 4120

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 4400

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 4610

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 5114

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 5142

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 5470

  • fantastic blog

    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

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CS 6118

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CSE 341

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / CSE P 501

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / DMFP

Courses / Programming Languages / Compilers

Courses / Programming Languages / Compilers / 6.945

  • Assignments

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

Courses / Programming Languages / Compilers

Courses / Algorithms

Courses / Algorithms / CS 61B

  • Full Lecture Materials

    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

  • Labs

    The link to labs and projects is included in the website

Courses / Algorithms

Courses / Algorithms / CS 97SI

Courses / Algorithms

Courses / Algorithms / CS 224

Courses / Algorithms

Courses / Algorithms / CS 261

Courses / Algorithms

Courses / Algorithms / CS 473/573

Courses / Algorithms

Courses / Algorithms / CS 2150

Courses / Algorithms

Courses / Algorithms / CS 4820

Courses / Algorithms

Courses / Algorithms / CSCI 104

Courses / Algorithms

Courses / Algorithms / CSCI 135

Courses / Algorithms

Courses / Algorithms / CSCI 235

Courses / Algorithms

Courses / Algorithms / CSCI 335

Courses / Algorithms

Courses / Algorithms / CSE 331

Courses / Algorithms

Courses / Algorithms / CSE 373

  • book

    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

Courses / Algorithms

Courses / Algorithms / ECS 122A

  • Dan Gusfield

    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

Courses / Algorithms

Courses / Algorithms / ECS 222A

  • Dan Gusfield

    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

Courses / Algorithms

Courses / Algorithms / 6.INT

Courses / Algorithms

Courses / Algorithms / 6.006

Courses / Algorithms

Courses / Algorithms / 6.046J/18.410J

  • 6.006

    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 of sophisticated algorithms

Courses / Algorithms

Courses / Algorithms / 6.851

  • Advanced Algorithms

    This is an advanced DS course, you must be done with the course before attempting this one

  • Lectures

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

  • Assignments

    contains the calendar as well

Courses / Algorithms

Courses / Algorithms / 6.854/18.415J

  • NB

    on to access the

Courses / Algorithms

Courses / Algorithms / 6.854J/18.415J

Courses / Algorithms

Courses / Algorithms / 15-451/651

  • Manuel Blum

    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

Courses / Algorithms

Courses / Algorithms / 16s-4102

Courses / CS Theory

Courses / CS Theory / CIS 500

Courses / CS Theory

Courses / CS Theory / CS 173

Courses / CS Theory

Courses / CS Theory / CS 374

Courses / CS Theory

Courses / CS Theory / CS 3110

Courses / CS Theory

Courses / CS Theory / CS 3220

Courses / CS Theory

Courses / CS Theory / CS 4300

Courses / CS Theory

Courses / CS Theory / CS 4810

Courses / CS Theory

Courses / CS Theory / CS 6810

Courses / CS Theory

Courses / CS Theory / CSCE 3193

Courses / CS Theory

Courses / CS Theory / 6.045

Courses / Introduction to CS

Courses / Introduction to CS / CS 10

Courses / Introduction to CS

Courses / Introduction to CS / CS 50

Courses / Introduction to CS

Courses / Introduction to CS / CS 61A

Courses / Introduction to CS

Courses / Introduction to CS / CS 61AS

Courses / Introduction to CS

Courses / Introduction to CS / CS 106A

Courses / Introduction to CS

Courses / Introduction to CS / CS 106B

Courses / Introduction to CS

Courses / Introduction to CS / CS 107

Courses / Introduction to CS

Courses / Introduction to CS / CS 109

Courses / Introduction to CS

Courses / Introduction to CS / CS 1109

Courses / Introduction to CS

Courses / Introduction to CS / CS 1110

Courses / Introduction to CS

Courses / Introduction to CS / CS 1112

Courses / Introduction to CS

Courses / Introduction to CS / CS 1115

Courses / Introduction to CS

Courses / Introduction to CS / CS 1130

Courses / Introduction to CS

Courses / Introduction to CS / CS 1133

Courses / Introduction to CS

Courses / Introduction to CS / CS 1410-2

Courses / Introduction to CS

Courses / Introduction to CS / CS 2110

  • lectures

    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

Courses / Introduction to CS

Courses / Introduction to CS / CS 4302

Courses / Introduction to CS

Courses / Introduction to CS / CSCE 2004

Courses / Introduction to CS

Courses / Introduction to CS / CSCI E-1

Courses / Introduction to CS

Courses / Introduction to CS / CS-for-all

Courses / Introduction to CS

Courses / Introduction to CS / 6.001

Courses / Introduction to CS

Courses / Introduction to CS / 6.005

Courses / Machine Learning

Courses / Machine Learning / DEEPNLP

Courses / Machine Learning

Courses / Machine Learning / CS20si

Courses / Machine Learning

Courses / Machine Learning / COMS 4771

  • Tony Jebara

    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

Courses / Machine Learning

Courses / Machine Learning / CS 109

Courses / Machine Learning

Courses / Machine Learning / CS 156

Courses / Machine Learning

Courses / Machine Learning / CS 189

Courses / Machine Learning

Courses / Machine Learning / CS 224d

Courses / Machine Learning

Courses / Machine Learning / CS 229r

Courses / Machine Learning

Courses / Machine Learning / CS 231n

Courses / Machine Learning

Courses / Machine Learning / CS 287

Courses / Machine Learning

Courses / Machine Learning / CS 395T

Courses / Machine Learning

Courses / Machine Learning / CS 4780

Courses / Machine Learning

Courses / Machine Learning / CS 4786

Courses / Machine Learning

Courses / Machine Learning / CVX 101

  • Textbook

    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 quadratic programs, semidefinite programming, minimax, extremal volume, and other problems. Optimality conditions, duality theory, theorems of alternative, and applications. Interior-point methods. Applications to signal processing, statistics and machine learning, control and mechanical engineering, digital and analog circuit design, and finance. - -

Courses / Machine Learning

Courses / Machine Learning / DS-GA 1008

  • Yann Lecun

    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

Courses / Machine Learning

Courses / Machine Learning / EECS E6893 & EECS E6895

Courses / Machine Learning

Courses / Machine Learning / EECS E6894

Courses / Machine Learning

Courses / Machine Learning / EE103

  • Stephen Boyd

    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

Courses / Machine Learning

Courses / Machine Learning / Fast.ai Introduction to Machine Learning for Coders

Courses / Machine Learning

Courses / Machine Learning / Info 290

Courses / Machine Learning

Courses / Machine Learning / Machine Learning: 2014-2015

  • Torch

    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

Courses / Machine Learning

Courses / Machine Learning / StatLearning

Courses / Machine Learning

Courses / Machine Learning / 10-601

Courses / Machine Learning

Courses / Machine Learning / 10-708

Courses / Machine Learning

Courses / Machine Learning / CS246

Courses / Machine Learning

Courses / Machine Learning / CS276

Courses / Machine Learning

Courses / Machine Learning / Practical_RL

Courses / Machine Learning

Courses / Machine Learning / UvA DEEP LEARNING

Courses / Security

Courses / Security / CIS 4930 / CIS 5930

  • W. Owen Redwood

    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

Courses / Security

Courses / Security / CS 5430

Courses / Security

Courses / Security / CSCI 4968

  • RPISEC

    This repository contains the materials as developed and used by to teach Modern Binary Exploitation at in Spring 2015. This was a university course developed and run solely by students to teach skills in vulnerability research, reverse engineering, and binary exploitation

Courses / Security

Courses / Security / CSCI 4976

  • RPISEC

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

Courses / Security

Courses / Security / EECS 588

  • J. Alex Halderman

    Taught by who has analyzed the security of Electronic Voting Machines in the and

  • Readings

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

Courses / Security

Courses / Security / 6.857

  • Lecture Notes

    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 (encryption, digital signatures), public-key attacks, web browser security, biometrics, electronic cash, viruses, electronic voting, Assignments include a group final project. Topics may vary year to year

Courses / Security

Courses / Security / 6.858

Courses / Security

Courses / Artificial Intelligence

Courses / Artificial Intelligence / CS 188

Courses / Artificial Intelligence

Courses / Artificial Intelligence / CS 4700

Courses / Artificial Intelligence

Courses / Artificial Intelligence / CS 6700

Courses / Artificial Intelligence

Courses / Artificial Intelligence / 6.868J

  • Marvin Minsky

    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. connectionist models, and logical vs. common-sense theories of learning

Courses / Computer Graphics

Courses / Computer Graphics / CAP 5415

Courses / Computer Graphics

Courses / Computer Graphics / CIS 581

Courses / Computer Graphics

Courses / Computer Graphics / CMU 462

Courses / Computer Graphics

Courses / Computer Graphics / CS 378

Courses / Computer Graphics

Courses / Computer Graphics / CS 4620

Courses / Computer Graphics

Courses / Computer Graphics / CS 4670

Courses / Computer Graphics

Courses / Computer Graphics / CS 6670

Courses / Computer Graphics

Courses / Computer Graphics / CSCI 1230

Courses / Computer Graphics

Courses / Computer Graphics / CSCI-GA.2270-001

Courses / Misc

Courses / Misc / AM 207

Courses / Misc

Courses / Misc / CS 75

  • Ming Y. Chow

    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

Courses / Misc

Courses / Misc / CS 50

  • CS50

    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, students will have programmed several of their own games and gained a thorough understanding of the basics of game design and development

Courses / Misc

Courses / Misc / CS 100

Courses / Misc

Courses / Misc / CS 193a

  • here

    Videos: Videos list can be found

  • here

    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

Courses / Misc

Courses / Misc / CS 193p

Courses / Misc

Courses / Misc / CS 262a

  • UCB's CS162

    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)

Courses / Misc

Courses / Misc / CS 3152

Courses / Misc

Courses / Misc / CS 4152

Courses / Misc

Courses / Misc / CS 4154

Courses / Misc

Courses / Misc / CS 4812

Courses / Misc

Courses / Misc / CS 4860

  • www.nuprl.org

    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

Courses / Misc

Courses / Misc / CS 5150

Courses / Misc

Courses / Misc / CS 5220

Courses / Misc

Courses / Misc / CS 5540

Courses / Misc

Courses / Misc / CS 5724

Courses / Misc

Courses / Misc / CS 6452

Courses / Misc

Courses / Misc / CS 6630

Courses / Misc

Courses / Misc / CS 6640

Courses / Misc

Courses / Misc / CS 6840

Courses / Misc

Courses / Misc / CSE 154

Courses / Misc

Courses / Misc / ESM 296-4F

Courses / Misc

Courses / Misc / ICS 314

Courses / Misc

Courses / Misc / I485 / H400

  • Luis Rocha

    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

Courses / Misc

Courses / Misc / Open Sourced Elective: Database and Rails

Courses / Misc

Courses / Misc / SCICOMP

  • Oliver Serang

    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

Courses / Misc

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.