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.

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!

    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.

   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 in computing, i.e., women and ethnic minorities.

   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 and CS3S . Last fall (2010) was a 90-person pilot and we're continuing to grow the course as word spreads to more students. We're continually replacing the weakest parts of the curriculum and 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."

18 student testimonials about CS10!



2011-08-23 CS10 Kickoff Party!
We're going to be holding a kickoff event to get to know each other a little better. The party will be in the Wozniak Lounge in Soda Hall from 6 - 9pm this Friday (08/26).
2011-08-23 Welcome to CS10, everyone!
Those of us on staff are really excited about sharing the Beauty and Joy of Computing with you all, and are looking forward to a great semester! -The Staff


Webcasts of our lectures are freely available online!


Weekly Schedule

Hour Monday Tuesday Wednesday Thursday Friday
9:00am Lab Section 5
(Glenn Sugden)
200 Sutardja Dai
Lab Section 1
(Navin Eluthesen)
200 Sutardja Dai
Discussion Section 5
(Glenn Sugden)
310 Soda Hall
Lab Section 1
(Navin Eluthesen)
200 Sutardja Dai
Lab Section 5
(Glenn Sugden)
200 Sutardja Dai
10:00am   Discussion Section 1
(Navin Eluthesen)
310 Soda Hall
11:00am Lab Section 6
200 Sutardja Dai
Lab Section 2
(Luke Segars)
200 Sutardja Dai
  Lab Section 2
(Luke Segars)
200 Sutardja Dai
Lab Section 6
200 Sutardja Dai
Discussion Section 2
(Luke Segars)
320 Soda Hall
12:00pm Discussion Section 6
320 Soda Hall
Discussion Section 3
(Luke Segars)
320 Soda Hall
1:00pm Lab Section 7
(Aijia Yan)
200 Sutardja Dai
Lab Section 3
(Luke Segars)
200 Sutardja Dai
Discussion Section 7
(Aijia Yan)
405 Soda Hall
Lab Section 3
(Luke Segars)
200 Sutardja Dai
Lab Section 7
(Aijia Yan)
200 Sutardja Dai
3:00pm Lecture
145 Dwinelle Hall
Lab Section 4
(Samir Makhani)
200 Sutardja Dai
145 Dwinelle Hall
Lab Section 4
(Samir Makhani)
200 Sutardja Dai
Discussion Section 4
(Samir Makhani)
320 Soda Hall
4:00pm Lab Section 8
(Aijia Yan)
200 Sutardja Dai
Discussion Section 8
(Aijia Yan)
310 Soda Hall
Lab Section 8
(Aijia Yan)
200 Sutardja Dai

Semester Schedule (subject to change)

Reading assignments in blue are required and reading assignments in red are optional but recommended.
Week Days in 2011 Readings (Sa/Su) Lecture 1 (M) Lab 1 (M / Tu) Lecture 2 (W) Lab 2 (Th / Fri) Discussion (W / F) HW, Exams & Projects
1 08-22 to 08-26 Why Software is Eating the World ,
Program or Be Programmed: Author Speech ,
AP CS Principles Course Annotations and Big Ideas .
No Class Welcome and Course Overview None None
2 08-29 to 09-02 Prof. Harvey's Intro to Abstraction ,
Is Abstraction the Key to Computing?
Animating a Blockbuster
Data Explosion Creates Revolution
Abstraction Broadcast, Animations, Music 3D Graphics Loops and Variables Anatomy of a Computer & the Power of Binary Homework 0
due 09/08 or 09/09
Homework 1
due 09/07
3 09-05 to 09-09 Kinect's Future, a Game Controller in Everything ,
Justices Split on Violent Games ,
Designing Games with a Purpose
No Lecture or Lab, Labor Day Video Games Random, If, & Input Video Games  
4 09-12 to 09-16 BtB Chapter 1 ,
Scratch: Programming for All
Functions BYOB Programming Paradigms Lists I Lists Homework 2
due 09/25
5 09-19 to 09-23 How Algorithms Shape Our World Quest (in-class exam) Lists II Algorithms part I Algorithms Lists, Algorithms,
and Games
6 09-26 to 09-30 Free Lunch is Over ,
Spending Moore's dividend
Supreme Court strikes law banning video game sales
Algorithms part II,
Orders of Growth
Algorithm Complexity Concurrency Concurrency Project Introduction, Algorithmic Complexity, and Homework #3 Homework 3
due 10/02
7 10-03 to 10-07 BtB Chapter 2
Computing as Social Science
Recursion Part I Project Work Social Implications I Recursion I Recursion  
8 10-10 to 10-14 BtB Chapter 3 ,
BtB Chapter 4
Recursion Part II Project Work Social Implications II Recursion II Recursion Revisited  
9 10-17 to 10-21 BtB Chapter 5 ,
BtB Chapter 6 ,
Living in a Digital World
Applications that Changed the World Recursion III Ken Goldberg :
Project Work Social Implications of Computing Midterm Project
due 10/21
( some general tips )
10 10-24 to 10-28 Midterm Review Session
2050 VLSB
Sunday, 6 - 9pm
Artificial Intelligence Online Midterm in lab Game Theory Simulations (Shark & Fish) Artificial Intelligence  

Tuesday, 8-10pm
2050 VLSB & 155 Dwinelle

11 10-31 to 11-04 BtB Chapter 7 ,
BtB Chapter 8
Lambda + HOFs I Lambda + HOFs I Distributed Computing Distributed Computing HOF + Lambda  
12 11-07 to 11-11 A Berkeley View of Cloud Computing Rabbit:
Lambda + HOFs II
Lambda + HOFs II Prof Armando Fox:
Cloud Computing
No Lab or Discussion, Veteran's Day
Optional HOF Review during W Discussion and Th Lab
Blog Entry
due 11/12
13 11-14 to 11-18 What is IBM's Watson? ,
The First Church of Robotics ,
The Great Robot Race (NOVA) ,
Computers Solve Checkers -- It's a Draw ,
Brian Harvey's AI Notes ,
The Thinking Machine (video)
Guest Lecture:
Project Work Guest Lecture:
Project Work Open Topic Blog Entry Comments
due 11/19
14 11-21 to 11-25 Quantum Leap Prof Kathy Yelick :
Saving the World with Computing (CS + X)
Project Work Limits of Computing No Lab or Discussion, Thanksgiving  
15 11-28 to 12-02 Apple's 1987 "Knowledge Navigator" (VIDEO) ,
Microsoft's view of productivity in 2019 (VIDEO) ,
Apple's Siri (VIDEO) ,
BtB: Conclusion
Future of Computing Project Work Summary and Farewell Project Work
Online Final Exam

Beyond Blocks, Session 2
(P) 5 - 6:30pm, (J) 6:30 - 8pm @ the Woz
Final Thoughts Final Project
due 12/02
Proposal Form
Progress Form

( some general tips )
16 12-05 to 12-09   RRR Week CS Ed Day RRR Week  
17 12-12 to 12-16 Final Exam Review   Paper Final Exam
2011-12-13 @ 7-10pm
2050 VLSB



Dan Garcia ( bio )
777 Soda, (510) 517-4041
OH: W 11am-noon

Teaching Assistants

Luke Segars ( bio )
360 Hearst Mining
OH : M 2-3pm @ 651 Soda &
F 10-11am @ tables outside of lab

Navin Eluthesen ( bio )
OH : T 2-3pm, 651 Soda

Glenn Sugden ( bio )
OH : W 6-7pm, 411 Soda

Yaniv Assaf, aka Rabbit (bio)
OH : F 1-2pm, 411 Soda

Aijia Yan ( bio )
OH : T 6-7pm, Th 5-6pm, 651 Soda

Samir Makhani ( bio )
OH : F 6-7pm, 411 Soda


Pierce Vollucci ( bio )

Shreya Lakhan-Pal ( bio )

Kylan Nieh ( bio )

Max Dougherty (bio)


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. 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 | 2014-06-28@01:19:49 PDT
Creative Commons License

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