![]() ![]() |
UC Berkeley EECS |
![]() |
Overview
Fall 2009 students pair programming in Scratch.
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.
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!
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. Last fall (2010) was a 90-person pilot and 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!
Student feedback from Fall 2010.
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."
We are delighted to announce that this course was recently chosen as one of the 5 National pilots by the CollegeBoard (the folks that offer Advanced Placement exams) as a model for an exciting new First Course in Computing: Computer Science : Principles. Our intent is to provide this entire course, through Creative Commons, to the global community. As an example, all of our lecture webcasts are available, our readings are all free (linked from our calendar), and our labs and homework are publicly available via our Moodle server (also linked from our calendar). We'll package the whole thing into a single zip file at the end of the Fall 2010 semester. We'll even provide High Definition lecture videos with extra cool content! As well, we've been working closely with three local high school computer science teachers to develop this course, and they may run variants of this course at their school in the near future:
λ Josh Paley of Gunn High School in Palo Alto, CA
λ Eugene Lemon of Ralph Bunche High School in Oakland, CA
λ Ray Pedersen of Albany High School in Albany, CA
News
2011-06-06 |
Final Exam statistics and histogram We've calculated the Final Exam statistics and histogram. The mean was 46 and the standard deviation was ~16. |
2011-04-07 |
Midterm statistics and histogram We've calculated the Midterm statistics and histogram. The mean was ~45 and the standard deviation was ~9, before correcting for difficulty on fractal questions. |
2011-02-16 |
Quest statistics and histogram We've calculated the Quest statistics and histogram. The mean was ~13 and the standard deviation was ~4, but remember this exam is only worth 5% of your grade, and you can replace your quest grade if you do better in your midterm. |
2011-01-21 |
CS10 Kickoff Party! We're going to be holding a kickoff event (with free food and games!) to get to know each other a little better. Swing by the Woz (430 Soda Hall) between 7 and 10pm to join the action. |
2011-01-17 |
Welcome to CS10, everyone! Those of us on staff are really excited about sharing the Beauty and Joy of Computing with you all, and are looking forward to a great semester! -The Staff |
Webcasts
Webcasts of our lectures are freely available online!
Calendar
Hour | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
9:00am | Lab 14 (Luke Segars) 200 Sutardja Dai |
Lab 14 (Luke Segars) 200 Sutardja Dai |
|||
10:00am | Discussion 104 (Luke Segars) 3 Evans Hall |
||||
11:00am | |||||
12:00pm | |||||
1:00pm | Office Hours (Navin Eluthesen) 751 Soda Hall |
||||
2:00pm | Office Hours (Luke Segars) 200 Sutardja Dai |
Office Hours (Glenn Sugden) 651 Soda Hall |
|||
3:00pm | Lecture 277 Cory Hall |
Lecture 277 Cory Hall |
|||
4:00pm | Lab 11 (Glenn Sugden) 200 Sutardja Dai |
Office Hours (Luke Segars) 651 Soda Hall |
Lab 11 (Glenn Sugden) 200 Sutardja Dai |
Discussion 101 (Glenn Sugden) 9 Evans Hall |
|
5:00pm | Discussion 103 (Luke Segars) 9 Evans Hall |
||||
6:00pm | Lab 12 (Navin Eluthesen) 200 Sutardja Dai |
Lab 12 (Navin Eluthesen) 200 Sutardja Dai |
Discussion 102 (Navin Eluthesen) 9 Evans Hall |
||
7:00pm | |||||
8:00pm | Lab 13 (Luke Segars) 200 Sutardja Dai |
Lab 13 (Luke Segars) 200 Sutardja Dai |
|||
9:00pm |
Week | Days in 2011 | Readings (Sa/Su) | Lecture 1 (M) | Lab 1 (M/Tu) | Lecture 2 (W) | Lab 2 (W/Th) | Discussion (F) | HW, Exams & Projects |
---|---|---|---|---|---|---|---|---|
1 | 01-17 to 01-21 | Prof. Harvey's Intro to Abstraction, BtB (55-60), Is Abstraction the key to Computing? (CACM), AP CS Principles Rationale, Big Ideas, and Practices | No Class, MLK Holiday | No Lab | Abstraction | Broadcast, Animations, Music | Welcome, icebreaker activities, course expectations Kickoff Party! 7pm @ Wozniak Lounge (430 Soda Hall) |
Homework 0 : Mini-biography due Jan 28 |
2 | 01-24 to 01-28 |
Kinect's Future, a Game Controller in Everything, Justices Split on Violent Games, Designing Games with a Purpose (GWAP) |
3D Graphics | Loops and Variables |
Video Games
Pre-course survey deadline! |
Random, If, and Input | Anatomy of a Computer & The Power of Binary | Homework 1 due Jan 26 |
3 | 01-31 to 02-04 | Scratch: Programming for All (CACM), | Functions TA Luke Segars |
BYOB | Programming Paradigms | Lists I | Video Games | Homework 2: part 1 and part 2 due Feb 2 |
4 | 02-07 to 02-11 | BtB chapter 1 | Algorithms I TA Luke Segars |
Lists II | Algorithms II | Algorithms | Open Topic | Homework 3 due Feb 9 |
5 | 02-14 to 02-18 | None | Quest (exam and solutions, rubric) |
Algorithmic Complexity | Concurrency | Concurrency | Lists, Algorithms, and Games |
Homework 4 due Feb 16 |
6 | 02-21 to 02-25 | Free Lunch is Over, Spending Moore's dividend (CACM) | No Class, President's Day Holiday | No Lab | Recursion I | Recursion I | Project Introduction (specification) |
Homework 5: part 1 and part 2 due Feb 23 |
7 | 02-28 to 03-04 | BtB Chapter 2 | Social Implications I | Project Work | Recursion II | Recursion II | Recursion | |
8 | 03-07 to 03-11 |
BtB Chapter 3 BtB Chapter 4 |
Social Implications II | Project Work | TA Glenn Sugden Applications that Changed the World | Recursion III | Social Implications of Computing | |
9 | 03-14 to 03-18 |
BtB Chapter 5 BtB Chapter 6 |
Prof. Kathy Yelick : Saving the World with Computing |
Project Work | Raffi Krikorian: How Twitter Works |
Applications that Changed the World | Recursion | Project due March 18 |
10 | 03-21 to 03-25 | None | No Class Spring Break |
|||||
11 | 03-28 to 04-01 |
No reading Midterm ReviewMarch 27, 6 - 9pm Wozniak Lounge (430/438 Soda Hall) |
Prof. Björn Hartmann: HCI | Midterm Survey Online Midterm |
Lambda + HOFs I |
Lambda +
HOFs I Midterm March 31st, 6 - 8pm 155 Dwinelle (exam) (solutions) |
HOF + Lambda | |
12 | 04-04 to 04-08 |
BtB Chapter 7 BtB Chapter 8 (optional) |
TA Navin Eluthesen Lambda + HOFs II |
Distributed Computing | Distributed Computing | Parallel Processing Paradigms | ||
13 | 04-11 to 04-15 |
A Berkeley View of Cloud Computing, The Great Robot Race (VIDEO), The Thinking Machine (VIDEO), Brian Harvey's AI notes, What is IBM's Watson?,
The First Church of Robotics
(Thinking Machine optional) |
Prof. Armando Fox : Cloud Computing | Project Brainstorming, Team Selection, and Work | Artificial Intelligence | Project Work | AI | Paper / Blog due April 15 |
14 | 04-18 to 04-22 | Computers Solve Checkers -- It's a Draw | Game Theory | Project Work | Limits of Computing | Project Work | Open Topic | |
15 | 04-25 to 04-29 |
Quantum Leap,
BtB: Conclusion |
Future of Computing | Project Work | Summary and Farewell | Final Course Survey Online Final Exam |
Final Thoughts | |
16 | 05-02 to 05-06 | RRR Week |
Final Project Presentations Friday, May 6 306 Soda, 11am - 2pm |
Final Project due May 6 @ 11am Blog comments due May 6 @ 11:59pm |
||||
17 | 05-09 to 05-13 |
[Exam Week] Final Exam Review Session Sunday, May 8 Wozniak Lounge (430 / 438 Soda), 3 - 6pm Reading Slides Programming Slides |
Paper Final Exam and Solutions
Wednesday, May 11 277 Cory Hall, 7 - 10pm Supplementary Handout |
Staff
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% |
Paper | 60 | 15% |
Midterm Project | 60 | 15% |
Final Project | 60 | 15% |
Quest | 20 | 5% |
Midterm | 60 | 15% |
Final Exam | 80 | 20% |
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
λ 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
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License