Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
#79 overallEvergreen

CS 61C Great Ideas in Computer Architecture

UC Berkeley

5 recommenders · 6 threads · recommended in 6 years, 2007–2023 · score 5.7

Go to course ↗

CS 61C, UC Berkeley's introductory computer architecture course, covers how machines work from C and assembly through CPU design, including number representation such as floating point. Its lectures are available free as video recordings, with some lectures varying between years.

Commenters call it a transformative foundation for understanding how computers actually work, and recommend it especially for learning C and C++ and machine-level behavior.

CS Fundamentals & Systemsbeginnerfreevideo lectures#computer architecture#assembly#mips#c#floating point#berkeley

Recommendations by year

20062026

What commenters said (6)

  1. Strongly recommendsaabhay2023in “Tell HN: UC Berkeley's CS61A/B/C are the best courses to learn CS and coding”

    I did not appreciate it at the time but CS 61 abc absolutely transformed by foundational understanding of computer science and the concepts they push are absolutely and non-negotiably important for someone to learn.

    My only recommendation is to learn programming in a more useful and productive language like C++, as the thing you do not want to do in CS61A is to simultaneously learn to program and learn the concepts in those courses. The right way to think about it is those courses are trying to make you go “ohh that’s how things actually work”.

  2. Strongly recommendstmsh2010in “0.30000000000000004”

    Welcome to the best lectures of your life:

    http://webcast.berkeley.edu/course_details_new.php?seriesid=...

    also available via iTunes U. I'm currently listening to them on my commute. Note, if you do actually go through the whole course -- you'll need to listen to a different year for lecture 24 or so -- that one is skipped. One of the highlights of my day is actually coming home and re-looking up what he's talking about.

    (Oh, and of course you can just listen to the two Floating Point lectures. It has to do with the non-uniform -- or at least non-linearly uniform mapping of numbers, represented with a significand/mantissa and an exponent, onto the set of real numbers + the fact that the exponent used is in base 2, in the hardware, so the floating point numbers are spread about in a particular way. The difference between real numbers, as you tick up the odometer with each bit, varies depending on where you are in the number line (with big numbers, it's actually much more, with smaller numbers it's pretty minimal, but not unnoticeable as seen with this example. Does that make sense? Maybe I'm off about this... Anyway, still obviously recommend the lectures. And now, I'm going to read up more on ALUs and MUXs..)

  3. RecommendsCalChris2020in “Why are Soviet math textbooks so hardcore in comparison to US textbooks? (2017)”

    (As you know) most of the lower div EECS courses inherit slide decks and the coverage is set by the department. CS70 has a wonderful set of notes which should be a book. I regularly go through the CS61C, CS152 and CS252 decks; those are great Berkeley classes. CS162 has a good set and then Kubi has his which even better. Hilfinger's CS61A notes were quite good. The deck the EE40 prof used was based on a previous semester and it was pretty good. It's just that the class is an insane amount of material and work.

    There was an intent behind the work. All of the lower div classes are hard with a massive amount of content. But you can show up a Berkeley from a substandard high school on the wrong side of the tracks and blow it out of the water; a buddy of mine was like that and went to Columbia for his PhD. It's very simple. You just have to work. Immediately. Day one. I don't think Berkeley EECS rewards creativity. Indeed I think EECS punishes creativity. But EECS teaches its students to work their asses off, regardless of whether they came from Lick Wilmerding or Skyline.

    Go Bears.

  4. Recommendsblt2014in “Ask HN: How do I learn C and C++ when I love high-level languages?”

    You need to understand how machines work if you want to be a good C/C++ programmer. I suggest Berkeley's CS 61C video lectures: https://www.youtube.com/playlist?list=PL58D76972AD4CB040.

  5. Recommendsblt2013in “Deep C and C++ (2011)”

    I would recommend the CS 61C course videos from Berkeley: http://www.youtube.com/playlist?list=PL01C2A0DE46A54CA9

    It uses MIPS assembly, which you can run on a simulator. I don't think many machine architecture classes teach x86 because it's more complex. The MIPS knowledge from that course has translated easily to x86 in my tiny experience of peering into my compiler's assembly output.

  6. Recommendstim2007in “News.YC Library”

    free computer science video lectures: http://www.lecturefox.com/computerscience

    The first on the list is great: Dr. Garcia presents the outstanding computer science lecture Machine Structures (C, Assembly, CPU design...) at the University of California Berkeley.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help