Students find programming distasteful
12:36 PM PDT, September 17, 2006
One of the common explanations for the falling enrollment in CS, among women in particular, is programming. The frequently repeated story is that students think that computer science is only about programming, and they dont like programming, so they dont enroll in computer science. Ive had a couple of experiences over the last few months that demonstrated to me just how much students dislike programming, at a deeper level than I had expected.
The first story is the experience in Computational Freakonomics that I've described in this blog. As I mentioned, on the first day of the course, I handed out a set of course notes that I had written which included example Python programs for doing a variety of analyses. Panic swept over the students. I heard later from the program director that several students went to see her about dropping out of the course because of the programming component. Because it was a study abroad course, students couldnt drop. At the end of the course, I asked the students what they thought of the course on an anonymous survey, and the feedback was strongly positive--even on the programming.
The second story is from the last month, at the start of our Fall semester. Mike Schatz in the Georgia Tech Physics department has decided to trial a new kind of Introductory Physics approach, developed by Bruce Sherwood and Ruth Chabay of North Carolina State University. The new approach makes physics more concrete by using computation for modeling, simulations, and problem-solving. Students can make, for example, 3-D graphical objects attached to springs, then measure the behavior. Bruce and Ruth recommend VPython, which is what Mike is using. Mike and I have been communicating about how we can work together, between CS and Physics, to draw connections between our classes.
Mike is running a trial section of 140 students. The day that he introduced the programming aspect, a dozen students applied to drop the course. Note that: nearly 10% of the enrollment. They had to talk to Mike to drop, because of the trial nature of the section, and the common reason was that they didnt want to do any programming in Physics.
Now, I can understand the students who wanted to drop Computational Freakonomics. Students have different expectations of a study abroad course than they do of an on-campus course, and programming clearly wasnt part of those expectations. But Introductory Physics is a required course for nearly everyone at Georgia Tech. If the trial goes well, they will use this approach for all sections of Physics at Georgia Tech. Students dislike programming so much that they are dropping a required course I guess in the hope that the trial goes badly and that theres some future chance of taking physics without a programming component.
Where does this dislike of programming come from? This isnt about not liking programming as a job choice --this isnt about avoiding facing a cubicle engaged in long, asocial hours hacking. This is about using programming as a useful tool in a non-CS course. Its unlikely that most of the students in the Physics class have even had any programming, and yet theyre willing to drop a required course to avoid it.
This fear of programming may have greater economic impacts than even the decline in enrollment of computer scientists. There is a growing community of non-CS professionals who do program. Some estimates claim that there are four times as many non-CS-trained programmers than there are professional developers. We just presented a paper at the ACM SIGCSE International Computing Education Research workshop listing some of the reasons why graphics professionals start programming---to make complex activities more manageable, to save time, to create custom image effects. In other words, they program, without a CS degree, in order to make their jobs easier and to improve their productivity. How many more people might try some end-user programming, if they werent so frightened off by it? How much productivity are we losing in our economy because of the dislike of programming?
The challenge of increasing enrollment in computer science and broadening participation has many facets. One of those that have been identified in the past is students dislike of programming. Until the last few months, I wouldnt have guessed just how deep that dislike is.
Initial post:
Oct 6, 2007 2:58 PM PDT
Michael Langford says:
I've known admin assistants that spent something like 20% of their time doing things that we're a 3-10 line python program or 4 unix commands. Something that small, and that trivial should be available to people, like basic algebra is. I know my wife (studied neuroscience at school and no programming; does direct mail marketing for a living) picked up a *very* minor amount of VBA and was able to completely automate a rigorous check she was responsible for 20 times a week or so. If they would have got one wrong they'd have lost $5k per item.
I'd like to see a real, light weight online course for office workers, excel jockies, and high schoolers that helps them solve the real problems they have at work/school. Something that could gain a cachet, perhaps tagged onto something popular like blogging/facebook/flikr/IM/SMS/etc. Perhaps a light python course where out of an interpreter that's built into a GUI (yes, stupid step, but required for many people) people can interact with things they really do know in real life that they could then automate to do something awesome for them. --Michael Langford
Posted on
Oct 6, 2007 8:53 PM PDT
Jane Lee says:
Personally, I don't have any problem with the programming aspect of CS. The only thing I absolutely hate is the outdated/inappropriate curricula combined with the wrong attitude..or that's what I think. In fact, I think it applies to more than just CS. But that's just the point of view of a sophomore in college majoring in this. :p I've learned way more by myself than I probably ever will in classes. I hate classes. I love programming, I love learning theory, I love applying all that in the stuff I do, but the classes are insanely boring, even if it's something I've never encountered before. Plus I don't want to be forced into using only one language I don't like and that I think doesn't "fit" well with the problem, which is usually the case... Maybe I'm just naive and fail to see more into this issue being a student and not an educator, but I understand it's an issue (particularly the women aspect..usually being one of the only ones in most related classes) and that something needs to be done about it.
It's that we have to slog through a ton of material in all sorts of classes that are required for graduation, but none of us really get why it's so critical that we can't graduate without it (e.g. physics and calc at many universities). They don't tie together well and there isn't much on real world application, and as a result people become disillusioned. If they wanted to take so many engineering-related classes, they would have majored that way, EE, CE, you get the idea. I for one have yet to come across any application of physics to CS. I'm still waiting :\ My non CS friends would freak out at the mention of any programming and absolutely refuse to learn, claiming complete ignorance. But if you showed them how to mess around with their Myspace/blog pages with a bit of CSS or PHP or Javascript or HTML, they can't get enough. Likewise, most of my classmates love to work on solving problems by whipping up little scripts and full blown apps to help them, but they think the classwork is absolutely worthless. I don't think people find it distasteful. I think most would find it useful and invaluable if they just got over their initial fear/skepticism and learned programming applicable to what they're doing. It's not something people are entirely new to..maybe the syntax, but nothing else. It just has to be interesting, and many CS programs just aren't that interesting.
Posted on
Oct 7, 2007 1:28 PM PDT
Mark Damon Hughes says:
I don't believe this is a long-term problem, but a quirk of the intersection of three events: the "millennial" kids reaching college, Y2K and the dot-com crash, and the operating systems available when they were young.
A majority of "millennials" are self-centered and undisciplined to a degree that makes Paris Hilton look stable. They were spoiled rotten, praised constantly regardless of performance, consider cheating to just be "good teamwork" (ignoring the educational lesson they're supposed to get), and now expect that everything in life will be easy and they will be superstars, without any hard work. This isn't a novel observation. See the recent Navy powerpoint slides about the difficulties of recruiting them. They are, in a word, feckless. Programming requires a certain amount of feck. They also grew up during the Y2K scare and the dot-com crash. To them, computing is an uncertain field, and the facts of the economic recovery aren't enough to overcome their emotional reaction. It may be that there's a 10-year gap in programmer ages because of this. Finally, most of them didn't have computers with a built-in, interesting programming language when they were kids, and still don't. Those who get Macs have <a href="http://www.apple.com/macosx/fe
‹ Previous 1 Next ›
|
Bio
I started teaching computing in February 1980. I was 17 in my senior year of high school, and I taught "Bits, Bytes, and Basic" in a community education class. I taught through my undergrad years--community education, afterschool classes, GED classes, and even community college in 1984. I read "Personal Dynamic Media" by Adele Goldberg and Alan Kay while on an internship at Bell Labs in 1982. I'd never before thought about computing FOR learning (as opposed to learning ABOUT computing). Adele and Alan's thoughts and words set me on the road to my PhD in Education and Computer Science at the University of Michigan in 1993. Nowadays, I focus on using lessons from learning sciences and educational technology for teaching about computing.
|
|
| ||
| ||
| ||
| ||