Your Navigation Bar didn't load. Overview News Calendar Staff Grades Resources

UC Berkeley


Fall 2009 students work together using pair programming

Fall 2009 students pair programming in Scratch.

   CS10, The Beauty and Joy of Computing, is an exciting new course offered by the UC Berkeley EECS Dept. Computing has changed the world in profound ways. It has opened up wonderful new ways for people to connect, design, research, play, create, and express themselves. However, just using a computer is only a small part of the picture. The real transformative and empowering experience comes when one learns how to program the computer, to translate ideas into code. This course will teach students how to do exactly that, using BYOB (based on Scratch), one of the friendliest programming languages ever invented. It's purely graphical, which means programming involves simply dragging blocks around, and building bigger blocks out of smaller blocks.

Our new Mac lab

Our labs are held in the Apple Orchard, which is not only the newest lab on campus with the fastest machines, but also has the most natural light!

   But this course is far more than just learning to program. We'll focus on some of the "Big Ideas" of computing, such as abstraction, design, recursion, concurrency, simulations, and the limits of computation. We'll show some beautiful applications of computing that have changed the world, talk about the history of computing, and where it will go in the future. Throughout the course, relevance will be emphasized: relevance to the student and to society. As an example, the final project will be completely of the students' choosing, on a topic most interesting to them. The overarching theme is to expose students to the beauty and joy of computing. This course is designed for computing non-majors, although interested majors are certainly welcome to take the class as well! We are especially excited about bringing computing (through this course) to traditionally under-represented groups, i.e., women and ethnic minorities. Enrollment for the Fall 2010 pilot offering will be limited to 90 freshmen and junior-transfer students. Enrollment will be opened up to everyone in the Spring of 2011.

   Some context: in the Fall of 2009, we piloted a 2-unit version of this course as the freshman/sophomore seminar CS39N: The Beauty and Joy of Computing to 20 students. It was such a success that we decided to move ahead to make this course our new computing course for non-majors, replacing the venerable CS3L; however, we still offer the self-paced course CS3S for those interested in learning to program in Scheme. This Fall 2010 is a 90-person pilot, since it will be the first time some of the material will be seen by students. We've kept the best elements of CS39N and added new material that we hope you'll enjoy!

   We will be using Pair Programming, described best by Laurie Williams, a computer science professor at North Carolina State University: "Two programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work. On demand, the two programmers can brainstorm any challenging problem. Because the two programmers periodically switch roles, they work together as equals to develop software."

   We are delighted to announce that this course was recently chosen as one of the 5 National pilots by the CollegeBoard (the folks that offer Advanced Placement exams) as a model for an exciting new First Course in Computing: Computer Science : Principles. Our intent is to provide this entire course, through Creative Commons, to the global community. As an example, all of our lecture webcasts are available, our readings are all free (linked from our calendar), and our labs and homework are publicly available via our Moodle server (also linked from our calendar). We'll package the whole thing into a single zip file at the end of the Fall 2010 semester. We'll even provide High Definition lecture videos with extra cool content! As well, we've been working closely with three local high school computer science teachers to develop this course, and they may run variants of this course at their school in the near future:

   λ  Josh Paley of Gunn High School in Palo Alto, CA
   λ  Eugene Lemon of Ralph Bunche High School in Oakland, CA
   λ  Ray Pedersen of Albany High School in Albany, CA


2011-01-12 Survey Results from Fall 2010 students (N = 59)
Here are the % of students who did not disagree with the following statements (i.e,. SA + A + N), where SA = Strongly Agree, A = Agree, N = Neutral (SA + A + N breakdown). "The course ..."
  • "was of high quality" ............................ 97% (45% + 42% + 10%)
  • "stimulated my enthusiasm for further learning" .. 97% (46% + 37% + 14%)
  • "was of value to me" ............................. 98% (36% + 49% + 14%)
  • "helped me develop computatinal thinking skills .. 98% (39% + 51% + 8%)
  • "taught me a great deal" ......................... 97% (36% + 46% + 15%)
  • "as a whole was" (Excellent + Very Good + Good) ...97% (41% + 39% + 17%)
2010-12-21 Final Exam Statistics
The mean for the Final Exam was 48.3, with a standard deviation of 15.1. Here is the histogram.
2010-11-23 Final Project Presentations (lunch included)!
We'll be holding final project presentations on Monday, December 6 from 10:30am - 2pm in 306 Soda Hall. Lunch will be provided to all presenters.
2010-10-29 Midterm Statistics
The mean for the Midterm was 38.3, with a standard deviation of 9.3. Here is the histogram.
2010-10-01 Quest Statistics
The mean for the Quest was 63.7, with a standard deviation of 10.8. Here is the histogram.
2010-08-27 Potluck!
We will be having a potluck on Friday, August 27, from 5PM to 7PM, in 430 Soda (the Wozniak lounge). Drop by for food and games with the course staff!
2010-08-06 BYOB 3.0 Released!
We're pleased to announce the release of BYOB 3.0, the Build Your Own Blocks Scratch offshoot we've been working on with Jens Mönig. Be sure to check it out in the "Resources" section below. Thanks to everyone involved, but there's still a lot of work to do! Contact us to get involved, no matter who you are!


Weekly Schedule

Hour Monday Tuesday Wednesday Thursday Friday
10:00am   Office Hours
(Luke Segars)
200 Sutardja Dai
11:00am Lecture
155 Donner Lab
155 Donner Lab
12:00pm Lab 11
(Luke Segars)
200 Sutardja Dai
Office Hours
(Jonathan Kotker)
751 Soda
  Lab 11
(Luke Segars)
200 Sutardja Dai
  Discussion 101
(Luke Segars)
320 Soda
1:00pm         Office Hours
(Luke Segars)
283E Soda Hall
2:00pm Lab 12
(Luke Segars)
200 Sutardja Dai
  Lab 12
(Luke Segars)
200 Sutardja Dai
  Office Hours
(Dan Garcia)
200 Sutardja Dai
3:00pm Office Hours
(Jonathan Kotker)
200 Sutardja Dai
  Discussion 102
(Luke Segars)
310 Soda
Office Hours
(Jonathan Kotker)
711 Soda
4:00pm Lab 13
(Jonathan Kotker)
200 Sutardja Dai
Office Hours
(Brian Harvey)
781 Soda
Lab 13
(Jonathan Kotker)
200 Sutardja Dai
    Discussion 103
(Jonathan Kotker)
310 Soda
5:30pm Office Hours
(Brian Harvey)
781 Soda

Semester Schedule

Week Days in 2010 Readings (Sa/Su) Lecture 1 (M) Lab 1 (M) Lecture 2 (W) Lab 2 (W) Discussion (F) HW, Exams & Projects
1 08-23 to 08-27 Scratch: Programming for All (CACM), AP CS Principles Rationale, Big Ideas, and Practices No Class Welcome, get-to-know-each-other activities, expectations
Friday 5PM-7PM, 430 Soda
Homework 0 :
2 08-30 to 09-03 BtB (55-60), Is Abstraction the key to Computing? (CACM) BH : Abstraction Broadcast, Animations, Music DG : 3D Graphics Loops and Variables Anatomy of a Computer Homework 1
due 09-08
3 09-06 to 09-10 What does a Video Game mean, anyway?, Violence in Video Games, St. Louis Court Brief, Prof. Jenkins Goes to Washington, Eight Myths About Video Games Debunked, Designing GWAP (CACM), more... No Class, Labor Day DG : Video Games Random, If, & Input Video Games Homework 2
due 09-13
4 09-13 to 09-17 BtB chapter 1 BH : Functions BYOB DG :
Programming Paradigms
Lists I Lists Homework 3
due 09-17
5 09-20 to 09-24 None Quest (solutions)
(in-class exam)
TA Luke Segars : Algorithms part I Lists II Lists, Algorithms,
and Games
Homework 4
due 09-29
6 09-27 to 10-01 Free Lunch is Over, Spending Moore's dividend (CACM) TA Jon Kotker : Algorithms part II,
Orders of Growth
Algorithm Complexity DG : Concurrency Concurrency Project Introduction  
7 10-04 to 10-08 BtB (32-42) BH : Recursion Part I Recursion I BH : Social Implications I Project Work Recursion  
8 10-11 to 10-15 BtB (249-251) BH : Recursion Part II Recursion II BH : Social Implications II Project Work Social Implications of Computing  
9 10-18 to 10-22 BtB (120-138,
DG : Applications that Changed the World Recursion III Raffi Krikorian :
How Twitter Works
Applications that Changed the World Recursion Project
due 10-22
10 10-25 to 10-29 None Prof Kathy Yelick : Saving the World with Computing (CS + X) Simulations (Sharks and Fish) Prof Björn Hartmann : HCI None Project Demos  
Midterm (Info) (solutions)
11 11-01 to 11-05 None BH : Lambda + HOFs I Lambda + HOFs I BH : Lambda + HOFs II Lambda + HOFs II HOF + Lambda  
12 11-08 to 11-12 A Berkeley View of Cloud Computing DG :
Distributed Computing
Distributed Computing Prof Armando Fox : Cloud Computing Project brainstorm, partners chosen Parallel Processing Paradigms Paper
due 11-12
13 11-15 to 11-19 What is IBM's Watson?, The First Church of Robotics, The Great Robot Race (NOVA), Computers Solve Checkers -- It's a Draw BH : AI Project Work DG : Game Theory Project Work AI  
Beyond Blocks, Session 1
(Python: Tuesday 11-16,
Scheme: Wednesday 11-17)
14 11-22 to 11-26 Quantum Leap BH : Limits of Computing Project Work DG : Future of Computing Project Work No Class, Thanksgiving  
Beyond Blocks, Session 2
(Scheme: Monday 11-22,
Python: Tuesday 11-23)
15 11-29 to 12-03 BtB: Conclusion
(no reading quiz)
DG : Tree Recursion Project Work BH + DG : Summary and Farewell Project Work
Online Final Exam
(Answers w/code)
Final Thoughts Final Project
due 12-03
HOF Review Night
(Tuesday, 8:30pm - 10:30pm, 306 Soda Hall)
(Practice Questions,
Solutions, Slides)
16 12-06 to 12-10   Final Project Presentations
10:30am - 2pm
306 Soda
Beyond Blocks, Session 3
(Python: Tuesday 12-7,
Scheme: Wednesday 12-8)
RRR Week  
17 12-13 to 12-17 Final Exam Review
Notes | Solutions
Paper Final Exam
(Answers incl.)



Brian Harvey (bio)
781 Soda, x2-8311
OH: Tu 4-6pm, W 5:30-6:30pm

Dan Garcia (bio)
777 Soda, (510) 517-4041
OH: F 2-3PM (in 200 Sutardja Dai)

Teaching Assistants

Luke Segars (bio)
360 Hearst Mining, x2-1268
OH: Tuesday 10AM-12PM in 200 Sutardja Dai,
Friday 1PM-3PM in 283E Soda Hall.

Jonathan Kotker (bio)
545N Cory Hall
OH: Tuesday 3PM-4PM in 200 Sutardja Dai,
Monday 12PM-1PM in 751 Soda, and Friday 3PM-4PM in 711 Soda.


Stephanie Chou

Courtney Wang

Daisy Zhou (bio)

TAs-in-Training (TAsiT) and Lab Assistants

Aloni Cohen (TAiT)

Navin Eluthesen (TAiT) (bio)

Glenn Sugden (TAiT)

Pierce Vollucci (TAiT) (bio)

Gideon Chia

Christian Pedersen

Wayland Siao

Courtney Wang

Brandon Young

Course Support & Research

Carrie Cai

Senior Lecturer Mike Clancy

Colleen Lewis

High School Teachers

Eugene Lemon
Ralph Bunche High School
Oakland, CA

Josh Paley
Gunn High School
Palo Alto, CA

Ray Pedersen
Albany High School
Albany, CA


For the most part, we would prefer to teach this course without grades. What a wonderful concept, learning for learning sake! However, even though we can't change the "system" overnight, we can create grading policies that support learning as much as possible. The various course activities will contribute to your grade as follows:

Activity Course Points Percentage of Total Grade
Weekly Quizzes and Homework 60 15%
Paper 60 15%
Midterm Project 60 15%
Final Project 60 15%
Quest 20 5%
Midterm 60 15%
Final Exam 80 20%

How We'll Calculate Your Grade

Your letter grade will be determined by total course points, as shown in the table below. There is no curve; your grade will depend only on how well you do, not on how well everyone else does. Incomplete grades will be granted only for dire medical or personal emergencies that cause you to miss the final exam, and only if your work up to that point is satisfactory.

Points Grade
390-400 A+
370-389 A  
360-369 A- 
350-359 B+
330-349 B  
320-329 B- 
310-319 C+
290-309 C  
280-289 C- 
240-279 D  
< 240 F  


   λ BYOB : Build Your Own Blocks
   λ Scratch Forums
   λ Blown to Bits
   λ Debugging Rules!
   λ UC Berkeley
   λ College of Engineering
   λ Department of Electrical Engineering & Computer Sciences
   λ Webcast archive of 2010Fa lectures
   λ Solutions to Lab Exercises

Contact Webmaster | 2011-04-20@00:41:56 PDT
Creative Commons License

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License