Computer Science 10: The Beauty and Joy of Computing

Computer Science 10: The Beauty and Joy of Computing (Spring 2015, UC Berkeley). Instructor: Professor Dan Garcia. This course provide an introduction to the beauty and joy of computing, dealing with the history, social implications, great principles, and future of computing. 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. (from


Lecture 01 - Welcome, Abstraction
Lecture 02 - Functions
Lecture 03 - Abstraction II
Lecture 04 - Creativity
Lecture 05 - Programming Paradigms
Lecture 06 - Algorithms
Lecture 07 - Algorithmic Complexity
Lecture 08 - Concurrency
Lecture 09 - Recursion I
Lecture 10 - Recursion II
Lecture 11 - Artificial Intelligence (Guest Lecturer: Patrick Virtue)
Lecture 12 - Global Impact of Computing I
Lecture 13 - Human-Computer Interaction (Guest Lecturer: Bjoern Hartmann)
Lecture 14 - Global Impact of Computing II
Lecture 15 - Internet I
Lecture 16 - Internet II
Lecture 17 - Higher Order Functions
Lecture 18 - Besides Blocks I: Introd to Python (Guest Lecturer: Michael Ball)
Lecture 19 - 10 Principles for Social Media Privacy (Guest Lecturer: Gerald Friedland)
Lecture 20 - Besides Blocks II: Python Data Structures and APIs
Lecture 21 - Data and Information
Lecture 22 - Limits of Computing
Lecture 23 - Future of Computing
Lecture 24 - Saving the World with Computing (Guest Lecturer: Kathy Yelick)
Lecture 25 - Summary and Farewell

CS10: The Beauty and Joy of Computing (Spring 2015)
Instructor: Professor Dan Garcia. Semester Schedule. Readings. Lecture Slides. CS10, The Beauty and Joy of Computing, is an exciting new course offered by the UC Berkeley EECS Dept.