Hacker News new | past | comments | ask | show | jobs | submit login
Computer Science courses with video lectures (github.com)
347 points by yogeshp on Nov 20, 2016 | hide | past | web | favorite | 23 comments

I can't say enough great things about the lectures on cs50.tv & cs75.tv. The prof (David Malan) is engaging, all the materials are available (homework, TA sessions, notes, slides, videos... everything). cs50 is particularly great for those who don't have a CS background but are interested in understanding CS principles from the ground up (vs trying to learn JS by doing a few tutorials).

Thanks - I've just started watching cs50 and he is great.

I've been doing professional software development for 10 years but his explanations finally made some very basic things click like they haven't ever before.

Was there anything particular that jumped out? I skimmed over the first three weeks but nothing caught my eye and my ADD kicked in. Going to check out CS75 now.

I'm currently working through CMU's 15-213. I highly recommend lectures 5-9 for anyone who never learned how processors handle functions calls on the lowest level. Part of the effectiveness of the class is CMU's interface for displaying the classes which is the best online class experience I've ever encountered.

Did this course as a student. Highly suggest reading the text book, quite literally has all the answers and explains everything very well.

Is there a similar list but without video lectures?

Here's a list with a mix of different kinds of courses:


Putting Compilers with Programming languages and theoretical CS is probably not a good idea.

The issues in compiler construction and optimization are orthogonal to those observed in designing programming languages, type systems, theorem provers etc.

Systems will be a better idea, or its own category.

It even has distributed systems of the VU (in Amsterdam) on it! Man, this list is comprehensive :O

For those that dont know: Maarten van Steen worked directly with Andy Tanenbaum and IMO he was one of the best if not the best teachers at my uni.

There are many other universities on it as well that I normally don't see. It would be amazing to see if more people have recommendations from lesser known online courses.

This list is awesome, and I hate to criticize. But it would be really nice if there was just a little more metadata for each link to provide some extra context.

Being on GitHub, this is probably a problem that could resolve itself with some PRs.


Unless you're naturally gifted in Mathematics it's difficult to obtain a BS in CS.

Really? Sitting here waiting to graduate with a BSc in CS and I am absolutely awful at math naturally.

As someone with a PhD in CS and working at one of the 'Big 4', I would like to disagree with you!

I am still afraid of calculus..

The type of math you need for CS should not be too difficult after you get some intuition in programming.

In combinatorics, for example, you just need a clear head to think through the cases, just as you would do when writing a program.

Hmm, this says more about the current state of the "PhD in CS" institution and the hiring practices at 'Big 4'...

Can you elaborate on which types of math you believe one needs for CS?

I'm not the parent but here's my list.

* Discrete Mathematics

* Linear Algebra

* Combinatorics

* Number Theory

* Introductory Real Analysis or "Calculus 1"

* Probability Theory

* Statistics

This will prepare you to be a general purpose CS professional. Further specialization will likely require some additional high level topics used in your field.

Even for these, some you will only need in specific fields.

Discrete Maths / Combinatorics : Probably everywhere.

Linear Algebra : Machine Learning, Computer Graphics, Computational Geometry, etc.

Number Theory : Cryptography.

'Calculus 1' : Useful to know for 'maturity', you will likely not use it unless you implement numerical algorithm libraries.

Probability / Statistics : Heavily in Machine Learning and related fields, in small doses everywhere else just because you need to be able to create useful observations and presentations.

I would add another branch:

Logic : If you work with programming languages or verification.

Yeah, you can't do half of these without understanding Calculus.

Well, understanding calculus and being able to compute indefinite integrals or solve differential equations analytically on paper are very different things.

I didn't downvote because I disagree with what you said (I do disagree), but because you didn't explain your stance at all, while surely knowing that there would be a lot of people who would disagree with you.

The only math I did in mine was conversion between decimal, hexadecimal and binary, for Network Protocols and Services.

Also, for PLT level stuff, I would say being gifted just makes grasping theory easier, but it's hardly essential.

How is that relevant to this post? This post isn't asking you or anyone else to get a BS in CS.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact