Professor Questions Sink-Or-Swim Intro To CS Courses
theodp writes "After having taught introductory programming (CS 1) for the past six years,' writes GVSU's Zack Kurmas, 'and having watched many students struggle through this course and the subsequent course (CS 2), I have come to the conclusion that it is absurd to expect students who don't have any prior programming experience to be well prepared to study Computer Science after a single 15-week course (i.e., CS 1). I believe that expecting a student to learn to program well enough to study Computer Science in a single 15-week course is almost as absurd as expecting a student with no instrumental musical experience to be ready to join the university orchestra after 15 weeks.' Kurmas' frustrations are not unlike those voiced by Physics professor Dr. Yung Tae Kim, who argues the up-or-out, one-size-fits-all rigid pace approach to learning set by teachers and administrators is as absurd as telling a toddler, 'You have ten weeks to walk, and if you can't, you get an F and you're not allowed to try to walk anymore."
I can speak only for Germany but during my studies I noticed quite a number of students which had no background (beside having played computer games all day in earlier days), had absolutely no talent (everyone can learn how to program, but most people won't become good at it), no clue and struggled a lot. Yet most of them made it through the finals, have now a B.Sc. and compete with people who really know the shit on the job market, negatively influencing hourly rates and reputation of IT. In my professional life so far I had to work with many many idiots who nethertheless had a degree.
So I believe I disagree with this professor. Yes, not everyone might be willing to achieve the results in that time frame. But I honestly believe that most people who don't deserve to be there in the first place. Either you have what it takes or you don't. As said: You can train nearly everything, but training does not make you good. Programming is very often a task which included creativity (figuring out how to solve a problem in the best way) and if you don't have that ability, you will produce bad results. It's as simple as that.
Don't make IT/CS easier. Make it harder, please.
I'm not sure that I really agree with the Professor's foundational analogy between studying programming and playing orchestral music. I'll explain why.
The students who played in the university orchestra back when I was at university were phenomenally good. Many of them played professionally or intended to. That is where the analogy with computer programming becomes strained. There is no room, in professional music, for someone who is not very good, or just learning, or who lacks experience. The musicians who play in orchestras at anything approaching a high level have a degree of musical ability that I find absolutely astounding; the difference between a very good hobbyist musician and a professional or semi-professional is like night and day. That ability is normally the result of spending 30 hours or more a week, every week, practising or learning under the tuition of an excellent player for 15 or more years. And the competition is such that that is effectively the minimum level of ability required to play in a good orchestra. Many of the musicians will be far better and far more experienced than that.
In contrast, programming is a career in which a person can grow on-the-job not only from "excellent" to "phenomenal" but from "not particularly good, but promising", to "good", and then on to "excellent" and "phenomenal" after another 10 or 20 years. There are plenty of roles for people who can code slowly but proficiently, especially if they have the potential to get better. Comparing those students to others in a far more competitive area just is not helpful - one could equally compare computer science students with lawyers being sponsored through college by White-Shoe firms. Of course the computer scientists will, on average, be less developed, less well-rounded, even less competent. But it's not a useful comparison.
I don't know what approach the Professor's university takes but I did not, when I was studying, encounter a sink-or-swim approach to computer science coding. That approach, it seems to me, crops up when the expectation is that computer scientists, on completing the course, will have a level of competence beyond what is reasonable - an expectation that is encouraged by making unreasonable comparisons. On the other hand there were, as the Professor notes, a good number of people dropping out or changing course. I would ascribe that, rather than to a course that makes unreasonable demands, to a factor that he notes - computer science is not taught at schools. It is one of a number of courses that students choose without really knowing what it will involve. I suspect that in all those subjects there is a high initial drop-out rate as students realise that the course is not what they had expected, or is not for them, or simply that a particular aspect is more interesting and that they would prefer to specialise in, for example, mathematics.
Thisthisthisthis!
I tutored programming when I was an undergrad. They call those "weed out courses" for a reason. Some folks are just not capable of CS. I had to tutor one kid who could not understand arguments and function calls. I spent over an hour trying to explain it to him with five different analogies and sketches on a chalk board and lots of emphatic hand-gestures, and yet he had absolutely no clue how to read
int multiply(int x, int y)
{
return x * y;
}
Some people just don't cut it, even as code monkeys. And universities shouldn't be flooding the job market by giving idiots a degree.
:(){