UC Berkeley | College of Engineering | Department of Electrical Engineering and Computer Sciences
Fall 2009, Two Units, Letter-Graded, CC#: 26256.

We'll be programming in Scratch!

The Beauty and Joy of Computing

FS Seminars | bspace | General Catalog | Enrollment

MW 3-5pm, 200 Sutardja-Dai (CITRIS) Hall

Overview | News | Schedule | Calendar | Staff | Grading | Resources


CS39N is a pilot freshman/sophomore seminar version of a new course, The Beauty and Joy of Computing. 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 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. We are especially excited about bringing computing (through this course) to traditionally under-represented groups, i.e., women and ethnic minorities. Enrollment for the pilot offering will be limited to 20 first- and second-year students. This course is serving as a test-the-waters 2-unit (letter-graded) pilot for a full, 4-unit course we plan to offer in the fall of 2010.



We've posted another lecture (L04 : Computational Game Theory) online. Also, don't forget our upcoming important dates:

  • Wed 2009-10-21 @ 3pm : Paper proposals due
  • Sat 2009-10-24 @ 10am-noon : Review session in lab
  • Mon 2009-10-26 @ 7pm-10pm : Midterm in lab
2009-10-13 The most recent lectures (L08 : Social Implications of Computing, L02 : Video Games) are online.
2009-10-08 The second set of lecture videos (L00 : Introduction + Scratch Demo, L01: Abstraction) are online.
2009-09-23 The first set of lecture videos (L03: Artificial Intelligence, L05: Functional Programming) are online. We're working on the rest and will let you know when they're uploaded...
2009-08-26 Welcome to the first day of CS39N!!
2009-08-18 Lockheed Martin has provided a generous $50k grant to support CS39N teaching and development!
2009-07-08 Welcome to CS39N! – The Staff
2009-04-29 This CS39N course won a 2009 Bears Breaking Boundaries Contest for Curricular Innovation award! The contest is a UC Berkeley “idea competition” that encourages student teams to propose the next generation of research, education, and service activities on the UC Berkeley campus.

Schedule, always in 200 Sutardja Dai Hall (CITRIS)






3-4pm Lecture Lab
4-5pm Discussion

Calendar (everything in italics is tentative and not ready yet; don't bother to follow the links)

Big Idea Wk Date (2009) Lecture (usu Mon) Discussion (usu Mon) Lab (usu Wed) Homework / Exam / Paper / Project
Abstraction 1 08-24 M    
photo + bio
making a movie
08-26 W welcome, abstraction (b) get to know you demo, free play, variables, broadcast
Graphics &
Artificial Intelligence
in Games
2 08-31 M video games (d) social aspect of games random, if, & input brick wall, rock-paper-scissors, number guessing in reverse
09-02 W
3 09-07 M       high scores
09-09 W artificial intelligence (b)   lists
4 09-14 M computational game theory (d)   design, tradeoffs of tic-tac-toe tic-tac-toe
09-16 W
Programming Paradigms 5 09-21 M functional programming (b) functions

BYOB functions I
design your midterm project

09-23 W
6 09-28 M programming paradigms (d)   BYOB functions II midterm project
09-30 W
Applications and their
Social Implications
7 10-05 M applications that changed the world (d) applications

work on your project

10-07 W
8 10-12 M social implications of computing I (b)  
10-14 W


10-19 M midterm project due
social implications of computing II
social implications of computing propose your paper study for midterm
10-21 W
Recursion 10 10-26 M Midterm in lab room, 7-10pm

recursion homework

10-26 M recursion I (b) recursion recursion
10-28 W
11 11-02 M recursion II (d) return, go over midterm recursion
11-04 W
12 11-09 M paper due
recursion III
    final project of teams' choosing
11-11 W
Limits and Future of Computation 13 11-16 M limits of computation (b) where will computing go? work on your project
11-18 W
14 11-23 M future of computation (d)  
11-25 W
Summary / Evaluations 15 11-30 M project presentations summary, farewell, survey  
12-02 W
16 12-07 M RRR
12-09 W
17 12-15 Tu Final Exam, 12:30pm - 3:30pm, Location TBD



Lecturer SOE
Dan Garcia
777 Soda Hall, x2-9595,
Office Hours: M 4-5pm in lab

Lecturer SOE
Brian Harvey
781 Soda Hall, x2-8311,
Office Hours: Wed 10-11:30am, Thu 4-5pm

Teaching Assistants (TAs), Readers and TAs-in-Training (TAsiT)

Colleen Lewis (bio)
Office Hours: M 4-5pm in lab

George Wang (bio)
Office Hours: M 4-5pm in lab

TAiT / Reader
Angela Juang (bio)

Lab Assistants & Student Developers

Lab Assistant
Hugh Oh

Lab Assistant
Kate Greenwood

Stephanie Chou

Daisy Zhou


Senior Lecturer
Michael Clancy

Research Associate
Nate Titterton

Research Associate
Jeremy Huddleston

Michael Matloob


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 points to your grade as follows:

Activity Course Points Percent of total grade
Weekly Quizzes, Partipation, Homework 60 15%
Paper 60 15%
Midterm Project 60 15%
Final Project 60 15%
Midterm 60 15%
Final Exam 100 25%

How we'll calculate your letter 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


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 and Handouts

There is no book for this pilot; we'll be handing out notes through the semester.Pair Programmers

We will be using the Scratch programming language. Be sure to download version 1.4 as well as BYOB version 2 (link provided when it's released)

We will be using Pair Programming: "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." -- Laurie Williams, North Carolina State University Computer Science Professor

Creative Commons License CS39N, http://inst.eecs.berkeley.edu/~cs39n/ (Last Updated: Friday, 20-Nov-2009 10:28:22 PST)
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License