I am adding
And subtracting
I’m controlling
And composing
— Kraftwerk, “Pocket Calculator”
I often tell students that computer programming is like drawing — learning and practicing it opens up new ways of seeing the world, and new ways of creatively giving shape to ideas. I’ve long thought that everyone should be able to program, at least a little bit, and so I was thrilled to see a recent post on Berkeley’s blog, Why are English majors studying computer science?, that reports a phenomenal increase in the number of students taking computer science courses:
Notably, the uptick is not just due to STEM students, but rather a broad swathe of the university (the “English majors” of the post’s title). The author writes:
So what happened? First, today’s students recognize that “computational thinking” — problem analysis and decomposition, algorithmic thinking, algorithmic expression, abstraction, modeling, stepwise fault isolation — is central to an increasingly broad array of fields. Programming may be a valuable skill, but the hands-on, inquiry-based way in which one learns to think computationally is priceless.
I agree! The graph reports data from Berkeley, Stanford, and the University of Washington. I was curious if the same thing is happening here at the University of Oregon. Thanks to friendly colleagues, I can make the local graph:
(The axes aren’t quite the same; roughly 4 student credit hours correspond to one student taking one class. The data shown are for “general education” computer science courses, which include introductory lower-division classes.) Again, we see a strong surge of interest in computer science courses, which is fantastic. The increase seems more sudden here than elsewhere; I don’t know what this means.
More broadly, I wonder if anyone has surveyed students, especially from groups or majors that would have been unlikely to be taking computer science courses five years ago, and asked what their motivations for learning to program are. Have they caught on to the aesthetic appeal of coding? Are they betting it will enhance their employability, or their chances for fame and fortunate? Is it simply cool to say that you can program? It would be fascinating to find out. (This is addressed somewhat in the Berkeley post, but it’s not clear whether the explanations are based on actual data.)
If you’re unfamiliar with the quote at the top, from Kraftwerk, listen here:
I originally had the more appropriate, “I program my home computer / Beam myself into the future,” from “Home Computer,” also by Kraftwerk, but it’s not as good a song. I attempted recently to address my paucity of Kraftwerk albums at a local CD store, but learned that someone had come the day before and cleared out the whole stock, from which you can conclude that (i) I am one of the few people left who buy CDs, and (ii) I have an unknown nemesis, who so far is staying one step ahead of me.
I’ve noticed my students usually need to have a real need in order to start programming. Some roadblock to their project success that Excel can no longer surmount. So I was pleased when a former student told me he was finally getting the hang of Perl. What was it that gave him that final push of motivation? He was nostalgic for his youth of re-arranging the letters on storefront signs and decided he needed a script to take in the words and suggest filthy anagrams.. and all of a sudden he is discussing with me hashes of arrays and optimal algorithms for regular expression searches!
As for me, I learned 6502 assembly so my 7th grade dream, “Attack of the Space Cows”, would become a reality!
Interesting! In both these examples, though, the “need” isn’t really a need but rather a realization that there are cool things one can do with programming.
“Attack of the Space Cows” sounds great. As I think I’ve pointed out before, I’m amazed / impressed that you picked assembly language to work with. (I’ve never dared to try it.) These decisions are probably also somewhat random — I spent a lot of time in high school writing programs to make fractals in Pascal, a dead end of a language, just because I somehow had a Pascal compiler and I had some vague idea that Basic (which I knew) was too childish…
I left university two decades ago, so I would be at best speculating as to why the up-tick in CS classes at the university of today. I was a maths major, so the reason I enrolled in an entry-level CS course a quarter of a century ago was to fulfil a distribution requirement. We were instructed in Pascal as well, I presume because it was a compiled language, but one with an approachable human interface (relatively, and unlike, say, COBOL or FORTRAN).
Like Eric, I learnt 6502 assembly in the middle 1980s because my Apple II+ simply could not execute any of the tasks necessary to make music or animate cartoons using BASIC, which had to be interpreted line by line by the processor. Nothing as profound as “Space Cows” – I was trying to get my Apple to play Bruce Springsteen music.
I agree to a point with the blog hose here – the most important thing one gleans in CS courses is not the language (PERL, or Pascal, or FORTRAN is a commodity skill IMHO), but rather, the means by which to approach (and solve) a problem.
I was a grad student at Stanford, and unless the kids have changed, I suspect that a few of them enroll because they see all the money flying around them in the startups, and they see “computers” as an entree into the gravy train.