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

BJC

Overview

Watch a playlist of 18 student testimonials about CS10.

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 history: 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. Fall 2010 was a 90-person pilot and since then we've continued to grow the course as word spreads to more students. We have continually replaced the weakest parts of the curriculum to arrive at the current form of the course.

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."

News

2013-03-25 Welcome to CS10, Summer 2013 Edition
I'm excited to share the Beauty and Joy of Computing with you! On behalf of the course staff, we are all looking forward to a great summer. - Sean Morris

Webcasts

Webcasts of past lectures are freely available online!

Calendar

Weekly Schedule

Hour Monday Tuesday Wednesday Thursday Friday
8:00am




9:00am Lab 111
(Pierce Vollucci)
200 Sutardja Dai

Lab 111
(Pierce Vollucci)
200 Sutardja Dai


10:00am


11:00am
Office Hours
(Peter Sujan)
411 Soda

12:00pm Discussion 111
(Pierce Vollucci)
320 Soda

Discussion 111
(Pierce Vollucci)
320 Soda


1:00pm Lab 112
(Peter Sujan)
200 Sutardja Dai
Office Hours
(Sean Morris)
329 Soda
Lab 112
(Peter Sujan)
200 Sutardja Dai


2:00pm

3:00pm
Office Hours
(Pierce Vollucci)
411 Soda

4:00pm Lecture
306 Soda
Lecture
306 Soda
Lecture
306 Soda
Lecture
306 Soda

5:00pm Discussion 112
(Peter Sujan)
320 Soda
Office Hours
(Peter Sujan)
411 Soda
Discussion 112
(Peter Sujan)
320 Soda



Semester Schedule (Subject to change prior to beginning of term)



Week Dates Required Readings Recommended Readings Lecture 1 (M) Discussion 1 (M) Lab 1 (M) Lecture 2 (Tu) Lecture 3 (W) Discussion 2 (W) Lab 2 (W) Lecture 4 (Th) HW & Projects Due
1 Jun 24 -
Jun 30
Prof. Harvey's Intro to Abstraction
Designing Games with a Purpose (GWAP)
Justices Split on Violent Games
Why Software is Eating the World
Is Abstraction the Key to Computing?
Kinect's Future
a Game Controller in Everything

More readings on video games
Abstraction
-
Sp12 HD video with Qs
Welcome, Introductions, and Expectations Broadcast, Animations, & Music
Watch a TA do the lab here.
Video Games
-
Sp12 HD video with Qs
Functions
-
Sp12 HD video with Qs
Anatomy of a Computer & the Power of Binary (Slides) Loops and Variables
Watch a TA do the lab here.
Programming Paradigms
-
Sp12 HD video with Qs
Homework 0
Wednesday at 11:59pm
2 Jul 01 -
Jul 07
Program or Be Programmed (Video: Author Speech)
BtB Chapter 1
How Algorithms Shape Our World
Scratch: Programming for All (CACM) Algorithms I
-
Sp12 HD video with Qs
Functions Review Notes Random, If, & Input
Watch a TA do the lab here.
-
BYOB
Watch a TA do the lab here.
Algorithms II, Order of Growth
-
Sp12 HD video with Qs
Concurrency
-
Sp12 HD video with Qs
Lists & Algorithms Notes Code
-
Quest Practice
Lists I
Watch a TA do the lab here.
-
Lists II
Watch a TA do the lab here.
Fourth of July
Homework 1
Friday at 11:59pm
-
Quest
Review Session on Sunday July 7th
(12-3PM in 306 Soda)
3 Jul 08 -
Jul 14
How Moore's Law Works
Free Lunch is Over *
BtB Chapter 2
Spending Moore's dividend (CACM)
BtB Chapter 3
Quest
(in-class exam)
Algorithms & Algorithmic Complexity Notes Algorithms
Watch a TA do the lab here.
-
Algorithm Complexity
Watch a TA do the lab here.
Recursion I
-
Sp12 HD video with Qs
Guest Lecturer Reza Lotun: 'Twitter' 
-
Sp12 HD video with Qs
Concurrency
-
Project Intro
-
HW3 Intro
Concurrency
Watch a TA do the lab here.
-
Recursion I
Watch a TA do the lab here.
Guest Lecturer Prof Kathy Yelick: 'Saving the World with Computing
(CS + X)'

-
Sp12 HD video with Qs
Homework 2
  Thursday 7/11 at 11:59pm
Homework 3
Tuesday 7/16 at 11:59pm
4 Jul 15 -
Jul 21
BtB Chapter 4 Reading Segment 1
BtB Chapter 4 Reading Segment 2
Computing as Social Science
Living in a Digital World
Recursion II
-
Sp12 HD video with Qs
Recursion

Recursion II
Watch a TA do the lab here.
-
Project Work
Guest Lecturer Gerald Friedland: Social Implications I
-
Sp12 HD video with Qs
Social Implications II
-
Fa11 SD video
Recursion Revisited
Recursion III
Watch a TA do the lab here.
-
Project Work
Game Theory
-
Sp12 HD video with Qs
Midterm Project
• Project Proposal
Due: Wednesday 11:59pm

• Progress Report
Due: Sunday 11:59pm
5 Jul 22 -
Jul 28
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
Animating a Blockbuster
3D Graphics
-
Sp12 HD video with Qs
Midterm Prep and Blog Post Introduction

Applications That Changed The World
Watch a TA do the lab here.
-
Project Work
Guest Lecturer Eric Paulos: HCI
-
Sp12 HD video with Qs
Social Implications III
-
Sp12 HD video with Qs
Social Implications of Computing

Project Work/Study Time
-
Online Midterm Exam
Lambda + HOFs I
-
Sp12 HD video with Qs
Midterm Project
(General Tips)
Friday at 11:59pm

Midterm Exam
Review Session on Sunday July 28st (12-3PM 306 Soda)
6 Jul 29 -
Aug 04
BtB Chapter 7
BtB Chapter 8
Computer Pioneer Alan Turing
Halting Problem Poem
Lambda + HOFs II
-
Sp12 HD video with Qs
-
Paper Midterm Exam
(Monday July 29th 7PM at 306 Soda)
Artificial Intelligence

Lambda + HOFs I
Watch a TA do the lab here.
-
Project Work
Distributed Computing
-
Sp12 HD video with Qs
Limits of Computing
-
Sp12 HD video with Qs
HOFs & Lambdas

Lambda + HOFs II
Watch a TA do the lab here.
-
Project Work/Guest Lab
Guest Lecturer Luke Segars, Google Data Divide
-
Sp12 HD video with Qs
Blog Entry
Friday at 11:59pm

Blog Comments
Sunday at 11:59pm

Final Project
Project Proposal
Submit here
Friday at 11:59pm
7 Aug 05 -
Aug 11
What is IBM's Watson?
The Great Robot Race (Video)
Computers Solve Checkers -- It's a Draw
Brian Harvey's AI notes
Why is Quantum Different?
Quantum Leap
BtB: Conclusion
The First Church of Robotics
The Thinking Machine (Video)
Apple's 1987 Knowledge Navigator (Video)
Microsoft's view of productivity in 2019 (Video)
Twenty Top Predictions for life 100 years from now
DNA Storage
The Future of Augmented Reality
Apple's Siri
Future of Computing
-
Sp12 HD video with Qs
HOFs & Lambdas Revisited
Distributed Computing
Watch a TA do the lab here.
-
Project Work
Guest Lecturer David Hall: Artificial Intelligence
-
Sp12 HD video with Qs
Summary and Farewell Open Topic/Final Thoughts
Simulations (Shark & Fish)
Watch a TA do the lab here.
-
Project Work and Peer Review
Cancelled
Final Project
Progress Report
Submit here
Tuesday at 11:59pm

Final Project
(General Tips)
Friday at 11:59pm

Final Exam
Review Session on Sunday August 11th
(12-3PM in 306 Soda)
8 Aug 12 -
Aug 18
No Reading (RRR and Final)

RRR
RRR
Online Final Exam RRR
Paper Final Exam (Wed Aug 14 7-10PM in 306 Soda)




* These readings are required, but are challenging - you should understand the "big idea" concepts, if not all the technical details.

Staff

Lecturer


Sean Morris (bio)
OH: 329 Soda
Tuesdays from 1:00-3:00
sean.smorris@gmail.com
 

Teaching Assistants


Pierce Vollucci (bio)
pavtheway007@berkeley.edu
OH: TBA

Peter Sujan (bio)
peterasujan@gmail.com
OH: TBA
 

Reader


(TAiT) Lauren Mock ( bio )
lmock@berkeley.edu

Lab Assistants


Akhila Raju ( bio )

Andrew Ng ( bio )

Janna Golden ( bio )

Jeffrey Snowiss ( bio )
 

Joanna Abot ( bio )

Manisha Sharma ( bio )

Rachel Huang ( bio )

Stella Walla ( bio )
 

Victoria Shi ( bio )

Yon Soo Park ( 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. 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  


 Resources

    λ   CS10 Family
    λ   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