HACKER Q&A
📣 st1x7

What are the best advanced computer science courses online?


It's easy to point to good beginner material like CS50 for example. But what about more advanced topics for non-beginners?


  👤 ipnon Accepted Answer ✓
Stanford's experimental operating systems course[0], where you buy a Raspberry Pi and write your operating system on the bare metal by using the reference specifications.

"You should take this class if: 1. You write code well OR (you don't yet write code well AND have a lot of time to devote to the class); 2. AND you find these systems topics interesting.

The people that found the class valuable in the past were entirely drawn from this demographic. (In particular: I would not take this course if you were looking for an easier way to satisfy a cs140 requirement.) We are trying to go as far as possible as quickly as possible with a group interested in doing so." [emphasis mine]

[0] https://github.com/dddrrreee/cs140e-20win/


👤 thom
This is going to sound dumb, but in case this is something you could possibly get excited about: research and build chess engines. There is almost no part of computer science that hasn't at some point intersected with chess computers, from early forays into game theory, through close-to-the-metal optimisations like bitboards and vector operations, right up to the state of the art in deep learning. I genuinely think you can get a fairly complete CS education just by building a series of increasingly complex engines (and UIs!) and you will find yourself in the company of basically all the greats like John von Neumann, Alan Turing, Donald Knuth, Ken Thompson etc etc.

👤 KiranRao0
CMU 15-445 Database Course and accompanying Youtube lecture series is a great intro to understanding the inner mechanism of a relational database.

https://15445.courses.cs.cmu.edu/fall2019/schedule.html


👤 donkey-hotei
If you're interested in low-level systems concepts and learning how to write exploits: I highly recommend Modern Binary Exploitation by RPISEC.

[0]: http://security.cs.rpi.edu/courses/binexp-spring2015/


👤 mehrdadn
Advanced data structures: http://courses.csail.mit.edu/6.851/

👤 chriszhang
OMSCS by Georgia Institute of Technology is by far the best course I have come across. You get a degree too in the end. Caveat: It takes a lot of effort. It is like doing a full time course and the degree they award in the end is indistinguishable from a full time degree.

👤 neillyons
Not typical computer science courses, but the following video series really improved my understanding of how computers work.

- Build an 8-bit computer from scratch video series - https://eater.net/8bit

- CPython internals: A ten-hour codewalk through the Python interpreter source code - https://www.youtube.com/playlist?list=PLzV58Zm8FuBL6OAv1Yu6A...


👤 ArtWomb
CMU's Ryan O'Donnell's YouTube channel certainly deserves inclusion on any such list: CS Theory Toolkit, Street Fighting Math, Quantum Computing

https://www.youtube.com/channel/UCWnu2XymDtORV--qG2uG5eQ


👤 snidane
Mining Massive DataSets (MMDS) from Stanford professors.

Videos: https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62...

Book: http://www.mmds.org/


👤 diehunde
- CMU's database systems courses on Youtube. Even the intro one is pretty advanced.

- MIT 6.824 Distributed Systems also on Youtube


👤 otras
MIT's 6.824: Distributed Systems (taught by Robert Morris, of both Morris worm and Viaweb/Y Combinator fame) is completely open and available online, and it includes video lectures, notes, readings, and programming assignments from as recent as Spring 2020 (including half of the lectures recorded from home as the pandemic strikes). The assignments even include auto-graded testing scripts, so you can verify your solution to the assignments.

https://pdos.csail.mit.edu/6.824/


👤 chlopez21b
Check out "Artificial Intelligence" on MIT OpenCourseware:

https://ocw.mit.edu/courses/electrical-engineering-and-compu...

OpenCourseware was historically one of the first offerings of its kind. I remember using it almost 20 years ago, and it's still a great offering.


👤 thejteam
Somewhat related, does anybody know any "beginner material for non-beginners".

Pretend I want to learn web development. I have been doing desktop programming and data analysis for many years, so I know all about programming but nothing about how a web-app works.

I would be looking for something that explained web apps assuming I know little to nothing about them, but not "how to program" because I don't want to sit through learning about loops or variables.

And pretend I'm also the type of person that wants concepts and not just tutorials.

Anything like that?


👤 mindwok
Does anyone know of entire degrees/programs with the kind of rigour in these courses, especially with regards to assessments, and direct access to lecturers and tutors etc?

I'm going back to physical university and the driving factor was the inability to get help when I needed it. I tried a few coursera courses and many of my questions sat unanswered on forums for days and even weeks. I'd be happy to pay a reasonable premium for timely access to experts on the subject like you get at a real university.


👤 machinelabo
If someone has a recommendation for how to build/architect large GUI applications like Photoshop. For e.g., how to think about Undo operation right from the get-go . I think that would be amazing to learn if there is a course like that.

👤 vips7L
Open Security Training, everything about assembly and reverse engineering

https://opensecuritytraining.info/


👤 gauku
Might not be exactly what you're looking for, but if advanced ML and related application topics are of interest to you, please check this out - https://www.reddit.com/r/MachineLearning/comments/fdw0ax/d_a...

It's a (organised) dump of advanced courses from some of the best researchers in the field.


👤 dannygarcia
I would say Roughgarden's four CS Algorithms courses on Coursera are somewhat more advanced than CS50: https://www.coursera.org/specializations/algorithms

It covers foundational topics like asymptotic notation. However there is some reading required if you a C in high school calculus like me.


👤 busrf
https://pwn.college/ (CSE466 at Arizona State University) is a great offensive computer security course. The lecture videos, slides, labs and lab infrastructure from this semester are all open to the public.

👤 michelpp
Great causal inference course from Brady Neal

https://www.bradyneal.com/causal-inference-course


👤 nemoniac
Understand computers from the ground up with

https://www.nand2tetris.org/


👤 maerF0x0
> Competitions resulting in multiple winners are rare, but this may have something to do with this particular sequence.

So if you're going to play the lottery understand that the EROI is actually lower on patterns that humans may follow (like 5-10, birthdays etc) .


👤 wagslane
I've been working on some that're released on https://qvault.io

Specifically I'm working on an advanced algorithms course (think CS 3XXX in university). Should be out in a few weeks


👤 wagslane
I've been working on some that are released on https://qvault.io

Specifically I'm working on an advanced algorithms course (think CS 3XXX) in university. Should be out in a few weeks


👤 omarhaneef
An advanced course is — almost by definition — not general, and geared towards a specialization within a context.

So an advanced course would be about data science, cryptography, machine learning, vector calculus, autonomous vehicles, object recognition or some other “vertical.”

Do you know which direction you want to go in and what you want to learn? Depending on that answer you might get a different recommendation.

Having said all that, the answer is Udacity.


👤 cambalache
Stanford is a treasure trove of advanced courses in ML/AI.

Reddit has also this pretty great list of advanced courses in ML: https://www.reddit.com/r/MachineLearning/comments/fdw0ax/d_a...

There is this from MIT (Graph Analysis) https://people.csail.mit.edu/jshun/6886-s18/

I like the distributed systems class too (The assignments are in Golang) : https://pdos.csail.mit.edu/6.824/

My "loose" definition of advanced: "If you follow the class and do the work you will be able to implement something not trivial"


👤 johndoe42377