A Computing Education Debate in CACM

February 25, 2010 at 10:36 pm 11 comments

The March 2010 Communications of the ACM (CACM) includes publication of two Blog@CACM pieces, a sort of point-counterpoint.  CACM published my piece about “How we teach computer science is wrong,” where I argued that dumping students in front of a speeding compiler is not the best way to ramp students up into computing, and that we might think about instructional design mechanisms liked worked examples.  CACM also published Judy Robertson’s piece “Introductory Computer Science Lessons — Take Heart!” where she argued that what we actually do introductory computing actually has the right pieces that good instructional design research recommends.  When I heard that they were going to publish these two pieces together, I thought it was a great idea.

The title they chose was, “Too much programming too soon.”  I think it’s really about the definition of “programming.” I do think a novice facing an empty edit buffer in an IDE is an awful and scary way to get started with computing.  However, I deeply believe that programming is a wonderful part of computer science, but programming more broadly than “Debugging a blank sheet of paper.” It’s creative, powerful, awesome, and often surprising.  There are lots of ways of getting started with programming that are much less scary, such as Squeak Etoys, Alice, and Scratch.  I also think that we should explore reading examples, modifying existing code, debugging code, and new kinds of activities where students do limited text programming, some form of “reduced cognitive load” activities.  We need broader definitions of what “programming” means.

Entry filed under: Uncategorized. Tags: , , .

Technology is not masculine Fighting Engineers: Robots, Anecdotes, and Data

11 Comments Add your own

  • 1. Alan Kay  |  February 26, 2010 at 11:39 am

    I think the red herring here has to do with the issues of guidance and the denaturing of the original meanings and intents behind “learning by making”. Let’s put that aside.

    The first question I would ask (and have been asking in many quarters for some time) is what are the real thresholds of knowledge which have to be acquired and surpassed to have “CS education” make any sense at all?

    I think these are much too low right now.

    The second question I would ask is whether computing in industry, university and K-12 needs zillions of below threshold additions to what is already a pretty sorry state?

    What is the actual motivation here? My university friends (including Mark) tell me that there are monetary rewards of various kinds for “having lots of students” in a department and for retaining them.

    Besides bringing revenues of various kinds into university and trade school coffers, is there any other real reason for current practice?

    If my guesses about the sub-standards are correct, then part of what has been dragging down the whole field over the last few years (and contributing to the apparent need for more bodies) is sub-standard practices leading to enormous disastrous legacy code in virtually all parts of computing.

    Best wishes,


  • 2. Charles Severance  |  February 26, 2010 at 2:28 pm

    I personally am highly critical of how technology is taught and how Computer Science thinks technology should be taught. In reflecting on my years as a Computer Science student and years as a Computer Science teacher, I have reached the following conclusion. Computer Science is not the same thing as Technology Literacy. Computer Science is a deep and wonderful field that employs about 1 in 400 people in the US. When you ask the question as to whether “How we teach Computer Science is Wrong?” – my follow-up is whether you are speaking about teaching 0.25% of the population or 50% of the population? The deep and abiding fallacy that is the underlying assumption of most “reformist Computer Scientists” is that if we just slightly alter how we teach the 0.25% it will be perfect for the other 49.75% of the population who needs to have some understanding of technology to function in a modern society. Computer Science reform fails repeatedly because it has the wrong goal and wrong assumptions. The goal must shift from “recruit more young people so they choose the Computer Science life” to instead “teach all students the basic skills they need for a wide range of full and productive careers”. Like you, I would like to see reform from 8th grad onward – but I think the goal is a better society – not more computer scientists. Until the narrow-minded “ACM CS1 Reformists” are willing to see that bigger picture – this is just a lot of “tail chasing” and well-funded “hot-air”. It would be fun to *actually* debate this sometime rather than just remote-control blog post comments :).

    • 3. Alan Kay  |  February 26, 2010 at 7:30 pm

      Hi Charles,

      A question that is outside your two poles perhaps should be posed first for science.

      To me, the reason to get 90% of the population fluent in science is not to make more scientists, but because it is the best set of processes for thinking outside some of the limitations of our commonsense brains.

      This is very analogous to the reasons for trying to get 90% of the population fluent in reading, writing, and the important ideas which can be expressed and discussed.

      Similarly for real mathematics.

      Now, using these perspectives, where does *real* computer science fit?



      • 4. Mark Guzdial  |  February 27, 2010 at 10:23 am

        Hi Alan,

        I’d like to understand better what you mean by “[Getting fluent in science] is the best set of processes for thinking outside some of the limitations of our commonsense brains.” Are you arguing that learning science leads to some general thinking processes for going beyond commonsense? Do you think that scientific thinking transfers better than geometry and Latin did previously? I don’t think about reading and writing as providing new thinking processes, as providing skills to communicate and gain new knowledge. Science feels very different to me.

        Similarly, I don’t argue that “computational thinking” are a set of general thinking processes. However, I believe that computing provides a set of skills to communicate, understand their modern world, and gain new knowledge.


  • 5. Charles Severance  |  February 27, 2010 at 5:13 am

    Alan, you make the perfect point and make it better than I did – thanks. Thinking about Physics, there is always some “outreach” activity at the top-end of the field – for example a cute little video about the quest for the Higgs might excite 8th grade students to be interested in science – but the people watching the screens at CERN are not the people who should create the entire 8-th grade science curriculum. The problem in “Computer Science” is that these two roles are not yet recognized as needing to be separate. The ACM CS0 and CS1 courses are nearly universally accepted as the “one true path” to understanding technology. There are thousands of “beginner” books whose tables of contents are taken directly from CS1. This is a fine set of books for “future computer scientists” who must someday face and understand “Alpha-Beta-Pruning” and the futility of NP-Completeness.

    While I find that ACM curriculum efforts take us in the wrong direction in terms of educating the 90% properly, there is work that I like contemplating how we should educate the 90% – The ideas presented in the “Being Fluent with Information Technology” report from the National Research Council – http://www.nap.edu/html/beingfluent/

    In summary, I find the argument about which pedagogy best teaches CS1 to 14-year-olds a pointless exercise – instead I would like to discard CS1 and start fresh with a goal of educating the 90% with what they need to learn instead of optimizing CS1 for an increasingly younger audience and coming up with clever marketing around the concept of “recursion”.

  • 6. Alan Kay  |  February 27, 2010 at 10:32 am

    Hi Charles

    Again, I’m posing questions outside the two poles of the ACM’s or the “driver’s ed” approaches. I don’t like either.

    I think children need to get *really fluent* in reading and writing, mathematics and science for their own (and society’s) good. It’s the current *form* of these that I’m objecting to for both the general and pre-professional students. Real depth is needed.

    An enormously important cross cutting perspective that is mostly lacking in K-12 is that of *systems*, and I could imagine this as a wonderful and powerful rubric for getting at quite a lot of important science, math and computing (and vice versa, in that systems are a great object of study for science, math and computing).

    Again, real fluency and understanding is required here. How computing is intertwined with systems perspectives would be very different from the impoverished ACM model (it always was a bad model), but would still be (and should be) quite a bit of really useful work for K-12 students to absorb.



  • 7. Alan Kay  |  February 27, 2010 at 11:13 am

    For Mark’s February 27, 2010 at 10:23 am about science and thinking etc.

    Jerry Bruner’s many studies of education and kinds of transfer included comprehensive looks at analogies. The two biggies are that most people (especially children):
    (a) are not good at seeing behind the veil of appearance, and
    (b) can readily see analogies *if prompted*.
    In fact, there is an important teachable skill here.

    So, most people think of science as its results, and miss that:
    (a) we have been on the planet for almost 200,000 years before inventing/seeing the process
    (b) most of our commonsense thinking over the 200,000 years (and today) is quite in error, and often dangerously so
    (c) science is actually a set of processes to get around what is “bad about our brains”, and tries to make an artificial mind that works better on all questions

    And so forth. Of course, authentic geniuses like Francis Bacon saw these problems from the earliest stages of developing the new thinking methods (early 1600s) and wrote extensively about them.

    Science is often misunderstood. For example, you conflate “math and Latin” with science, and they could not be more different. The Greeks were great reasoners (as was St Thomas Aquinas, and also the Germans in WWII) and they disastrously missed what science is all about.

    The whole point of science is that you should not try to reason until you can set up a workable relationship between observation of phenomena and representation systems that our brains can handle. In other words, the math you use (and its inferential apparatus) is subordinate to and derived from the epistemology of science.

    This carries through to all parts of our world, not just the physical universe. It was used strongly to invent the US constitution and “the concept of the US”.

    And, following Jerry Bruner, this really has to be pointed out to people, even many scientists, who only think of science in the simplistic concrete perspectives in which it is taught (and for many in HS and college — the perspectives taken are so like catechisms that science itself is completely lost and replaced by lists of its results).

    So I think that any really big idea subject has to be taught with constant reminders about what it really is, or people will mostly absorb what they get from it in overly simple concrete terms. (This kind of teaching is precisely what good liberal education is supposed to be about, but is astoundingly lacking.)

    It has been shown by many studies in Anthropology that a literate culture is not the same as “an oral culture with a writing system”. Literate cultures think qualitatively differently than oral cultures, and this is one of the boons of writing and especially the printing press. Again, this is not readily apparent to many people.

    It is about not just “communication and knowledge”, but *new* ways to communicate and *new* kinds of knowledge that are brought here.

    But this is why studies are important (as you’ve pointed out). A person’s “feeling” about something is quite often at odds with the results of careful studies. Science is all about “making the invisible more visible”.

    I think the jury is still out here with regard to “computational thinking” as being really deep (as for the above).

    However, as in the previous post to Charles, I think that “systems thinking” is a biggie, and though it is “kind of” contained in STEM, it is a big enough perspective to be worth a category of its own, and to be included with science and writing as a truly important thinking process to get fluent in.

    From this perspective I think of “computing as the language of systems”, and this makes it very important as well.



  • 8. Charles Severance  |  February 28, 2010 at 4:25 am

    Alan, now I cannot tell if we agree or disagree any more :). You just moved to such a high level of abstraction that there is no meat in what you are saying. You might as well say that the purpose of all education is “synergistic thinking” – which of course it is.

    I would love to talk abut how to generally teach fluency across many topics and many ages. My only reason to focus on technology is to have a discussion where the result is something that leads to real changes in the topics which are taught. My fear is that if we simply agree that this is “about systems” and let someone else make up the technology curriculum – then it will end up a really bad mess. I would like to see a set of folks who have “made it through the system” and have gotten far enough past the way they were educated to have some perspective – from that point of reflection, I would like to see some real and tangible technology curriculum developed and then tested and evolved and to have some feedback about that curriculum (all this sounds a lot like open source 🙂 ).

    I don’t want these questions to reduce to some high level blue sky agreement than does not result in real change – but alas, blog comments have a nominal length so I will stop here.

    • 9. Alan Kay  |  February 28, 2010 at 10:10 am

      Hi Charles.

      I’m going to guess that your comment is directed at mine from February 27, 2010 at 10:32 am (which is currently marked “6” — but may change due to the crazy logic of this blog’s code).

      Re: “meat” — maybe we should all become vegetarians!

      “Technology” is a very large term (it actually encompasses literally anything that human beings make). I think you have some subset of this in mind. For example, most people don’t think of a constitutional democracy as a technology (and I’m guessing you don’t either).

      I’ve made the point in the past that for most people “Technology is all that stuff that happened after they were born”. They don’t see e.g. a printed book as technology.

      Another def of technology from Danny Hillis is “Technology is stuff that breaks”. So most people (and even most computer people) really don’t think of the Internet (not the web) as technology because it doesn’t break.

      But from reading back your several comments to this thread, I can’t quite tease out just what you mean by a technology curriculum and whether it is mostly training in usage for job prep, or whether it has some educational component to it as well.

      I could imagine a wonderful course on technology that would be very illuminating to both high schoolers and college students — would give them real perspective on the age in which they live and the difference science made to both tinkering and engineering.

      I can’t imagine such a course being effective by having the students be spectators of phenomena, but I think it should have some real design and building components that would get the students to be technologists and “do technology” as part of the process.

      Is that what you had in mind?



  • 10. Charles Severance  |  February 28, 2010 at 5:31 pm

    Alan – I think that you have hit it perfectly. As you say, it is not just “job prep” – it is directed at better understanding the world around them. Also as you say, it is not just observing – but it is also participating and extending the technical aspects of that world. I do think a key for this is keeping it interesting, practical, and pragmatic.

    I would also add that there are natural connections between understanding technology and understanding math and science if the curriculum would be properly designed.

  • […] something to get me excited 🙂 He passed along this blog post from Mark Guzdial of Georgia Tech: Mark’s Post The March 2010 Communications of the ACM (CACM) includes publication of two Blog@CACM pieces, a […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

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,518 hits
February 2010

CS Teaching Tips

%d bloggers like this: