A Computer Science Fair without Computer Science

May 10, 2011 at 9:24 am 14 comments

(Thanks to Kevin Karplus for this link.)  I agree with the author quoted below, that it is alarming that the “Computer Science Fair” he’s describing doesn’t have a single example of computer science.  However, I’m not as hung up over the lack of coding.  I can imagine some really interesting projects at the middle school level science fair level that might be about digital representation or computation without being about programming.  I’m just making these up, but here are some examples:

  • Given the same picture, is JPEG bigger than PNG, or vice versa?  Does it matter what’s in the picture? Why might the sizes differ?
  • My Senior Design students built me a gadget I’ve been wanting for awhile: A spreadsheet to picture converter.  I’ll write more about it later. I could imagine using something like that to ask, “When I ‘remove red eye,’ what actually happens to the pixels in the picture?”
  • For some activities that are like what we see computers doing (e.g., putting objects in bins, finding something in a pile, sorting numbered cards in increasing order, solving large-multi-digit arithmetic problems), can we figure out ways of doing those tasks faster with two people than with only one? (I am thinking about CS Unplugged-like activities here, but making it a science fair challenge.)
  • Using only binary (only 0’s and 1’s), can I encode text? What is the smallest number of bits I can use to encode some text so that someone else, told the encoding, could get the text back out of the bits?
I have a middle schooler at home right now.  She’s curious and smart, but so far, she’s not shown much interest in programming.  But puzzles and how-things-work questions interest her — I think she could do things like these, and would like to do them.  She enjoys the puzzles that Barb poses to her, like how high can you count with the fingers of one hand (31, if you shift to binary).  It’s computer science, but it’s not programming.

Not a single category, it would seem, for actual computer programming. No sense that computer programming involves anything more that the consumption and marketing of computer technology. No sense of the tremendous analytical skills that go into the coding that makes all the rest of this possible.

And yet another area that has been hijacked away from the most left-brained of our students.

Perhaps there’s some virtue in this contest, but could we possibly call it something other than a “Computer Science” fair?

And could we possibly have a city-wide Computer Science Fair that’s actually worthy of the name–i.e., one that showcases the work of those who do actual programming?

via Out In Left Field: The Right-Brained Computer Science Fair.

Entry filed under: Uncategorized. Tags: , , .

Struggling to Create the Mobile Campus It all sounds so good, until you study it

14 Comments Add your own

  • 1. Alan Kay  |  May 10, 2011 at 9:30 am

    Click to access rn2005001_learning.pdf



    • 2. Mark Guzdial  |  May 10, 2011 at 9:36 am

      Absolutely, Squeak Etoys is a great way to do middle school computer science. In addition, there are ways to start, even without computers. The challenge is to move away from doing-things-with-applications and calling it “computer science.”


      • 3. Alan Kay  |  May 10, 2011 at 10:25 am

        Hi Mark

        I think that many people are quite confused and misled by the tempting notion of “without computers”.

        If it were about “guitar”, then there are any number of good “without guitar” things one can do to help learners develop their musical sensibilities and sensitivities (e.g. singing, dancing, playing drums, even a little (very little!) air guitar, etc.),

        But if your students aren’t spending the large majority of their time “on guitar” then everyone is being fooled.

        And if it is about composing music, then etc.



        • 4. Mark Guzdial  |  May 10, 2011 at 1:53 pm

          Hi Alan,

          The problem of the computer is different from that of the guitar. The computer can be both “piano” and “stereo” (to use the metaphor that Mitchel Resnick, Fred Martin, and Amy Bruckman developed). Right now, it’s only being used as “stereo.” We want it used more as a “piano.” Guitars can only be used in the “piano” mode. How do we get teachers and students to see the computer as “piano”? Maybe stepping away from the device helps us to return to it with a different perspective? I don’t know — it’s a hypothesis.


          • 5. Alan Kay  |  May 10, 2011 at 1:57 pm

            I like the metaphor.

            I was addressing the other point, which is what can be learned about playing the piano off the piano. I asserted that the answer is “a few good things” but most of the time has to spent actually learning to play …



            • 6. Mark Guzdial  |  May 11, 2011 at 11:15 am

              I agree with you. Especially for those who seek to develop some expertise in software, the need for time spent coding, for development of craftsperson’s skill in an apprenticeship-like setting, is critical. Unfortunately, that’s something that we’re particularly bad at providing in undergraduate computer science curricula.


  • 7. Garth  |  May 10, 2011 at 11:04 am

    It would seem more appropriate to call this a Computer Arts Fair from the list of awards. Since the definition of Computer Science is still a bit fuzzy it might be a bit elitist to think these topics are not Computer Science. It is not exactly what I think of when I think of Computer Science but then I am just a lowly high school computer science teacher who thinks building computers, networking, art with computer software and a whole bunch of other odd stuff is all a little part of computer science. I do think programming and the knowledge surrounding programming is the center of CS but all the other “non-sciency” stuff has to fit somewhere in the definition somewhere. It is kind of ridiculous to have a Computer Science Fair without a good chunk of it involving programming in some form or another. Kind of like having an Art Fair without paintings. Weird.

    • 8. Alan Kay  |  May 10, 2011 at 11:49 am

      When we say “Computer X” and put a word in for X, I like to think that the word we put in carries its main meaning along with it, and we are talking about how this meaning would influence our thinking about “Computer”.

      So, if we put “Engineering” in, then we really mean what we mean by “real engineering” being done with computers as the genre. If we put in “Arts”, then we really mean what we mean by “the Arts” with computers as the object of aesthetics. And so forth.

      So, I think it would help everyone, especially in K-12 to seriously consider just what “Science” means since the 17th century, and to think about what a “real computer science” could be and ought to be.

      As it stands, people use this term so loosely that it pretty much means nothing (but still has the “designer jeans” illusion that something of worth is present).

      I think being tough about these terms and respecting what the source words mean in the large, would reduce confusion, and greatly help people to think hard about what computing is and is not doing at present.

      Best wishes,


      • 9. gasstationwithoutpumps  |  May 10, 2011 at 1:37 pm

        Very little of what is taught by computer science departments is science. Most is either engineering or mathematics. Both are worthy fields (I was a math major before getting a computer science PhD and becoming an engineering professor), but they are not “science” in the sense of empirically testing hypotheses derived from models.

        • 10. Alan Kay  |  May 10, 2011 at 1:46 pm

          Precisely why I’m taking a hard line here. I think the field should be called “Computing”, and that there should be real parts that are real engineering, real math, real art, and … real science.

          And … in a “science of the artificial”, whether of bridges, clocks, or computing, it is the making of models of and from the artifacts that holds the power. The “hypotheses” are essential simpler models that claim to generate the same phenomena, or that give rise to more interesting phenomena, from which more interesting artifacts can be derived.

        • 11. BKM  |  May 11, 2011 at 9:36 am

          I totally agree with you. I think that computer “science” is really an engineering/design field, grounded in mathematics.

  • 12. Alan Kay  |  May 11, 2011 at 11:42 am

    @Mark – “Unfortunately, that’s something that we’re particularly bad at providing in undergraduate computer science curricula. ”

    I wonder if this is partially — or largely — because “CS” departments don’t seem to be doing large forward looking projects as they used to under ARPA, etc., funding.

    This would be the equivalent of a place that is making and playing “real music” as opposed to just “exercises from the book”.

    Have many or most departments degenerated into just doing “Music Appreciation” vs making music? At some point such professors start to lose the ability to discern other than generally popular music (which seems to have happened to a large extent in academic computing …)



  • 13. gasstationwithoutpumps  |  May 11, 2011 at 12:38 pm

    I don’t see many computer science students any more, as they don’t take bioinformatics classes. I do see some computer engineering students, as I’ve been co-teaching the senior design project course taken by computer engineers, electrical engineers, and bioengineers (but not computer science majors). The game design majors also do a senior project (in a separate class), but the “pure” CS majors seem to get no major design practice here.

    The undergrad research poster sessions that we have each year get lots of posters from the other majors, but not from CS. You would not be able to tell that CS is the biggest major in the school of engineering, since the undergrads in it are essentially invisible to the outside world. The tiny bioinformatics major (with less than 1/10 as many students) does more posters and other visible signs of research.

  • 14. BKM  |  May 11, 2011 at 1:54 pm

    The fact that computer science students don’t learn much about design (in any organized way) is a huge concern to me. I’ve been researching this for something I am writing. Engineering programs pay a lot of attention to the teaching of design, and have various methodologies for doing so. There is a lot of literature on the teaching of design in engineering. Likewise, there is a lot of literature on the teaching of design in architecture. But when I go searching for similar literature in computer science, I find very little, and what there is tends to be concentrated in software engineering (where you get that ‘e’ word again). I think in many programs, the software engineering course is the only place where students get exposed to the process of *designing* something – and the poor software engineering course is so overloaded that I doubt anyone can spend much time on design in it.


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 )

Google photo

You are commenting using your Google 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 9,005 other followers


Recent Posts

Blog Stats

  • 1,878,935 hits
May 2011

CS Teaching Tips

%d bloggers like this: