Brian Harvey

Computer Science Division
University of California at Berkeley
781 Soda Hall / 510 642-8311
bh@cs.berkeley.edu

BS, Mathematics, MIT, 1969
MS, Computer Science, Stanford, 1975
PhD, Science and Mathematics
          Education, Berkeley, 1985
MA, Clinical Psychology,
          New College of California, 1990
Take a look at my son Heath.

I'm a "Senior Lecturer with Security of Employment Emeritus," which means that they paid me to teach full-time (not to do research), but was essentially tenured, even though I'm not supposed to call it that. I am retired as of July 1, 2013. But I'm continuing to work on various education-related projects at the University.

I taught many of the lower division (freshman and sophomore) computer science courses at Berkeley, as well as one called Social Implications of Computing and occasionally others. You can see videos of my course CS 61A, Structure and Interpretation of Computer Programs, based on the amazing textbook of the same name, the best computer science book in the world. I'm (still) faculty advisor of the Computer Science Undergraduate Association and of the Open Computing Facility.

I'm also interested in the use of computers in pre-college education; I used to be a high school teacher, and was involved in the development of the Logo programming language. More recently I've been helping develop the Snap! language (see below). And since 2004 I've been volunteering in a local elementary school.

Brian's Last Lecture (Quicktime) (download it to watch; don't try to stream it in the browser)


FAQ:

What's happening to 61A?

    Which is better, Scheme or Python?

What's happening to 195/H195?


                       

Build Your Own Blocks (Snap! a/k/a BYOB) is an extended version of Scratch, a drag-and-drop programming language for kids from MIT. I've been working on it with Jens Mönig, adding higher order functions and true object inheritance for first-class sprites, to support an undergraduate-level introductory computer science course. We have established such a course at Berkeley, and are working on spreading it to other colleges and high schools through teacher preparation and support efforts.

This project really excites me — sneaking the ideas of Scheme into the visual metaphor of Scratch! ( at the right is λ.)


Berkeley Logo (download manual) (download readme) is a freeware interpreter that I wrote along with several students. (Major contributors are Daniel van Blerkom, Khang Dao, Michael Katz, Douglas Orleans, and Sanford Owings.) Click here to retrieve the complete distribution archive for Unix/Linux (or by HTTP), MacOS X Stuffit archive (or by HTTP), MacOS X gzip archive, or Windows (or by HTTP), complete with C source code. A version for the One Laptop Per Child XO is here (or by HTTP). (If you think Logo is just a graphics language for little kids, check out a sample program that should impress you.)

The current version is 6.0, posted 14 Sep 2008. 6 Jan 2009: The bug in the version for PowerPC-based Macs that required X11 to run Logo has been fixed. Re-download UCBLogo if you had that problem.

Here are links to version 5.3 for frozen platforms DOS (or by HTTP), or Mac pre-OS X (or by HTTP).

If you downloaded 6.0 before Tues 9/30/2008, 10:30pm PST, and it didn't run on your PowerPC-based Mac, download it again -- that's been fixed.

Also consider David Costanzo's FMSLogo, an updated version of George Mills' MSWLogo, a multimedia-enhanced version for MS Windows based on Berkeley Logo. Or Andreas Micheler's aUCBLogo, a rewrite and enhancement of UCBLogo.

Here are links to other versions of Logo.

If you got here by Googling "logo" and are looking for someone to design a logotype (an identifying symbol) for your organization, you're in the wrong place. This is the Logo computer programming language for learners!

v1 cover v2 cover v3 cover (The beautiful cover art
is by Jon Rife.)

Now FREE for personal use: The second edition of Computer Science Logo Style, a three-volume series intended mainly for teenagers and their teachers, or for adults who aren't professional programmers. You can look at the tables of contents and complete downloadable PDFs and browsable HTML versions of

Note: These books are still in copyright, and in print. They are posted here for your personal use, not for resale or redistribution. Thanks!

MIT Press web page for Computer Science Logo Style

Logo Users Ring
Previous 5 Logo Spoken Here: Ring Home Join Statistics Ring Home
Next 5
Random Site
List Sites

Now FREE for personal use: The second edition of Simply Scheme: Introducing Computer Science, written with my colleague Matthew Wright. The book is intended for college-level non-CS majors and for students who intend to major in CS but whose high school programming background hasn't prepared them for our first course for majors.

The second edition was published in 1999.

You can look at complete downloadable PDFs and browsable HTML versions of the chapters.

Note: This book is still in copyright, and in print. It is posted here for your personal use, not for resale or redistribution. Thanks!

cover art

Here are the program files for use with the book (or by HTTP).

MIT Press web page for Simply Scheme


I've written several papers about computers and education.


I'm a member of the Exploratorium, the Electronic Frontier Foundation, the League for Programming Freedom, and the American Civil Liberties Union. Other organizations I support include the Electronic Privacy Information Center, the Berkeley Food and Housing Project, the Ethical Culture Fieldston School, and Camp Winnarainbow. (The latter group are not membership organizations, hence the grouping.)

So, what do you do for fun, Brian?

Check out the Marxism page and the Marxists Internet Archive.

Check out the world's best turkey stuffing recipe.

bh@cs.berkeley.edu