TITLE: Thoughts While Killing Time with the Same Old Ills AUTHOR: Eugene Wallingford DATE: December 11, 2007 1:46 PM DESC: ----- BODY: I have to admit to not being very productive this morning, just doing some reading and relaxing. There are a few essential tasks to do yet this finals week, some administrative (e.g., making some adjustments to our teaching schedule based on course enrollments) and some teaching (e.g., grading compiler projects and writing a few benchmark programs). But finals week is a time when I can usually afford half a day to let my mind float aimlessly in the doldrums. Of course, by "making some adjustments to our teaching schedule based on course enrollments", I mean canceling a couple of classes due to low enrollments and being sure that our faculty have other teaching or scholarly assignments for the spring. The theme of low enrollments is ongoing even as we saw a nontrivial bump in number of majors last fall. Even if a trend develops in that direction, we have to deal with smaller upper-division enrollments from small incoming classes of the recent past. Last month, David Chisnall posted an article called Is Computer Science Dying?, which speculates on the decline in majors, the differences between CS and software development, and the cultural change that has turned prospective students' interests to other pursuits. There isn't anything all that new in the article, but it's a thoughtful piece of the sort that is, sadly, all too common these days. At least he is hopeful about the long-term viability of CS as an academic discipline, though he doesn't have much to say about how CS and its applied professional component might develop together -- or apart. In that regard, I like several of Shriram Krishnamurthi's theses on undergraduate CS. When he speaks of the future -- from a vantage point of two years ago -- he recommends that CS programs admit enough flexibility that they can evolve in ways that we see make sense. (I also like his suggestion that we underspecify the problems we set before students:
Whether students proceed to industrial positions or to graduate programs, they will have to deal with a world of ambiguous, inconsistent and flawed demands. Often the difficulty is in formulating the problem, not in solving it. Make your assignments less clear than they could be. Do you phrase your problems as tasks or as questions?This is one of the ways student learn best from big projects!) Shriram also mentions forging connections between CS and the social sciences and the arts. One group of folks who is doing that is Mark Guzdial's group at Georgia Tech, with their media computation approach to teaching computer science. This approach has been used enough at enough different schools that Mark now has some data on how well it might help to reverse the decline in CS enrollments, especially among women and other underrepresented groups. As great as the approach is, the initial evidence is not encouraging: "We haven't really changed students' attitudes about computer science as a field." Even students who find that they love to design solutions and implement their designs in programs retain the belief that CS is boring. Students who start a CS course with a favorable attitude toward computing leave the university with a favorable attitude; those who start with an unfavorable attitude leave with the same. Sigh. Granted, media computation aims at the toughest audience to "sell", folks most likely who consider themselves non-technical. But it's still sad to think we haven't made headway at least in helping them to see the beauty and intellectual import of computing. Mark's not giving up -- on computing for all, or on programming as a fundamental activity -- and neither am I. With this project, the many CPATH projects, and Owen Astrachan's Problem Based Learning in Computer Science project, and so many others, I think we will make headway. And I think that many of the ideas we are now pursuing, such as domain-specific applications, problems, and projects, is a right path. Some of us here think that the media computation approach is one path worth pursue, so we are offering a CS1/CS2 track in media computation beginning next semester. This will be our third time, with the first two being in the Java version. (My course materials, from our first media comp effort, are still available on-line. This time, we are offering the course in Python -- a decision we made before I ended up hearing so much about the language at the SECANT workshop I reported on last month. I'm an old Smalltalk guy, and a fan of Scheme and Lisp, who likes the feel of a small, uniform language. We have been discussing the idea of using a so-called scripting language in CS1 for a long time, at least as one path into our major, and the opportunity is right. We'll see how it goes...
The secret to happiness is low expectations.
-- Barry Schwartz