Archive for May 24, 2010

The Core of Computer Science: Alan Kay’s “Triple Whammy”

My aunt and uncle were in town last week.  My aunt told Barb and me how many of her friends’ computers were “destroyed” by “watching a YouTube video.”  “It almost happened to us, too, but we got a phone call telling us not to watch that video!”  Sure, there is probably a website out there that can trick users into installing a virus that can cause damage to their computer, and it may have a video on the website.  But I have a hard time believing that simply watching a video on a website like YouTube might “destroy” one’s computer (or more specifically from her explanation, erase one’s hard disk).  Belief that that could happen seems like a belief in magic and mythology, like the belief that a chariot draws the sun across the sky.  We ask everyone to take classes in history and biology, because they should understand how their world works, whether or not they will major in those fields.  It’s part of being an informed citizen who does not believe that the world runs by magic and myths.  What does everyone need to know about computer science?

Alan Kay and I were having an email conversation about this question, about what was the core of computer science that everyone ought to know about, even non-majors.  He came up with a “triple whammy” list that I really like.  It may need som re-phrasing, but there’s something deep there.  I’m copy-pasting his notes to me (repeated here with his permission) in italic-bold, with my intepretation and commentary between.

It is all about the triple whammy of computing.
1. Matter can be made to remember, discriminate, decide and do

In his book Pattern on the Stone, Danny Hillis points out that modern day CPU’s are just patterns on stone, essentially the stuff of sand.  We are able to realize YouTube and eBay and natural language translation and Pixar movies all because we can make patterns on stones that can remember things, distinguish between options, act on those distinctions, and do things from playing sounds to actuating robots.  This feels like magic, that matter can do those things, but mechanical engineers would find this first step unsurprising.  They know how to make machines made out of matter that can do these things, even without modern computers.  Whammy #1 is an important step away from magic, but isn’t yet computer science.

2. Matter can remember descriptions and interpret and act on them

In step 2, we get to programs and programming languages.  We can describe processes, and our matter can act on those descriptions.  While we can do this with steam engines and mechanical engineering, it’s complicated and not obvious.  We do this regularly in computer science.

3. Matter can hold and interpret and act on descriptions that describe anything that matter can do.

This third step is amazingly powerful — it’s where we go meta.  We can also describe the matter itself as programs.  Now we can create abstractions on our programming languages.  Now we can point out that any program can be written in any programming language.  This doesn’t directly address my aunt’s misconceptions, but if she understood the third whammy, we could talk about how a badly written media player could interpret a nefariously designed video such that the video could instruct a too-powerful media player to trash a hard disk, but how unlikely that would be.  This third step is where we get to the role that computer science can

The Triple Whammy isn’t all of computer science.  There is a lot more than these three steps.  For example, I think that everyone should know about limits of computability, and about the possibility of digitizing information in any medium (thus allowing for visualization of sound or auralization of stock market data).  I do see the Triple Whammy as part of a core, and that this could fit into any CS1 for any student.

We definitely talk about steps 1 and 2 in the Media Computation CS1, and parts of step 3. For example, we define a simple line-drawing language, then build an interpreter (just does each line-drawing statement) and a compiler (generates the equivalent Python function or Java method) for that line drawing language.  We do that in order to explain (in part) why Photoshop is faster than Python for any image filter we create.  But we definitely do not do this explicitly yet.  As I’m working on the Powerpoint slides for the Python 2ed book now, I’m thinking about building a “Triple Whammy” slide deck, to encourage teachers to have this discussion with their students in a Media Computation context.  I’ll bet that TeachScheme already gets there.

What I really like about this list is that it clearly explains why Computer Science isn’t just advanced use of application software.  We see adults and kids in our studies all the time who tell us that somebody really good at Photoshop is a computer scientist.  We hear from teachers and principals regularly who tell us that they teach computer science, because here’s the book they use for introducing Excel and Access.  The Triple Whammy is about computer science and not about using applications.

May 24, 2010 at 1:48 pm 7 comments

Happy 70th Birthday, Alan Kay!

Alan Kay turned 70 last week. In honor of his birthday, two of his colleagues at Viewpoints Research, Ian Piumarta and Kim Rose assembled an amazing book of essays from Alan’s past collaborators and friends: From Adele Goldberg and Vint Cerf, to Quincy Jones and Gordon Bell.  Kim is a cognitive scientist and was my co-editor on the second Squeak book. She co-wrote the Squeak Etoys Powerful Ideas in the Classroom book with BJ Allen Conn.  Ian is a gifted systems researcher and programmer (e.g., he did the first port of Squeak outside of Apple or Disney, and still maintains the UNIX ports), who also loves to produce beautiful books.  He managed all the LaTeX-work for Kim and I on our book (for which we remain grateful!), and typeset Kim and BJ’s book.  I’m looking forward to seeing the new book  — I’m sure it’s fascinating and gorgeous.  They are currently out-of-stock, but are planning to do a second printing.  (The first printing sold out in 6 hours!)

Alan is well known to readers of this blog. He and his research group at Xerox PARC in the 1970’s invented the desktop user interface, Smalltalk, and our modern notions of “object-oriented programming.”  He won the ACM Turing Award in 2003.  Alan did his pioneering work in user interfaces and programming languages in pursuit of a larger goal — improving how people learn and think, and using computing technology as the lever and medium.

I am grateful for Alan’s mentoring advice over the last 15 years.  I started on the path to a PhD in education and computer science because I was inspired by his paper with Adele Goldberg on Personal Dynamic Media. We met in 1995 when I invited him to a workshop I was co-organizing for NSF on setting a research agenda in educational technology.  As Alan wondered from group-to-group, other participants and some group leaders came to me asking, “Can you keep Alan out of our room?  He keeps coming in and challenging everything!”  Yup, that’s Alan (and why anyone would think that I could slow him down, or would want to, is beyone me :-).  Alan has generously offered his time as a mentor to me, advising me to think more deeply and push harder in my work.  Alan is often referenced in discussions with my students.  “You know what Alan would say about that!”  When Alan was given an honorary doctorate by Georgia Tech in 2005, his schedule was filled with meetings with the important folks.  He still found time to hang out for a couple hours with me and Barb and others, commenting on everything from schools and technology to management.  Many thanks, Alan, and best birthday wishes to you!

May 24, 2010 at 10:21 am 2 comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,184 other subscribers


Recent Posts

Blog Stats

  • 2,054,521 hits
May 2010

CS Teaching Tips