Changing the way computer science is taught in college by encouraging
students to develop solutions to socially relevant problems.
I haVe been concerned with the
decline in computer science
enrollments nationwide,a and
it began to increasingly bother
me as I prepared for the fall semester last year. With each new freshman class I worry that fewer students are
choosing a career in computer science,
and it’s no stretch of the imagination to
think it’s an image problem. Not only
are we not getting the word out to high
schools, but I believe we’re losing students in the first year of college as well.
And it’s because we don’t offer students
the idea that computer science is social,
relevant, important, and caring, and
thus we lose their interest. There might
in fact be studies that show this, or perhaps not, but it’s something I feel.
PhotograPh courtesy of juDy schinDler
I began my last summer break as I
do almost every year, looking through
textbooks for something usable for a
fall course in programming. I teach
Java, which is more than adequate for
new programmers to learn everything
good and bad about addressing a computer. What they learn is that computers never do what we want, but only
what we tell them to do. And what we
tell them to do in a freshman programming course is too often dull. Write to
the operator, print out the results of a
calculation, order some list, and all too
often the message, calculation, and list
are irrelevant. How can I get them interested? I’m determined at the start
of every semester to have a batch of
a See http://www.cra.org/wp/index.php?p=105.
to learn more about David’s story, see http://www.sociallyrelevantcomputing.org/.
eye-opening, to-the-point, significant
examples, lessons, and problems.
And so I look through the textbooks
and the examples and sample programs, and I become aware of an obsession with animals. In the first 10 textbooks I’ve skimmed, I’ve learned how
to count ducks, categorize puppies,
separate cows from horses, manage a
pet store, create a cyber-pet, add fish to
a bowl, and so it goes. This can’t possibly be the least bit interesting to a freshman who wants to learn computing.
I go back through the textbooks intentionally avoiding animal references
and instead look for something else.
I find games, plenty of them: Tetris,
Othello, checkers, tic-tac-toe, even a
good approximation of chess moves,
which is wonderful if you come to college to play games. I’m not even sure
what programming principle they’re
trying to teach, and in my best attempt
at empathy with an incoming freshman, my eyes glaze over. I’m bored,
and I have a vested interest. How can
a student possibly find interest and
relevance in this stuff? The texts rely
solely on the student to be interested
enough in programming to overcome
the banality. We all know that practice
is more fun than theory, but our attempts at practice aren’t real.
I move on…let’s see…a doughnut
APriL 2009 | voL. 52 | no. 4 | communicAtionS of the Acm