Archive for August 6, 2009

Cramming the first semester until the students burst

For several days now, I’ve been thinking about this comment made to my blog post last weekend:

“But a computer scientist or software engineer needs to know much, much more. A suitable introduction for a CS major is very different than for someone who just wants to learn some stuff about computing.”

I believe that’s common among faculty–the conviction that they have to cram so much into the first semester that students burst.  I just don’t understand why.  Is every semester so full of material in a four year Computer Science program that the first semester has to be just as chock full?  Or do we believe that the first semester has to be especially over-full?  Enrollments are plummeting, so we don’t have the luxury of using CS1 as a weed-out course, to force out all students who don’t deserve to be computer scientists–a claim I’ve heard too often.  (BTW, I believe in the UCLA HERI data — the uptick in enrollment this year is a statistical aberration. There’s no change in frosh attitudes about CS, and enrollments will continue to decline.) With failure rates nearing 50% at many institutions for CS1, there is every reason in the world to push off some of the complexity and content for later semesters, when students have more experience to deal with it, rather than cramming so much into the first semester.

I build into my Media Computation workshops several discussion periods.  Today’s discussion was on whether Media Computation has much to offer the participants’ school’s intro courses.  Today’s discussion was no different from others, but maybe it’s that I’ve done this three times in two weeks that it made more of an impact on me.

Faculty in the room said that they saw a lot of use for Media Computation Python in CS0, in the first course for non-majors, but not in CS1.  For those who would want to use some form of Media Computation in CS1, there were plans to use “part of it,” or “some of the classes,” and especially, “in addition to our traditional text, like Lewis and Loftus.”  I’m glad that they’re willing to use any of the material at all, but I was curious. I (as facilitator, trying hard not to inflict my opinions) asked “why?”  (Below are paraphrased answers, of course — I didn’t jot down exact quotes, and not all comments are from just today.)

  • “I’m not convinced that we’d get to all of the concepts that we want students to learn in CS1, like design.”
  • “We want students to learn the standard Java libraries, and Media Computation doesn’t touch on all of them.”
  • “It’s important to learn good coding style and all the right programming habits.”

If we really believe that computer science is not about programming, why do we make decisions about whether students should pass introductory computing dependent on whether students learn libraries and coding style?

Then one of my participants asked the question that I wanted to ask, but felt that I couldn’t as facilitator.  “Why do all of you think that Python is good for CS0, but not for CS1?  Why do you have to use Java in CS1?”  The answer about Python was consistent — Python was easier and made it easier to focus on the “concepts” rather than on “coding.” The answers about Java were also quite honest, though distressing: “There’s such a critical mass behind Java” and “Everyone else does it that way” and “We want students to be able to transfer their credit.” No one offered a pedagogical answer.  No one could say why Java helped students learn anything in particular.  Instead, the answers were that the herd had decided, and all the CS departments represented were going to follow the pack.

I’ve just completed my second textbook in Java, and I’ve ended up with a much more positive attitude about Java than I had years ago.  So it’s not Java per se that bothers me about these answers.  It’s the lack of rationality for the overloading of CS1, the reliance on herd mentality, and the assumption that CS1 has to be an awful experience.  Maybe it was bad for us, but is that a good reason to make it bad for our students?  When enrollments are growing and our major is in great demand, there is room to be sloppy in our reasoning for what we’re doing.  With failure rates rising and student interest falling, we need to question what we’re doing.  It makes no sense to cram so many demands on CS1 students, no matter what their major.

August 6, 2009 at 7:46 pm 21 comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,186 other subscribers


Recent Posts

Blog Stats

  • 2,060,645 hits
August 2009

CS Teaching Tips