Archive for May, 2010

Computer science as Yugoslavia

I wonder if Paul Graham is right, that “Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia.”  I’m wondering because, when I re-read his famous Hackers and Painters essay recently, I found myself listing the other areas not in his analysis but part of what I think of as “computer science”:

  • Human-centered computing, the implications of computing for humand and how human concerns (e.g., culture, psychology, economics) influence the design of computing systems.
  • The deep-down what computing is about, reflected in Alan Kay’s “Triple Whammy” that everyone should know about computing.  Is that mathematics?  It’s not the natural history or hackers parts.  It’s not really an area of research for everyone, but it is something that everyone should know.
  • The graphics designers that Brian Dorn is studying, who program but not to produce beauty in software, like Graham’s hackers, but to produce software output of value, to produce artifacts that might create beauty.  Brian is finding that these people need to know a lot about computer science to make themselves more successful at what they want to do, but they don’t fit into any of Graham’s categories.

Can all these pieces stay together, under some kind of UN-enforced treaty?  Or are we bound to split into multiple fields?

I’ve never liked the term “computer science.” The main reason I don’t like it is that there’s no such thing. Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia. At one end you have people who are really mathematicians, but call what they’re doing computer science so they can get DARPA grants. In the middle you have people working on something like the natural history of computers– studying the behavior of algorithms for routing data through networks, for example. And then at the other extreme you have the hackers, who are trying to write interesting software, and for whom computers are just a medium of expression, as concrete is for architects or paint for painters. It’s as if mathematicians, physicists, and architects all had to be in the same department.

via Hackers and Painters.

May 31, 2010 at 12:39 pm 2 comments

CS is shallow and lacking paradox

The criticism in this blog post is interesting.  The blogger agrees with those in the field who are saying we don’t do enough to emphasize the rigor and complexity of computer science.  It’s interesting that the author also criticizes CS for not teaching its students enough about how to be a better programmer.  Those feel like two different things to me: To learn to be a great programmer, and to understand the deep and interesting questions of CS.

Computer science is shallow, and nearly every place it’s taught is at the mercy of “industry”. They rarely teach deep philosophy and instead would rather either teach you what some business down the street wants, or teach you their favorite pet language like LISP. Even worse, the things that are core to Computer Science like language design, parsing, or state machines, aren’t even taught unless you take an “advanced” course. Hell, you’re lucky if they teach you more than one language.

Another way to explain the shallowness of Computer Science is that it’s the only discipline that eschews paradox. Even mathematics has reams of unanswered questions and potential paradox in its core philosophy. In Computer Science, there’s none. It’s assumed that all of it is pretty much solved and your job as an undergraduate is to just learn to get a job in this totally solved area of expertise.

via Shedding Bikes: Programming Culture And Philosophy.

May 31, 2010 at 12:04 pm 3 comments

Teacher’s Materials, Family, and Hawaii

My main activity for the last couple weeks has been to work on teacher’s materials for the Media Computation website.  I made a pass at cleaning up the front page, making it easier for teachers to navigate to the materials that they need.  (Along the way, we discovered that the media sources that we linked in for the Data Structures book were wrong!  The right ones are now linked there — sorry!)  The largest single consumer-of-hours has been the creation of the Powerpoint slides for the Python Second edition book.  I’ve owed these to teachers for the whole academic year that the new edition has been out, and I’m sorry for the delay.  (My announcement about these slides to the mediacomp-teach mailing list started out with “From the Slow-but-not-Dead Department.”)  I recognize that for many overworked teachers, having a complete set of slides already prepared is necessary to be able to use a new approach or textbook.  I’m now working on updating the Data Structures book slides, since changes happened between the last time I taught the class and us finishing the book.  (For one, my co-author joined the effort, and Barb writes much better code than me.)

But whatever gets done today and tomorrow is all that will get done there for a couple weeks.  Things are crazy here at our house.  We’re hosting a graduation party for our son this weekend, with some five carloads of family coming down from Michigan for it.  So today and some tomorrow is all the work time that I can spare, then I’m in high gear for planning, shopping, and cooking.

The relevant part for this blog is that next Tuesday, June 1, I’m going off-line for 10 days.  This year, my lovely wife and I are celebrating 25 years of marriage, and my parents are celebrating 50 years!  The whole extended family is going to Hawaii to celebrate, leaving on Tuesday June 1, returning June 11. I will not be on-line during this time! No email, no blog.  My apologies for the delay, but it’s time to disconnect.

When I return, I will be heading out almost immediately (June 13) to teach workshops in Amherst and Cambridge, MA.  (Um, whose idea was it to teach 9-5 for five days while jet-lagged?  Oh yeah — mine.)  I will be trying to catch up in the evenings that week, so it may be two weeks before I can post again.

Happy early summer to all of you!

May 26, 2010 at 10:32 am 4 comments

In Praise of Drill and Practice

Last night, Barb and I went out to dinner with our two teens.  (The house interior is getting painted, so it was way easier than trying to eat in our kitchen.)  We got to talking about the last academic year.  Our eldest graduated from high school last week, with only one B in four years, including 7 AP classes.  (While I take pride in our son, I do recognize that kids’ IQ is most highly correlated with mothers’ IQ. I married well.) Our middle child was moping a bit about how hard it was going to be to follow in his footsteps, though she’s doing very well at that so far.

Since our middle child had just finished her freshman year, we asked the two of them which teachers we should steer our youngest toward or away from.  As they compared notes on their experiences, I asked about their biology teacher, Mrs. A.  I couldn’t believe the homework load that Mrs. A. sent home with the kids each night — almost all worksheets, fill-in-the-blank, drill-and-practice.  Sometimes, our middle child would have 300 questions to complete in a night!

Both our kids loved Mrs. A!  No, they didn’t love the worksheets, but they said that they really liked how the worksheets “drilled the material into our heads.”  “She’s such a great teacher!” they both said.  They went on to talk about topics in biology, using terms that I didn’t know.  Our middle child said that she’s looking forward to taking anatomy with Mrs. A, and and our eldest said that many of his friends took anatomy just to have Mrs. A again.

I was surprised.  My kids are pretty high-ability, and this messes with my notions of Aptitude-Treatment Interactions.  High ability kids value worksheets, simple drill-and-practice — what I used to call “drill-and-kill”?

On the other hand, their experience meshes with the “brain as muscle” notions that Carl Wieman talked about at SIGCSE.  They felt that they really learned from all that practice in the fundamentals, in the language and terms of the field.  Cognitive load researchers would point out that worksheets have low cognitive load, and once that material is learned, students can build on it in more sophisticated and interesting ways.  That’s definitely what I heard my kids doing, in some really interesting discussions about the latest biology findings, using language that I didn’t know.

I realized again that we don’t have (or at least, use) the equivalent of worksheets in computer science.  Mathematics have them, but my sense is that mathematics educators are still figuring out how to make them work well, in that worksheets have low cognitive load but it’s still hard getting to what we want students to learn about mathematics.  I suspect that computational worksheets would serve mathematics and computer science better than paper-based ones.  A computational worksheet could allow for dynamics, the “playing-out” of the answer to a fill-in-the-blank question.  Much of what we teach in introductory computer science is about dynamics: about how that loop plays out, about how program state is influenced and manipulated by a given process, about how different objects interact.  That could be taught (partially, the foundational ideas) in a worksheet form, but probably best where the dynamics could be made explicit.

Overall, though, my conversation with my kids about Mrs. A and her worksheets reminded me that we really don’t have much for CS learners before throwing them in front of a speeding interpreter or compiler.  A blank editor window is a mighty big fill-in-the-blank question. We need some low cognitive load starting materials, even for the high ability learners.

May 26, 2010 at 10:15 am 15 comments

Fear and anxiety over curricular change

Here in Georgia in educational circles, you often hear, “Thank God for Alabama and Mississippi!”  Because without them, we’d be 50th among the 50 states in educational standards.

Over the last few years, there has been a significant effort to improve standards and create a new, more rigorous curriculum.  It has parents up in arms!  “There’s no proof that this will work!”  No, there never can be .  Replicating another state’s program might work in the next context, but might not.  “My straight-A student is now getting C’s!” Now there’s the underlying issue.  When you make wholesale change, students have to adapt and teachers have to learn.  That kind of change is leading to exactly that kind of fear and anxiety in Georgia.

We’re not in exactly the same space with respect to Computing.  In most places, we’re not replacing anything.  However, replacing CS1 curriculum, among teachers (faculty) who have no incentive to change — that may be even harder.

Under the state’s new math curriculum, lower scores plus a quicker pace of instruction equal greater anxiety for both students and their teachers.

“In my classes, I have 60 kids and only 17 are passing. You know how stressful that is on me?” said Donna Aker, a veteran math teacher at South Gwinnett High School.

It’s a problem common to many metro Atlanta schools. Nearly one in five ninth-graders in metro Atlanta last year got an F in Math I — the first year of the state’s new math curriculum in high school.

via New curriculum: Math anxiety for students, teachers  |

May 25, 2010 at 7:56 am 3 comments

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

Older Posts

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

Join 6,297 other followers


Recent Posts

Blog Stats

  • 1,672,107 hits
May 2010
« Apr   Jun »

CS Teaching Tips