It's tricky to run a large university class. It's tricky to do it well, and to do so with lessening resources. This is a guide for how CS10 works at UC Berkeley.
This guide is both for course staff, but also should serve a resource for anyone else in academia to use, and maybe even improve upon. Because this is a public guide, there may be sections which are intentionally missing, or parts that are a bit unclear. If you'd like to know, please get in touch!
CS10, is UC Berkeley's offering of BJC, an entry level programming course, designed for non-majors.
The Beauty and Joy of Computing is a curriculum that's designed both for high school students, and for college-level "CS0" courses. The course is built around a blocks-based programming language called Snap!, which inherits much of the design from MIT's Scratch. BJC focuses on some of the "big ideas" of computer science:
- Abstraction
- Recursion
- Lambdas (Higher Order Functions)
Yes, and no... As we scale the course and have new instructors, things can get complex. However, writing down our processes turns out to be a great way to clarify what we know and this guide is hopefully something others will find useful.
Don't teach CS10? That's cool, too! Here's how you should approach this guide:
TODO... In the meantime, just skip all the uninteresting parts. ;)