Your Navigation Bar didn't load.
Overview News Calendar Staff Grades /sp18/resources



Quick Links


Updates

Please check this section for important updates!

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 has tons of 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 midterm and final projects 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. We are proud that we regularly have more than 50% female enrollment (with a high of 60% in the Spring of 2017), and the national exposure the course has received in the New York Times, KQED, NPR's All Things Considered, USA Today, San Jose Mercury News, San Francisco Chronicle, and many others.

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

Assignment Calendar

Semester Schedule (subject to change)

Reading Assignments Key:
  • Non-italicized readings are required,
  • Italicized readings are optional but recommended. Note that these readings are NOT tested.
Week Dates Readings Lectures Labs Discussion Due Dates/Notes
1 1/15 to 1/19 No Readings No Lecture No Lab Welcome to CS10!
Welcome and Abstraction 1. Welcome to Netsblox!
2 1/22 to 1/26 Introduction to Abstraction
Learning to Code!
Is Abstraction the Key to Computing?
Scratch: Programming for All
Building Blocks 2. Build Your Own Blocks The Power of Binary (Solutions)
Numbers and Abstraction 3. Conditionals and Reporters
3 1/29 to 2/2 What is an Algorithm?
How Algorithms Shape Our World
Algorithms are Great and All, But They Can Also Ruin Lives
Hacker News Comments on "Algorithms are Great and All..."
The 10 Algorithms That Dominate Our World
The real 10 algorithms that dominate our world
Lists and Scoping 4. Abstraction All About Lists (Solutions)
Algorithms 5. Lists
4 2/5 to 2/9 The Story of Alan Turing & His Machine
BtB Chapter 1
Algorithmic Complexity 6. Algorithms Algorithmic Complexity, Paradigms, and Quest Review (Solutions)
Programming Paradigms 7. Algorithmic Complexity
5 2/12 to 2/16 No Readings Quest- In Lecture HW2 Work Session Scoping, Mutability, and HW3 Intro (Solutions) (Demo)
Testing + HW3 8. Testing + HW3
6 2/19 to 2/23 The End of Moore's Law
eWeek at 30: Multicore CPUs Keep Chip Makers in Step with Moore's Law
No Lecture HW3 Work Session Concurrency and Mutability Review (Solutions)

Guest Lecture: Schuyler Ross

Concurrency
9. Concurrency
7 2/26 to 3/2 Alan Kay: Doing with Images Makes Symbols - 4:04 to 9:20
Present Shock - When Everything Happened Now
Addicted to Apps
Social Implications of Computing I 10. Tic-Tac-Toe, Boards Introduction to Recursion (Solutions)
Recursion I 11. Trees and Fractals Using Recursion
8 3/5 to 3/9 BtB Chapter 2, pg. 19-29, 36-42
Rest of BtB Chapter 2

Guest Lecture: Mansi Shah

Social Implications of Computing II
Midterm Project Work Session More Recursion (Solutions)

Guest Lecture: Lara McConnaughey

Recursion II
12. Recursive Reporters
9 3/12 to 3/16 As We May Think
Procedures as Data - Higher Order Procedures 13. Functions as Data and HOFs Functions as Data + Midterm Review (Solutions)
  • Reading Quiz 7- First lab of the week
  • Midterm Project due 3/16 (spec) (submit)
Social Implications of Computing III Midterm Project Work Session
10 3/19 to 3/23 No Readings Midterm Exam Part I Online Midterm Social Implications
Midterm Exam Part II 14. Finch Lab
11 3/26 to 3/30 No Readings No Lecture No Lab No Discussion
No Lecture No Lab
12 4/1 to 4/6 Why Python is a Great First Language
The GNU Manifesto Turns Thirty
Python vs. COBOL parody
Python I 15. Besides Blocks: Welcome to Python Introduction to Python (Solutions)
Python II 16. Besides Blocks: Data Structures in Python
13 4/9 to 4/13 A World Without Work
Humans Need Not Apply
CS8 Lecture 1

Guest Lecture: Kathy Yelick

Saving the World With Computing
Final Project Work Session Dictionaries and Recursion in Python (Solutions)
  • Reading Quiz 9- First lab of the week
  • Explore Post Comments due 4/11 (submit)
  • Final Project due 4/27 (spec)
Limits of Computing 17. Besides Blocks: Text Processing in Python
14 4/16 to 4/20 How to Start Thinking Like a Data Scientist
Correlation does not imply causation
Spurious Correlations

Guest Lecture: Anca Dragan

Artificial Intelligence
18. Besides Blocks: Data Science with Python List Comprehensions and Lambda Functions (Solutions)
  • Reading Quiz 10- First lab of the week
  • Final Project Milestone due 4/18 (submit)
  • Final Project due 4/27 (spec)

Guest Lecture: Marti Hearst

Human-Computer Interaction (HCI)
Final Project Work Session
15 4/23 to 4/27 What is Quantum?
What's Exciting About Quantum Computers?
BtB Chapter 6
BtB pg. 305-316
Alumni Panel Final Project Work Session Farewell + Final Review (Solutions) (Slides)
  • Reading Quiz 11- First lab of the week
  • Final Project due 4/27 (spec)
Conclusion In-Lab Final Exam
16 4/30 to 5/4 No Readings No Lecture No Lab No Discussion
  • Extra Credit BJC Artwork due 5/8 at the Final
No Lecture No Lab
17 Paper Final Exam
Tuesday, 5/8/18, 8-11AM
Last names A-J: 306 Soda, Last names: K-Z: 145 Dwinelle
Good luck!

Weekly Schedule

This calendar displays the class schedule for the current week. Click on any event to see the building location on a map.

Staff

Instructors

Teaching Assistants

 Staff Photo: Head TA Mansi Shah
Head TA Mansi Shah (bio)
mansi@cs10.org
 Staff Photo: TA Addison Howe
TA Addison Howe (bio)
addison@cs10.org
 Staff Photo: TA Angela Wong
TA Angela Wong (bio)
angela@cs10.org
 Staff Photo: TA Bhumika Goel
TA Bhumika Goel (bio)
bhumika@cs10.org
 Staff Photo: TA Christian Lista-Nicoloso
TA Christian Lista-Nicoloso (bio)
christian@cs10.org
 Staff Photo: TA Julie Han
TA Julie Han (bio)
julie@cs10.org
 Staff Photo: TA Niket Kulkarni
TA Niket Kulkarni (bio)
niket@cs10.org
 Staff Photo: TA Matthew Schwartz
TA Matthew Schwartz (bio)
matthew@cs10.org
 Staff Photo: TA Samuel Starks
TA Samuel Starks (bio)
sam@cs10.org
 Staff Photo: TA Schuyler Ross
TA Schuyler Ross (bio)
schuyler@cs10.org
 Staff Photo: TA Varda Shrivastava
TA Varda Shrivastava (bio)
varda@cs10.org

Readers

 Staff Photo: Reader Arvind Nandakumar
Reader Arvind Nandakumar (bio)
 Staff Photo: Reader Brendan Henrique
Reader Brendan Henrique (bio)
 Staff Photo: Reader Briana Ong
Reader Briana Ong (bio)
 Staff Photo: Reader Grant Kehn
Reader Grant Kehn (bio)
 Staff Photo: Reader Niki Zarkub
Reader Niki Zarkub (bio)
 Staff Photo: Reader Rafael Felix
Reader Rafael Felix (bio)

Lab Assistants

 Staff Photo: LA Aarish Irfan
LA Aarish Irfan
 Staff Photo: LA Aaron Baker
LA Aaron Baker
 Staff Photo: LA Abby Cohn
LA Abby Cohn
 Staff Photo: LA Alyssa Lo
LA Alyssa Lo
 Staff Photo: LA Alyssa Sugarman
LA Alyssa Sugarman
 Staff Photo: LA Audrey Ma
LA Audrey Ma
 Staff Photo: LA Austin Chang
LA Austin Chang
 Staff Photo: LA Avik Sethia
LA Avik Sethia
 Staff Photo: LA Bailey Harrison
LA Bailey Harrison
 Staff Photo: LA Barbara Liao
LA Barbara Liao
 Staff Photo: LA Batool Naqvi
LA Batool Naqvi
 Staff Photo: LA Ben Chen
LA Ben Chen
 Staff Photo: LA Bryant Bettencourt
LA Bryant Bettencourt
 Staff Photo: LA Chris Tong
LA Chris Tong
 Staff Photo: LA Claire Dominique Medina
LA Claire Dominique Medina
 Staff Photo: LA Devesh Agarwal
LA Devesh Agarwal
 Staff Photo: LA Dustin Chen
LA Dustin Chen
 Staff Photo: LA Edward Choi
LA Edward Choi
 Staff Photo: LA Faiz Shamji
LA Faiz Shamji
 Staff Photo: LA Flora Dong
LA Flora Dong
 Staff Photo: LA Isaac Merritt
LA Isaac Merritt
 Staff Photo: LA Jacqueline Li
LA Jacqueline Li
 Staff Photo: LA Janice Kok
LA Janice Kok
 Staff Photo: LA Janice Ng
LA Janice Ng
 Staff Photo: LA Jenny Song
LA Jenny Song
 Staff Photo: LA Jocelyn Sun
LA Jocelyn Sun
 Staff Photo: LA John Pesanello
LA John Pesanello
 Staff Photo: LA Jordyn Pinochi
LA Jordyn Pinochi
 Staff Photo: LA Kaela Seiersen
LA Kaela Seiersen
 Staff Photo: LA Kathleen Gao
LA Kathleen Gao
 Staff Photo: LA Kellyann Ye
LA Kellyann Ye
 Staff Photo: LA Kevin Yu
LA Kevin Yu
 Staff Photo: LA Lam Pham
LA Lam Pham
 Staff Photo: LA Lillian Ohara
LA Lillian Ohara
 Staff Photo: LA Lucy White
LA Lucy White
 Staff Photo: LA Matt Ronnau
LA Matt Ronnau
 Staff Photo: LA Mark Preston
LA Mark Preston
 Staff Photo: LA Maxson Yang
LA Maxson Yang
 Staff Photo: LA Murtaza Ali
LA Murtaza Ali
 Staff Photo: LA Nathanael Shin
LA Nathanael Shin
 Staff Photo: LA Neil Rabb
LA Neil Rabb
 Staff Photo: LA Patricia Yu
LA Patricia Yu
 Staff Photo: LA QiMing Wu
LA QiMing Wu
 Staff Photo: LA Ruqia Mohammad
LA Ruqia Mohammad
 Staff Photo: LA Shannon Hearn
LA Shannon Hearn
 Staff Photo: LA Sofie Herbeck
LA Sofie Herbeck
 Staff Photo: LA Steven Tong
LA Steven Tong

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 Points Percent of Total Grade
Weekly Reading Quizzes 20 4%
Lab Check-Offs 30 6%
Homework 1 (Word Guessing) 10 2%
Homework 2 (Encryptify) 20 4%
Homework 3 (2048) 30 6%
Midterm Project 75 15%
Innovation Blog 40 8%
Final Programming Project 75 15%
Quest 25 5%
Midterm 75 15%
Final Exam 100 20%
Total Points 500 100%


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
485-500 A+
460-484 A
450-459 A-
440-449 B+
420-439 B
400-419 B-
375-399 C+
360-374 C
350-359 C-
300-349 D
< 299 F

Resources