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.

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

  1. I don’t work in CS, teach or study but I work with folks in the field on daily basis. If I had to do it all over again knowing where I would end up I probably would have taken at last one CS course, an intro couse, to give me some sort of introduction into the CS world that I could apply today in my daily work. I would not have majored in CS as I am happy with what I did major in but I wonder if CS intro courses are starting to be looked at by new students similarly to courses in other disciplines (psych, soc, bio, etc); classes that not only satisfy a credit need but are used to help a student determine what they want their major to be and to help them broaden their horizons and achieve a true liberal arts education that will help them in the workforce later, no matter what their field of work. I never considered taking a CS course many years ago because I didn’t realize at the time how important it may be to help me in the future.

    Like

  2. Lesley, you make an excellent point—I think intro CS is becoming one of those classes that you “should” take before you graduate—and I hear this sentiment from a lot more of my students as time goes on. Interestingly, I often hear from seniors that take intro CS that they wished they would have taken it sooner so that they could have taken more courses. I’m still not sure, though, why this excitement is not translating into new majors for us…

    Like

Comments are closed.