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

UC Berkeley


UC-WISE (labs) Piazza bSpace
Google+ (#cs10news) BYOB Webcasts


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 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!


03-08 Midterm Project Progress Report Submission Form
Now available Here. Only submit ONE per group.
02-29 Midterm Project Proposal Submission Form
Now available Here. Only submit ONE per group.
01-29 bSpace set up
You should now have access to the bSpace course: "CS10 Sp12." If you don't see it, please let us know right away!
01-24 Section #8 - it's official!
Please see the weekly schedule below for the finalized days and times.
01-23 Enrollment key restriction removed for UC-WISE / sage.cs / The labs
The Spring 2012 (online) lab site was set up with an enrollment key (as many of you found out when trying to "enrol" [sic] in the course). The key has been removed, so be sure to click the "enrol [sic] me in this course" link on the laft-hand side of the page (after you log in).
01-19 New section, first lab tomorrow (Friday the 19th at 9am)
As the new section's (8's) first lab has already passed (Wednesday morning), it's important to go to tomorrow's (Friday's) lab at 9am if you want to attend the 8th section and/or haven't been to lab yet this week.
01-18 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

NOTE: Discussion time for section #8 (108) is still TBD, so if you are wait-listed, please go to any of the existing Friday sections for the first week or two.

Hour Monday Tuesday Wednesday Thursday Friday
Lab 014
(Navin Eluthesen)
200 Sutardja Dai

Lab 018
(Samir Makhani)
200 Sutardja Dai
Lab 014
(Navin Eluthesen)
200 Sutardja Dai

Lab 018
(Samir Makhani)
200 Sutardja Dai
Discussion 101
(Aijia Yan)
320 SODA

Lab 018
(Samir Makhani)
200 Sutardja Dai
Lab 015
(Luke Segars)
200 Sutardja Dai

Lab 015
(Luke Segars)
200 Sutardja Dai
Discussion 102
(Yaniv (Rabbit))
320 SODA

Discussion 103
(Yaniv (Rabbit))
320 SODA
Lab 016
(Pierce Vollucci)
200 Sutardja Dai

Lab 016
(Pierce Vollucci)
200 Sutardja Dai
Discussion 104
(Navin Eluthesen)
320 SODA
Discussion 108
(Samir Makhani)
7 Evans

Discussion 105
(Luke Segars)
320 SODA
3:00pm Lecture
10 Evans
Lab 017
(Navin Eluthesen)
200 Sutardja Dai
10 Evans
Lab 017
(Navin Eluthesen)
200 Sutardja Dai
Discussion 106
(Pierce Vollucci)
320 SODA
4:00pm Lab 011
(Aijia Yan)
200 Sutardja Dai
Lab 011
(Aijia Yan)
200 Sutardja Dai
Discussion 107
(Navin Eluthesen)
320 SODA

6:00pm Lab 012
(Yaniv (Rabbit))
200 Sutardja Dai

Lab 012
(Yaniv (Rabbit))
200 Sutardja Dai


8:00pm Lab 013
(Yaniv (Rabbit))
200 Sutardja Dai

Lab 013
(Yaniv (Rabbit))
200 Sutardja Dai


Semester Schedule (subject to change)

These readings are required, but are challenging - you should understand the "big idea" concepts,
   rather than the technical details.

These readings are optional (but recommended).

Week Days in 2012 Readings (Sa/Su) Lecture 1 (M) Lab 1 (M/Tu) Lecture 2 (W) Lab 2 (W/Th) Discussion (F) HW & Projects Due
1 Jan 16 -
Jan 21
Prof. Harvey's Intro to Abstraction
Why Software is Eating the World
Is Abstraction the Key to Computing?
MLK Holiday (extended) MLK Holiday (extended) Abstraction Broadcast, Animations, & Music Welcome, Introductions, and Expectations
2 Jan 23 -
Jan 28
Designing Games with a Purpose (GWAP)
Justices Split on Violent Games
Kinect's Future
a Game Controller in Everything

Animating a Blockbuster
More readings on video games
3D Graphics Loops and Variables Video Games Random, If, & Input Anatomy of a Computer & The Power of Binary Homework 0
Friday at 11:59pm
3 Jan 30 -
Feb 04
Program or Be Programmed (Video: Author Speech)
Scratch: Programming for All (CACM)
Functions BYOB Programming Paradigms Lists I Video games Homework 1
Friday at 11:59pm
4 Feb 06 -
Feb 11
BtB Chapter 1
How Algorithms Shape Our World
Guest Lecturer TA Luke Segars: Algorithms I Lists II Algorithms II, Order of Growth Algorithms Lists & Algorithms Homework 2
Friday at 11:59pm
5 Feb 13 -
Feb 18

No Reading (QUEST)

Quest Review: Sunday, 6-9pm, 2050 VLSB

Quest (in-class exam -- lab sections 4-8 go to 390 Hearst Mining) Algorithm Complexity Guest Lecturer TA Yaniv Assaf: Concurrency Concurrency Algorithms & Algorithmic Complexity
6 Feb 20 -
Feb 25
How Moore's Law Works
Free Lunch is Over
Spending Moore's dividend (CACM)
Presidents Day (extended) Presidents Day (extended) Recursion I Recursion I Recursion, Project Introduction, and Homework 3 Homework 3
Friday at 11:59pm
7 Feb 27 -
Mar 03
BtB Chapter 2
Computing as Social Science
Social Implications I Project Work Guest Lecturer TA Aijia Yan: Recursion II Recursion II Recursion Revisited
8 Mar 05 -
Mar 10
BtB Chapter 3
BtB Chapter 4 Reading Segment 1
BtB Chapter 4 Reading Segment 2
Living in a Digital World
Guest Lecturer Gerald Friedland: Social Implications II Project Work Guest Lecturer Bjoern Hartmann: HCI Recursion III Social Implications of Computing
9 Mar 12 -
Mar 17
BtB Chapter 5 Reading Segment 1
BtB Chapter 5 Reading Segment 2
BtB Chapter 5 Reading Segment 3
BtB Chapter 6 (27-37)
Data Explosion Creates Revolution
Game Theory Project Work Guest Lecturer Raffi Krikorian: 'Twitter' Applications That Changed The World Midterm Prep Midterm Project
(and some general tips )
Friday at 11:59pm
10 Mar 19 -
Mar 24

No Reading (MIDTERM)

Midterm Review: Sunday, 6-9pm, 2050 VLSB

Guest Lecturer Anna Rafferty: Artificial Intelligence Online Midterm Exam Guest Lecturer TA Luke Segars: Applications that Changed the World Study for
Paper Midterm Exam, 3/22 155 Dwinelle, 6-8pm
Artificial Intelligence
11 Mar 26 -
Mar 31
No Reading (Break) Spring Break Spring Break Spring Break Spring Break Spring Break
12 Apr 02 -
Apr 07
BtB Chapter 7
BtB Chapter 8
Lambda + HOFs I Lambda + HOFs I Lambda + HOFs II Lambda + HOFs II HOFs & Lambdas Blog Entry
Sunday at 11:59pm
13 Apr 09 -
Apr 14
What is Cloud Computing? (Video)
A Berkeley View of Cloud Computing
Distributed Computing Distributed Computing Guest Lecturer Prof Kathy Yelick: 'Saving the World with Computing
(CS + X)'
Project Work HOFs & Lambdas Revisited Blog Comments
Friday at 11:59pm

Project Proposal
Friday at 11:59pm
14 Apr 16 -
Apr 21
What is IBM's Watson?
The Great Robot Race (Video)
Computers Solve Checkers -- It's a Draw
Brian Harvey's AI notes
The First Church of Robotics
The Thinking Machine (Video)
Limits of Computing Project Work Future of Computing Project Work and Peer Review Open Topic Project Peer Review Write-up
Friday at 11:59pm
15 Apr 23 -
Apr 28
Computer Pioneer Alan Turing
Why is Quantum Different?
Quantum Leap
Twenty Top Predictions for life 100 years from now
Apple's 1987 Knowledge Navigator (Video)
Microsoft's view of productivity in 2019 (Video)
The Future of Augmented Reality
Apple's Siri
BtB: Conclusion
Guest Lecturer Prof Armando Fox: 'Cloud Computing' Project Work Summary and Farewell Online Final Exam
Final Thoughts Final Project
(and same general tips )
Friday at 11:59pm
16 Apr 30 -
May 05
No Reading (RRR) RRR Week RRR Week RRR Week RRR Week RRR Week
17 May 07 -
May 12
No Reading (Final)

Final Review: Sunday, 6-9pm, 2050 VLSB

Reading Slides
Programming Slides
Finals Week Finals Week Paper Final Exam May 9th, 7-10 pm (10 Evans) Supplementary Handout Finals Week Finals Week



Dan Garcia ( bio )
777 Soda, (510) 517-4041
OH: F 2-3pm in 777 Soda
(but please first check his Travel Schedule to be sure he's here that week!)

Teaching Assistants

Pierce Vollucci ( bio )
OH : Th 3-4pm, Tables Outside Lab

Luke Segars ( bio )
360 Hearst Mining
OH : W 4-5pm, Tables Outside Lab

Navin Eluthesen ( bio )
OH : M 2-3pm, 283E Soda
& F 3-4pm, 611 Soda

Yaniv Assaf, aka Rabbit (bio)
OH : Th 5-6pm, 411 Soda
& F 1-2pm, 200 SD Lab

Aijia Yan ( bio )
OH : F 11am-12pm, Tables Outside Lab

Samir Makhani ( bio )
OH: F 2-3pm, 200 SD Lab


Shreya Lakhan-Pal (bio)

Kylan Nieh (bio)

Head Grader Max Dougherty (bio)

Christian Pedersen (bio)

Ian Birnam (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. 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 2014-06-28@01:20:40 PDT

Creative Commons License

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