#141 overall
CS10 The Beauty and Joy of Computing
UC Berkeley
3 recommenders · 2 threads · recommended in 2 years, 2022–2023 · score 3.2
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.
Recommendations by year
20062026
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.
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!!!
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=...
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.
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."