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

CS10 The Beauty and Joy of Computing

UC Berkeley

3 recommenders · 2 threads · recommended in 2 years, 2022–2023 · score 3.2

Search for it ↗

CS10 The Beauty and Joy of Computing is UC Berkeley's introductory computer science course, designed for students with little or no programming background. It teaches computational thinking and programming through Snap!, a visual block-based language, and covers topics such as functional programming and recursion.

Commenters describe it as a good intro to thinking like a programmer and a sensible step before the CS61 series.

CS Fundamentals & Systemsbeginner#intro cs#snap!#computational thinking#berkeley#brian harvey

Recommendations by year

20062026

What commenters said (5)

  1. Strongly recommendswayne-li22022in “My experience as a Unit-18 Berkeley Lecturer”

    61A is not a weeder course at all. It’s theoretically the CS 102 equivalent at Berkeley, with CS 10 being the CS 101 of Berkeley.

    The problem is that because CS 10 is not a required course, most freshmen that come into Berkeley, many who were top of their class in high school, think “hm I can just take 61A since it’s mandatory.” It’s not entirely their fault, since Berkeley doesn’t do a very good job of advertising the CS 10 course. It’s fairly new, and there’s still a stigma around it — that you’re “not as smart” if you need to take it. The result is you have almost 2000 students every semester, and many of them are inevitably going to struggle.

    I’ve sat in some CS 10 lectures (albeit while I was graduating with a CS degree and TAing CS 61B) and watched my friends do the homework. I didn’t have the luxury of taking CS 10. It’s a great way to learn how to think like a programmer. My personal recommendation is that every incoming Berkeley freshman going into CS should take CS 10, and it should be made mandatory. The CS degree only takes 3 years to complete all the required courses at a fairly leisurely pace, so there’s definitely room to add an extra requirement. Especially since now, the incredibly stupid EE16B has been dropped from the curriculum.

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

    I agree although at the time these classes seemed so unnecessarily hard.

    I was fortunate to take - - CS60A with Stuart Russell - CS60B with John Ousterhout (now Stanford) - CS60C with Paul Hilfinger - CS150 with Randy Katz

    I believe (after watching videos online) that CS10 The Beauty and Joy of Computing is also a wonderful intro course to take before the CS61 series.

    My daughter took CS61B with Paul Hilfinger and he was so gracious to take a picture with the 3 of us together. I have it here on my office desk!!!

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

    I was a CS61A lecturer for 3 semesters. I thought that we covered very valuable content, but also did not think that it was appropriate for new programmers. I encouraged students to enroll in a true intro class, like CS10, before embarking on the 61A journey.

    Here’s my post about how to audit 61A : http://blog.pamelafox.org/2022/07/how-to-audit-cs61a.html?m=...

  4. MentionsDonHopkins2026in “Structure and Interpretation of Computer Programs Video Lectures (1986)”

    Everything you can do with Scheme you can also do with Snap! with a visual blocks programming user interface. Functional programming, recursion, higher order functions, closures, continuations, macros, metaprogramming, all described by Brian Harvey's curriculum, the Beauty and Joy of Computing:

    https://bjc.berkeley.edu/team/snap/

    Snap!Con 2025 - Brian Harvey - ACM Karlstrom Award Address

    https://www.youtube.com/watch?v=pDK2PE_pkqQ

    Brian calls SICP the actual best computer science course ever invented, which is quite a complement from the guy who wrote the second best computer science course ever invented. ;)

    He has a lot of interesting thoughs about AI in education.

  5. Mentionsblendo2016in “Principles for Programming Languages for Learners”

    And now a derivative of Scratch can take you through the new AP "Computer Science Principles" course. See http://bjc.berkeley.edu/, which says: "Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students."

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