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

Quick Links

Snap!
(our software)
Piazza
(our Q&A)
bCourses
(submissions)
Google+ (#BJCnews)
(computing in news)

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

Calendar

Semester Schedule (subject to change)

Reading Assignments Key:
Week Dates Readings (Sa/Su) Lecture 1 (M) Lab 1 (M/Tu/W) Lecture 2 (W) Lab 2 (W/Th/F) Discussion (F) HW & Projects
1 1-20 to 1-24 No Readings No Class No Labs:
Monday, Tuesday or Wednesday morning.
Welcome; Abstraction
Sp12 HD video with Qs
Welcome to Snap!
Watch a TA do the lab here.
Welcome and Course Overview HW0
due 1/24 @ 11:59pm
2 1-27 to 1-31 Prof. Harvey's Intro to Abstraction
Why Software is Eating the World
Learning to Code!
Is Abstraction the Key to Computing?
Scratch: Programming for All
Functions
Sp12 HD video with Qs
Build Your Own Blocks!
Watch a TA do the lab here.

Reading Quiz 1 (in-lab)
Creativity and Abstraction
Conditionals
Watch a TA do the lab here.
Anatomy of a Computer
The Power of Binary
Homework 1
(Rubric)
due 2/2 @ 11:59pm on bCourses
3 2-3 to 2-7 The Story of Alan Turing & His Machine
Designing Games with a Purpose (GWAP)
Justices Split on Violent Games
Video Games Lecture
(Slides)
More readings on video games
Kinect's Future a Game Controller in Everything
3D Graphics
Sp12 HD video with Qs
Abstraction and Testing

Reading Quiz 2 (in-lab)
Guest Lecture TA Peter Sujan
Programming Paradigms
Sp12 HD video with Qs
Extra Lecture Video
Lists I
Watch a TA do the lab here.
Lists
(Resources)
Homework 2
(Rubric)
due 2/12 @ 11:59PM on bCourses
4 2-10 to 2-14 How Algorithms Shape Our World
BtB Chapter 1
Program or Be Programmed (Video: Author Speech)
Program or Be Programmed: A Guide
Animating a Blockbuster
Algorithms
Sp12 HD video with Qs
Algorithms
Watch a TA do the lab here.

Reading Quiz 3 (in-lab)
Algorithmic Complexity
Sp12 HD video with Qs

Homework 2 Due @ 11:59PM on bCourses
Algorithmic Complexity
Watch a TA do the lab here.
Algorithmic Complexity &
Quest Review
Homework 3 Overview
(Resources)
Start on Homework 3!
5 2-17 to 2-21 No Readings

Quest Review
Sun 2/16 12-2pm 306 Soda
No Class (Holiday) No Lab: Monday Only
Quest Review
Drop-in and get help.
Quest
(in-class exam)
Finch Robot Lab Go Over Quest Solutions
Homework 3 Help
Midterm Project Intro
Homework 3
(Rubric)
due Wed 2/26 @ 11:59PM
6 2-24 to 2-28 BtB Chapter 2
BtB Chapter 4 Reading Segment 1
BtB Chapter 4 Reading Segment 2
Living in a Digital World
BtB Chapter 3
Recursion I
Sp12 HD video with Qs
Fractals and Tree Recursion
Watch a TA do the lab here.

Reading Quiz 4 (in-lab)
Concurrency
Sp12 HD video with Qs
Homework 3 due @ 11:59PM
Project Work Session R e c u r s i o n
(Resources)
Midterm Project Proposal

Quest Regrades Due (via Pandagrader)
due Fri 2/28 @ 11:59PM
7 3-3 to 3-7 How Moore's Law Works
Free Lunch is Over
What is IBM's Watson?
Brian Harvey's AI notes
The First Church of Robotics
The Thinking Machine (Video)
Spending Moore's dividend (CACM)
Recursion II
Sp12 HD video with Qs
Concurrency
Reading Quiz 5 (in-lab)
Guest Lecturer Anna Rafferty
Artificial Intelligence
Sp12 HD video with Qs
Project Work Session Concurrency and Recursion
(Resources)
Midterm Project Milestone
due 3/7 @ 11:59PM
8 3-10 to 3-14 BtB Chapter 5 Reading Segment 1
BtB Chapter 5 Reading Segment 2
BtB Chapter 5 Reading Segment 3
BtB Chapter 6 (27-37)
Social Implications I
Sp12 HD video with Qs
Recursive Reporters
Watch a TA do the lab here.

Reading Quiz 6 (in-lab)
Guest Lecturer Gerald Friedland
Social Implications II
Fa11 SD video
Project Work Session Recursion II and Midterm Review
(Resources)
Midterm Project
due 3/14 @ 11:59PM
9 3-17 to 3-21 No Readings (MIDTERM)

Midterm Review
Reading Slides
Programming Slides
Guest Lecturer Brian Harvey
Social Implications III
With-Snap! In-lab Midterm

Midterm Exam
3/19 6-8pm 155 Dwinelle
Internet Social Implications and Midterm Debrief No Homework
10 3-24 to 3-28 No Readings No Class -- Spring Break Get some rest!
11 3-31 to 4-4 BtB Chapter 7
BtB Appendix
BtB Chapter 8
Guest Lecturer Eric Paulos
HCI
Sp12 HD video with Qs
Project Work Session

Reading Quiz 7 (in-lab)
The Internet, Part II Lists II
Watch a TA do the lab here.
The Internet
(Resources)
Impact Writeup
due 4/4 @ 11:59PM on Piazza
12 4-7 to 4-11 Data explosion creates revolution
Data Mining
Data Pitfalls
Computing as Social Science
Data Visualization
Basic Statistics (Helpful for Project)
Data Data

Reading Quiz 8 (in-lab)
Lambda + HOFs
Sp12 HD video with Qs
Lambda + HOFs Data and
Lambda + HOFs
(Resources)
Impact Writeup:
Artifact & Comments (Piazza)

Data Project Proposal (bCourses)
all due 4/11 @ 11:59PM
13 4-14 to 4-18 The Heartbleed Bug
What Servers Bleed
Sites Affected by Heartbleed
The Great Robot Race (Video)
Halting Problem Poem
Guest Lecture: Ivona Bezáková
Limits of Computing
Sp12 HD video with Qs
Project Work Session

Reading Quiz 9 (in-lab)
Besides Blocks I Besides Blocks I:
Intro to Python
Besides Blocks
Final Project Introduction
(Resources)
Data Project &
Final Project Proposal
due 4/18 @ 11:59PM on bCourses
14 4-21 to 4-25 Computer Pioneer Alan Turing
Why is Quantum Different?
Quantum Leap
Twenty Top Predictions for life 100 years from now
Future of Computing
Sp12 HD video with Qs
Project Work

Reading Quiz 10 (in-lab)
Besides Blocks II Besides Blocks II
Twitter
CS @ Cal, and Beyond
(Resources)
15 4-28 to 5-2 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
Guest Lecturer Prof Kathy Yelick
Saving the World with Computing (CS + X)
Sp12 HD video with Qs
Project Work Session

Reading Quiz 11 (in-lab)
Summary and Farewell
Sp12 HD video with Qs
Final Survey
With-Snap! Final Exam in Lab (Practice Exams)
Farewell Final Project
due 5/2 @ 11:59PM
16 5-5 to 5-9 RRR Week RRR Week Python Review Session
10-11am, 2050 VLSB
RRR Week RRR Week
17 5-12 to 5-16 Final Exam Review
Sun, 5/11 2-5pm 2050 VLSB
Paper Final Exam
Tues, 3-6pm
2050 VLSB

Weekly Schedule

Click on any event to see the building location on a map.

Jan 20 - 24, 2014

Staff

Instructors

Sr. Lecturer SOE Dan Garcia
Sr. Lecturer SOE Dan Garcia (bio)
ddgarcia@cs.berkeley.edu
777 Soda, (510) 517-4041

Teaching Assistants

Project Manager Lauren Mock
Project Manager Lauren Mock
lmock@berkeley.edu
TA Janna Golden
TA Janna Golden
jannagolden@berkeley.edu
TA Rachel Huang
TA Rachel Huang
rachelhuang072@berkeley.edu
TA Sumer Mohammed
TA Sumer Mohammed
sumermohammed@berkeley.edu
TA Victoria Shi
TA Victoria Shi
victoria.shi@berkeley.edu
Head TA Michael Ball
Head TA Michael Ball (bio)
cs10-ta@imail.eecs.berkeley.edu
TA Ian Birnam
TA Ian Birnam (bio)
ibirnam@berkeley.edu
TA Jeffrey Snowiss
TA Jeffrey Snowiss
jasnowiss10@gmail.com
TA Max Dougherty
TA Max Dougherty
mdougherty@berkeley.edu
TA Peter Sujan
TA Peter Sujan (bio)
peterasujan@berkeley.edu

Readers

Reader Andrew Schmitt
Reader Andrew Schmitt
Reader Claire Watanabe
Reader Claire Watanabe
Reader Jaclyn Burge
Reader Jaclyn Burge
Reader Joseph Cawthorne
Reader Joseph Cawthorne
Reader Song Sok
Reader Song Sok

TAs-in-Training

TAiT Ben Carvalho
TAiT Ben Carvalho (bio)
Reader Song Sok
Reader Song Sok
Reader Joseph Cawthorne
Reader Joseph Cawthorne
Reader Andrew Schmitt
Reader Andrew Schmitt
TAiT Adam Kuphaldt
TAiT Adam Kuphaldt
TAiT Alex McKinney
TAiT Alex McKinney
TAiT Arany Uthayakumar
TAiT Arany Uthayakumar
TAiT Brandon Chen
TAiT Brandon Chen
TAiT Carlos Flores
TAiT Carlos Flores
TAiT Caren Thomas
TAiT Caren Thomas (bio)
TAiT Christopher Kilian
TAiT Christopher Kilian
TAiT Derek Chiu
TAiT Derek Chiu
TAiT Edwan Hernandez
TAiT Edwan Hernandez
TAiT Hunter Brown
TAiT Hunter Brown
TAiT Jeffrey Jacinto
TAiT Jeffrey Jacinto
TAiT Jobel Vecino
TAiT Jobel Vecino
TAiT Josh Perline
TAiT Josh Perline
TAiT Kalley Thompson
TAiT Kalley Thompson
TAiT Kwan Cheung
TAiT Kwan Cheung
TAiT Luke Dodds
TAiT Luke Dodds
TAiT Michelle Tsai
TAiT Michelle Tsai
TAiT Nolan Takeshita
TAiT Nolan Takeshita
TAiT Oliver O
TAiT Oliver O'Donnell (bio)
TAiT Rafayel Mkrtchyan
TAiT Rafayel Mkrtchyan
TAiT Saagar Bakshi
TAiT Saagar Bakshi
TAiT Sean Scofield
TAiT Sean Scofield
TAiT Steven Traversi
TAiT Steven Traversi
TAiT Sulaiman Haruna
TAiT Sulaiman Haruna
TAiT Veersuvrat Rajpal
TAiT Veersuvrat Rajpal

Lab Assistants

Adam Brown
Adam Brown
Alex Freeman
Alex Freeman
Alison Tang
Alison Tang
Amruta Yelamanchili
Amruta Yelamanchili
Amy Shu
Amy Shu
Brooke Tencer
Brooke Tencer
Bryce Smith
Bryce Smith
Caroline Chan
Caroline Chan
Charles Thorson
Charles Thorson
Fangzhou Chen
Fangzhou Chen
Franklin Lee
Franklin Lee
Gurubala Kotta
Gurubala Kotta
Harris Quraishi
Harris Quraishi
Helen Hu
Helen Hu
Itzel Martinez
Itzel Martinez
Jiawei Will Jiang
Jiawei Will Jiang
Ji Jun Chen
Ji Jun Chen
Joel Terry
Joel Terry
Kalon Cheung
Kalon Cheung
Kyla Sorin
Kyla Sorin
Liuxiao Zhang
Liuxiao Zhang
Maria Can
Maria Can
Mateo O Marin
Mateo O Marin
Michelle Han
Michelle Han
Mohan Ganesan
Mohan Ganesan
Mona Lee
Mona Lee
Navsharan Singh
Navsharan Singh
Nicholas Dill
Nicholas Dill
Nick Rose
Nick Rose
Priscilla Bermudez
Priscilla Bermudez
Ryan Riddle
Ryan Riddle
Steven Holman
Steven Holman
Tammy Chen
Tammy Chen
Tierney Henderson
Tierney Henderson
Victoria Bian
Victoria Bian
Victor Solis
Victor Solis
Yibing Chen
Yibing Chen

edX Course Development

edX Team Lead Kunal Marwaha
edX Team Lead Kunal Marwaha
Project Manager Lauren Mock
Project Manager Lauren Mock
lmock@berkeley.edu
Reader Joseph Cawthorne
Reader Joseph Cawthorne
Sean Scofield
Sean Scofield
Akhila Raju
Akhila Raju
Alex Chao
Alex Chao
Harsh Mujoo
Harsh Mujoo
Josh Perline
Josh Perline
Kevin Chen
Kevin Chen
Manisha Sharma
Manisha Sharma
Mrindula Dilip
Mrindula Dilip
Nick Rose
Nick Rose
Nidhi Swamy
Nidhi Swamy
Patrick Lu
Patrick Lu
Rebecca Kuan
Rebecca Kuan
Saeam Kwon
Saeam Kwon
Sneha Dilip
Sneha Dilip
Reader Song Sok
Reader Song Sok
Sophie Cooper
Sophie Cooper
Stephen Shan
Stephen Shan

BJC Lab Development

TA Peter Sujan
TA Peter Sujan (bio)
peterasujan@berkeley.edu
Project Manager Lauren Mock
Project Manager Lauren Mock
lmock@berkeley.edu
Jessica Andrich
Jessica Andrich
Paul Irwin
Paul Irwin
Reader Andrew Schmitt
Reader Andrew Schmitt
Liuxiao Zhang
Liuxiao Zhang
Manisha Sharma
Manisha Sharma
Samy Hajal
Samy Hajal
Sulaiman Haruna
Sulaiman Haruna

Besides Blocks Development

Omoju Miller
Omoju Miller
Akhila Raju
Akhila Raju
TAiT Ben Carvalho
TAiT Ben Carvalho (bio)
Reader Song Sok
Reader Song Sok
TAiT Caren Thomas
TAiT Caren Thomas (bio)
Reader Andrew Schmitt
Reader Andrew Schmitt

Snap! Development

edX Team Lead Kunal Marwaha
edX Team Lead Kunal Marwaha
Snap! Team Lead Kyle Zentner
Snap! Team Lead Kyle Zentner
Aaron Yuan
Aaron Yuan
Andy Cheon
Andy Cheon
Angela So
Angela So
Ashkan Hosseini
Ashkan Hosseini
Brandon Chen
Brandon Chen
Carlos Flores
Carlos Flores
Dibyo Majundar
Dibyo Majundar
Elizabeth Stella Walla
Elizabeth Stella Walla
Farzin Jahani
Farzin Jahani
Gilbert Ghang
Gilbert Ghang
Irene Lee
Irene Lee
Janet Chu
Janet Chu
Jesar Shah
Jesar Shah
Jisoo Han
Jisoo Han
Joanne Xu
Joanne Xu
Jocelyn Takahashi
Jocelyn Takahashi
Joey Barreto
Joey Barreto
Kyle Hotchkiss
Kyle Hotchkiss
Lingtian Cheng
Lingtian Cheng
Michelle Han
Michelle Han
Mohan Ganesan
Mohan Ganesan
Natasha Sandy
Natasha Sandy
Randy Wei
Randy Wei
Sara Seacat
Sara Seacat
Tanisha Singh
Tanisha Singh
Tanvi Kamath
Tanvi Kamath
Yuan Yuan
Yuan Yuan

BJC Project Leads

Project Manager Lauren Mock
Project Manager Lauren Mock
lmock@berkeley.edu
Head TA Michael Ball
Head TA Michael Ball (bio)
cs10-ta@imail.eecs.berkeley.edu
TA Peter Sujan
TA Peter Sujan (bio)
peterasujan@berkeley.edu
edX Team Lead Kunal Marwaha
edX Team Lead Kunal Marwaha
Snap! Team Lead Kyle Zentner
Snap! Team Lead Kyle Zentner
Omoju Miller
Omoju Miller

Grading

Grade Breakdown

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 20 5%
Homework 1 10 2.5%
Homework 2 10 2.5%
Homework 3 20 5%
Midterm Project 60 15%
Innovation Blog 40 10%
Data Project 40 10%
Final Programming Project 40 10%
Quest 20 5%
Midterm 60 15%
Final Exam 80 20%

For Reading Quizzes, each quiz will be worth 2 points, and your highest 10 scores will count.


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

Resources


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