Bumps in the teaching road

Readers may recall that this past winter, I experimented with a new (to me) way of teaching Intro CS, using case studies. The experiment was such a success that I decided to try it again this term in my Intro CS class.

My experience this term has been totally different.

My big assessment tool for student comprehension is my weekly quizzes.  I give quizzes instead of exams in Intro, and have done so for years, for a few reasons.  First, it allows me to pinpoint much earlier the students who are struggling, and (theoretically) get them help earlier.  Second, it drives home the point that learning CS requires you to continually keep on top of things and to continually practice what you’ve learned.  Quizzes (theoretically) force the students to keep up with the readings and with studying the concepts.

Quiz grades this term are at an all-time low.  In fact, I just finished grading the latest batch and they were so horrible that I just want to burn the whole pile right now.

I am trying to figure out what makes this section different from last term’s section.  Is it spring-term-itis?  Is it the fact that last term, my class was almost exclusively juniors and seniors, whereas this term it’s almost exclusively freshmen and sophomores?

Are they not taking the quizzes seriously?  (even though they are 40% of the grade!)  Or are they just studying wrong?

Am I teaching them differently?

I went back and looked at the quiz topics page I posted on Moodle for this week’s quiz, just to make sure I didn’t inadvertently leave something off of the list.  Every single question I asked on the quiz was listed on the page.  “Know how to use split() on a string”:  check.  “Iterate through a list and operate on each item”:  check.  etc.  And the kicker is that every single problem on the quiz is something that they did multiple times, either in class or on the homework, or both.

Clearly there is a disconnect here.  So how do you deal with a class that’s underperforming relative to your expectations?

Tomorrow I plan on going in to class and having them do “one-minute papers” on their quiz study habits.  I’m curious to see if the latest free-fall of quiz scores is a time management thing or a conceptual thing, or if there’s a lingering perception that “quiz” = “easy grade”.  And if nothing else, perhaps having them reflect on their study habits might trigger some of them to crack down a bit harder on the studying.

But I’ll also spend some time reflecting on my own teaching, to see if there’s something I should be doing that I’m not doing that will help them master the concepts and skills they need to pass the course.

Hopefully this is just a speed bump and not a mountain!

The state of computer science: Languages, enrollments, and what the heck should we be doing in the intro courses?

I’ve been thinking a lot lately about a few things that, at first glance, don’t necessarily seem related:

  1. Our enrollments in three of our intro courses—111, 201, and 204 (that’s intro, Data Structures, and Software Design, for those of you playing at home)—have gone crazy high lately.
  2. Our number of majors, by contrast, actually decreased slightly this year, although it’s certainly within the range of “normal and healthy” for us.*
  3. We’ve been talking as a department about assessment, and more generally that’s led to discussions on what we expect of our majors and students, what our majors expect of us, and what we mean by “proficiency” in computer science, programming languages, etc.

Specifically, with #3, we’ve been discussing the perception and/or reality (partly on our students’ part, partly on our observations of our seniors and how they choose to do their Comps projects) that our majors are not prepared well enough to pick up and master new languages—that our mostly-Python-most-of-the-time philosophy might be hindering our students’ ability/confidence to learn and try out languages like Java and C++, which are more “employable”.  And that perhaps the solution is to make sure that by the time our students finish 111, 201, and 204, they see and learn 2 different languages.

But at the same time, #1 and #2 may be indicators that our role as a discipline is changing—we have record numbers of students, but not record numbers of majors.  For instance, I have a record number 37 students in 201 this term, which has long been considered our gateway course to the major, but somewhere between 1/3 and 1/2 of them have no intention of becoming CS majors.

All this has led to me mulling over three questions:

  1. Is CS becoming a service discipline?
  2. If so, what are our responsibilities to our majors and our students?  Do we focus on preparing the majors only in the intro courses, or should we acknowledge the changing demographics in our curriculum?
  3. What role does language choice play here?  Should our goal in the intro courses be proficiency in a single language, or should exposure to multiple languages take precedence?  Are non-majors taking our intro courses for language proficiency, and if so, will they go away if we switch languages?

In the next few posts, I’ll tackle each of these questions in turn.  I’m also thinking of polling my 201 class on Friday to see what they think about #3–particularly the non-majors, and will report back as I do so.

For those of you reading that are working in CS, or teaching CS, or studying CS:  what are  your thoughts on these questions?  What do you think the role of an intro course should be, either in preparing majors or non-majors or both?  Should CS act like it’s a service discipline—and does this change anything about the way we approach teaching and learning CS?

* Maddeningly, our gender ratio is sucky sucky sucky—only 1 woman out of 15 declared majors.  This warrants its own book rant post—at another time.