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

UC Berkeley

 Overview

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 and Snap! (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 . Since then, this has been one of the most popular courses in EECS. Don't believe us? See for yourself! 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!

 

News

2012-08-23 CS10 makes The Daily Cal, again!
Check out CS10 featured in the Daily Cal.
2012-08-23 Welcome to CS10, everyone!
We'll be using Piazza for all staff-student communication from now on.

 Webcasts

Webcasts of our lectures are freely available online!

 Calendar

Weekly Schedule

Hour Monday Tuesday Wednesday Thursday Friday
8:00am          
9:00am   Lab Section 1
(Samir)
200 Sutardja Dai
  Lab Section 7
(Aatash)
200 Sutardja Dai
Lab Section 1
(Samir)
200 Sutardja Dai
Lab Section 7
(Aatash)
200 Sutardja Dai
 
10:00am   OH (Max)
411 Soda
Discussion Section 1
(Max)
310 Soda Hall
11:00am   Lab Section 2
(Max)
200 Sutardja Dai
Lab Section 8
(Max)
200 Sutardja Dai
Lab Section 2
(Max)
200 Sutardja Dai
Lab Section 8
(Max)
200 Sutardja Dai
Discussion Section 2
(Samir)
310 Soda Hall
12:00pm
Discussion Section 7
(Aatash)
310 Soda Hall
1:00pm Lecture
1 Leconte
Lab Section 3
(Michael)
200 Sutardja Dai

Lecture
1 Leconte
Lab Section 3
(Michael)
200 Sutardja Dai
Discussion Section 8
(Max)
310 Soda Hall
OH (Dan Garcia)
777 Soda
2:00pm   OH (Dan A.)
611 Soda
OH (Max)
 411 Soda
Discussion Section 3
(Michael)
310 Soda Hall
3:00pm   Lab Section 4
(Dan)
200 Sutardja Dai
    Lab Section 4
(Dan)
200 Sutardja Dai
OH 3:30-4:30 (Aatash)
751 Soda
Discussion Section 4
(Dan)
310 Soda Hall
4:00pm   OH (Ian)
751 Soda
  OH 4:30-5:30 (Samir)
751 Soda
Discussion Section 5
(Michael)
310 Soda Hall
5:00pm OH (Michael)
411 Soda
Lab Section 5
(Michael)
200 Sutardja Dai
  Lab Section 5
(Michael)
200 Sutardja Dai
  Discussion Section 6
(Aijia)
310 Soda Hall
OH (Michael)
411 Soda
6:00pm     OH (Aijia)
611 Soda
 
7:00pm   Lab Section 6
(Aijia)
200 Sutardja Dai
  Lab Section 6
(Aijia)
200 Sutardja Dai
 
8:00pm      

Semester Schedule (subject to change)

Reading assignments in blue are required, green are required-but-challenging (so understand the "big idea" concepts, rather than the technical details), and reading assignments in red are optional but recommended.
Week Days in 2012 Readings (Sa/Su) Lecture 1 (M) Lab 1 (Tu / W) Lecture 2 (W) Lab 2 (Th / Fri) Discussion (F) HW, Exams & Projects
1 08-20 to 08-24 Why Software is Eating the World
No Class Broadcast, Animations, Music
Watch a TA do the lab here.
Welcome and Course Overview None
2 08-27 to 08-31 Prof. Harvey's Intro to Abstraction
Animating a Blockbuster
Is Abstraction the Key to Computing? 
Abstraction
Sp12 HD video with Qs
Loops and Variables
Watch a TA do the lab here.
3D Graphics
Sp12 HD video with Qs
Random, If, & Input
Watch a TA do the lab here.
Anatomy of a Computer & the Power of Binary  
3 09-03 to 09-07 Designing Games with a Purpose (GWAP)
Justices Split on Violent Games
More readings on video games
Kinect's Future
a Game Controller in Everything

No Lecture, Labor Day Come in and get help with Homework 1 Video Games
Sp12 HD video with Qs
BYOB
Watch a TA do the lab here.
Video Games Homework 0
due 09/07
Homework 1
due 09/07
4 09-10 to 09-14 Program or Be Programmed (Video: Author Speech)
BtB Chapter 1
Scratch: Programming for All (CACM)
Functions
Sp12 HD video with Qs
Lists I
Watch a TA do the lab here.
Programming Paradigms
Sp12 HD video with Qs
Lists II
Watch a TA do the lab here.
Lists and Functions Notes Code Homework 2
due 09/14
5 09-17 to 09-21 How Algorithms Shape Our World
How Moore's Law Works
Free Lunch is Over
Spending Moore's dividend (CACM)
Algorithms part I
Sp12 HD video with Qs
Algorithms
Watch a TA do the lab here.
Algorithms part II,
Orders of Growth

Sp12 HD video with Qs
Algorithm Complexity
Watch a TA do the lab here.
Algorithms Notes Quest Practice  
6 09-24 to 09-28

No Reading (QUEST)

Quest Review: Sunday 9/23 12-3PM 2050 VLSB
Concurrency
Sp12 HD video with Qs
Review for Quest
Quest (in-class exam) Concurrency
Watch a TA do the lab here.
Pass back Quest, project introduction, concurrency, and Homework #3 Video Homework 3
due 9/30
7 10-01 to 10-05 BtB Chapter 2
Computing as Social Science
Recursion Part I
Sp12 HD video with Qs
Recursion I
Watch a TA do the lab here.
Social Implications I
Sp12 HD video with Qs
Project Work Recursion Video Midterm Project Proposal
due 10/5
8 10-08 to 10-12 BtB Chapter 3
BtB Chapter 4 Reading Segment 1
BtB Chapter 4 Reading Segment 2
Living in a Digital World
Recursion Part II
Sp12 HD video with Qs
Recursion II
Watch a TA do the lab here.
Social Implications II
Fa11 SD video
Project Work Recursion Revisited Video Midterm Project Progress Report
due 10/12 
9 10-15 to 10-19 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
Guest Lecturer Gerald Friedland
Social Implications III
Sp12 HD video with Qs
Recursion III
Watch a TA do the lab here.
Guest Lecturer Bjoern Hartmann
HCI
Sp12 HD video with Qs
Project Work Social Implications of Computing Midterm Project
due 10/19
( BYOB Project tips )
10 10-22 to 10-26

No Reading (MIDTERM)

Midterm Review: 10/21 2-5PM Evans 10
Guest Lecturer Anna Rafferty
Artificial Intelligence
Sp12 HD video with Qs
With-BYOB Midterm in lab Game Theory
Sp12 HD video with Qs
Simulations (Shark & Fish)
Watch a TA do the lab here.
Artificial Intelligence and Blog Post Introduction video  

Midterm Exam
10/24 8-10PM
VLSB 2050

11 10-29 to 11-02 BtB Chapter 7
BtB Chapter 8
Lambda + HOFs I
Sp12 HD video with Qs
Lambda + HOFs I
Watch a TA do the lab here.
Distributed Computing
Sp12 HD video with Qs
Distributed Computing
Watch a TA do the lab here.
HOF + Lambda video  
12 11-05 to 11-09 The Great Robot Race (Video)
Lambda + HOFs II
Sp12 HD video with Qs
Lambda + HOFs II
Watch a TA do the lab here.
Guest Lecturer Luke Segars, Google:
Data Divide
Sp12 HD video with Qs
Applications that Changed the World / Project Work
Watch a TA do the lab here.
Guest TA Yaniv "Rabbit" Assaf:
HOF + Lambda Revisited
Blog Entry
due 11/12
13 11-12 to 11-16 What is IBM's Watson?
Computers Solve Checkers -- It's a Draw
Brian Harvey's AI notes
The First Church of Robotics
The Thinking Machine (Video)
No Lecture, Veteran's Day Project Work Guest Lecturer Raffi Krikorian
Twitter
Sp12 HD video with Qs
Project Work Open Topic Blog Entry Comments
due 11/19
Final Proposal Form due 11/16
14 11-19 to 11-23 Computer Pioneer Alan Turing
Why is Quantum Different?
Quantum Leap
Twenty Top Predictions for life 100 years from now
Halting Problem Poem

Guest Lecturer Prof Kathy Yelick
Saving the World with Computing (CS + X)
Sp12 HD video with Qs
Project Work Limits of Computing
Sp12 HD video with Qs
No Lab or Discussion, Thanksgiving Final Progress Report due 11/23
15 11-26 to 11-30 DNA Storage
Apple's 1987 Knowledge Navigator (Video)
Microsoft's view of productivity in 2019 (Video)
The Future of Augmented Reality
Apple's Siri
BtB: Conclusion
Future of Computing
Sp12 HD video with Qs
Beyond Blocks, Session 1
11/26 6-8pm, 380 Soda
Project Work Summary and Farewell
Sp12 HD video with Qs
Beyond Blocks, Session 2
11/28 6-8pm, 380 Soda
With-BYOB Final Exam in Lab
(CSw10: Using Proctoring service, just like with-BYOB Midterm)
Final Thoughts Final Project
due 11/30

( BYOB Project tips )
16 12-03 to 12-07   RRR Week CS Ed Day Beyond Blocks, Session 3
12/05 4-6pm, 306 Soda
RRR Week RRR Week  
17 12-10 to 12-14 Final Exam Review Sunday 12/9 12-3PM 2050 VLSB     Paper Final Exam
Wed 12/12 7-10pm
220 and 251 Hearst Gym
     

 Staff

 

Instructor and Teaching Assistants


Sr. Lecturer SOE Dan Garcia (bio)
ddgarcia@cs.berkeley.edu
777 Soda, (510) 517-4041
OH : 1-2 PM Fri

Head TA Pierce Vollucci (bio)
cs10-ta@inst.eecs.berkeley.edu
OH : On Calendar

TA Aatash Parikh (bio)
aatash@berkeley.edu
OH : On Calendar

TA Aijia Yan (bio)
aijiay@berkeley.edu
OH : On Calendar
 
resources/images/Fa12/DanArmendariz.jpg
TA Dan Armendariz (bio)
danallan@eecs.berkeley.edu
OH : On Calendar

TA Max Dougherty (bio)
mdougherty@berkeley.edu
OH : On Calendar

TA Michael Ball (bio)
cs10-tb@inst.eecs.berkeley.edu
OH : On Calendar

TA Samir Makhani (bio)
makhani@berkeley.edu
OH : On Calendar
 

Readers


Head Reader Mark Miyashita ( bio )
cs10-rc@inst.eecs.berkeley.edu

Alysha Jivani ( bio )
cs10-rc@inst.eecs.berkeley.edu

Anju Thomas ( bio )
cs10-rc@inst.eecs.berkeley.edu

Christian Pedersen ( bio )
cs10-rc@inst.eecs.berkeley.edu
 

Head Reader (TAiT) Ian Birnam ( bio )
ibirnam@berkeley.edu

Jessica Hudiono ( bio )
cs10-rc@inst.eecs.berkeley.edu

Kelsey Theriault ( bio )
cs10-ra@inst.eecs.berkeley.edu

(TAiT) Lauren Mock ( bio )
cs10-rc@inst.eecs.berkeley.edu
 

Madeeha Ghori ( bio )
cs10-rd@inst.eecs.berkeley.edu

Peter Sujan ( bio )
cs10-rc@inst.eecs.berkeley.edu

Vivian Lo ( bio )
cs10-rc@inst.eecs.berkeley.edu
 

Lab Assistants


Andy Cheng ( bio )

Bernal Jimenez ( bio )

Brian Terry ( bio )

David Mai ( bio )
 

Elizabeth Prader ( bio )

Felicia Lee ( bio )

Jesse Halim ( bio )

Jihui Jin ( bio )
 

Joanna Abot ( bio )

(TAiT) Kou Takahama ( bio )

Patrick Wu ( bio )

Sumer Mohammed ( bio )
 

Yvonne Ho ( bio )
 

 Grading

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%
Blog 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  

 Difference between CS10 and CSw10

Activity CS10 CSw10
Lecture Come to lecture, use clickers. Ask any questions by raising hand. Watch archived lecture videos online (any time), answer embedded multiple-choice questions. Ask any questions on Piazza; response times may vary.
Lab Come to lab, complete Moodle-driven labs, ask questions from CS10 TAs and lab assistants in person. Complete labs online during one of the CSw10 lab section times, ask questions on Piazza, which are answered in real time by CSw10 TAs and lab assistants.
Discussion Come to discussion for community building, review, and distillation. Come to online discussion in Adobe Connect for community building, review, and distillation.
Projects Work with your teammate(s) by scheduling face-to-face time to work on it together outside of class, and submit online. Work with your teammate(s) by scheduling online time to work on it together outside of class, and submit online. Classmates may not meet each other face-to-face, to fully simulate the online experience. We suggest Google+ Hangouts for meeting with other students online.
Blog Independently researched, posted on Piazza. Independently researched, posted on Piazza.
Exams Take them during class (Quest), during lab (Online Midterm and Final) or in the evening (Midterm & Final).

Take the same exams as CS10, only online using our proctoring service, at the same time as CS10 exams.

Grading Listed on the CS10 page: weekly quizzes and homework, blog, midterm project, final project, quest, midterm, final exam. Identical to CS10.
Exam review session Held in a campus classroom the Sundays before the 3 big exams (quest, midterm, final). Held on Adobe Connect the same time as the CS10 exam reviews, the Sundays before the 3 big exams. CSw10 students may not attend these in person, only online.
Office Hours Stop by the offices of Dan or the CS10 TAs during open office hours. Attend office hours of Dan or the CSw10 TAs online using Adobe Connect.
Readings Complete on your own time; take reading quizzes during the face-to-face lab. Complete on your own time; take reading quizzes during the online lab.
Questions Ask them and get them answered by other CS10 students and instructors via Piazza. Ask them and get them answered by other CSw10 students and instructors via Piazza.
Coding practice Online via codepath.co Online via codepath.co
Meet your instructors See them in person in lecture, lab, discussion, office hours, and during exams. Not allowed to meet them in person until the class is over. You're only allowed to meet them onine before then.
Cost for the entire course Free ... we hand you free clickers in lecture, and all the reading assignments are online as web pages or PDF downloads, including the book! Free ... no need for clickers, and all the reading assignments are online as web pages or PDF downloads, including the book!

 Resources

    λ   Codepath
    λ   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 |
Creative Commons License

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