Skip to main content

Cuts, Closes, and Balances in CS for Spring 2020

Topics/tags: Registration, Grinnell, long

As I’ve written previously, Grinnell deals with registration for returning students in a strange, but somewhat sensible way: We don’t cap the number of students who register for a class, but we do reduce classes to capacity (or slightly above capacity) after students register. The system seems fairer than most I’ve seen, although it does involve some extra work for faculty and the staff of the Registrar’s office.

This year, I thought I’d share the current situation in CS and some of the ways we might approach that situation. We haven’t met yet to discuss our exact strategies, and the enrollment data are public, so it seems acceptable to treat this as a theoretical exercise, albeit one with practical, and sometimes painful, implications.

Where do things stand after the open registration [1,2]? Here are the data I found.

ID Title Meets Capacity Seats Avail. Credits
CSC-105-01 The Digital Age w/lab MWF 2:30 PM - 3:50 PM 24 16 4.00
CSC-151-01 Functional Prob Solving w/lab MWF 8:30 AM - 9:50 AM 24 12 4.00
CSC-151-02 Functional Prob Solving w/lab MWF 10:00 AM - 11:20 AM 24 -8 4.00
CSC-151-03 Functional Prob Solving w/lab MWF 2:30 PM - 3:50 PM 24 -1 4.00
CSC-161-01 Imperative Prblm [4] Solvng w/lab MWF 8:30 AM - 9:50 AM 24 -5 4.00
CSC-161-02 Imperative Prblm Solvng w/lab MWF 1:00 PM - 2:20 PM 24 -15 4.00
CSC-207-01 OO Prob Slvg, Data Struc/Alg MWF 10:00 AM - 11:20 AM 24 12 4.00
CSC-207-02 OO Prob Slvg, Data Struc/Alg MWF 1:00 PM - 2:20 PM 24 -3 4.00
CSC-208-01 Discrete Structures MWF 11:00 AM - 11:50 AM 20 1 4.00
CSC-213-01 Oper Sys/Paral Algor w/lab MWF 10:00 AM - 11:50 AM 24 -6 4.00
CSC-213-02 Oper Sys/Paral Algor w/lab MWF 2:00 PM - 3:50 PM 24 -1 4.00
CSC-261-01 Artificial Intelligence MWF 9:00 AM - 9:50 AM 24 -8 4.00
CSC-301-01 Analysis of Algorithms MWF 8:00 AM - 8:50 AM 20 5 4.00
CSC-301-02 Analysis of Algorithms MWF 1:00 PM - 1:50 PM 20 5 4.00
CSC-324-01 Software Design & Dev w/Lab MWF 10:00 AM - 11:50 AM 16 -9 4.00
CSC-324-02 Software Design & Dev w/Lab MWF 2:00 PM - 3:50 PM 16 -5 4.00
CSC-326-01 Software Dev Leadership w/Lab MWF 11:00 AM - 11:50 AM 6 4 2.00
CSC-326-02 Software Dev Leadership w/Lab MWF 3:00 PM - 3:50 PM 6 4 2.00
CSC-341-01 Auto, Frm Lng, Cmp Cmplxty MWF 9:00 AM - 9:50 AM 20 4 4.00
CSC-395-01 ST: HCI and Programming MWF 1:00 PM - 1:50 PM 20 -3 4.00

At first glance, it may not seem too bad to you. While we have some classes that are over capacity (eleven, if I count correctly), only one has double-digits of over-enrollment and we also have a bunch of courses with open slots (nine, if I count correctly). But let’s look at some details and reflect on how we might deal with the over-enrollment issues.

CSC-105 only has eight students enrolled. That’s certainly enough to warrant offering the class. There are two other reasons I can think of to continue to offer the class [5]. First, since TEC-154, Evolution of Technology, is not being offered this year, the Technology Studies concentration is allowing Tech Studies concentrators to count CSC-105 in its stead. I don’t know if we have any concentrators in the course. However, if we do, we should not eliminate it. Second, if we look at the historical data, CSC-105 grows in enrollment when we offer it annually; it’s a great course, but students need to hear about it from other students.

Two sections of CSC-151 are over-enrolled. But there’s enough space in the other section to accommodate those students. We will balance the sections. I’m pleased to see that six sections of 151 per year, with a bit of over-enrollment in the fall, seems to be meeting current demand.

CSC-161 is a problem. We have twenty more students enrolled than we would typically allow.

What are our options?

Some members of the department [6] would likely allow each section to grow by another ten students. But that’s not necessarily fair to the students. Larger classes mean less personal attention in class, more demand for office hours, and, likely, less feedback on exams and assignments. It’s also a burden on the faculty member teaching those courses [7].

We could cut some large number of students from the course. That seems like a bad idea. Many of the students taking CSC-161 are doing so because they want to continue in the CS major. Unless the College is willing to decide that students may not get the major they want because of space issues, rather than interest or talent, we should not close students out [8]. Arguably, these students could continue their major even if we made them wait until the fall to take the second course. However, that doesn’t feel very good. Are there students other than prospective majors in CSC-161? I hope so. It’s good for students to take more CS. It’s also the case that many students need more CS for their other studies. So cutting seems to be a bad option.

We could cancel another course and add another section of CSC-161. The only course with comparatively low enrollments is CSC-105. And, as I mentioned, not only are eight students generally enough to warrant offering a course, but there are other good reasons to offer this particular course. You might suggest cutting CSC-326, which has low enrollments. However, CSC-326 carries no teaching credit, so cutting those sections has no real effect. I’ll write a bit more on CSC-326 when we get to CSC-324.

When Mike Latham was Dean, he would often suggest that we just hire a graduate student from a nearby institution. But our nearby institutions are not that near; each is about sixty miles away. It’s also pretty clear in our conversations with both UIowa and Iowa State that any grad students they have who are able to teach are already teaching at their home institution.

I could give up the second half of my sabbatical and teach the course (and, presumably, another course or courses) [9]. But I’ve given up too much of my sabbatical in the past. And it’s pretty clear I continue to need sabbatical for my well being. It also means that the College will have to give me the half-semester sabbatical in the near future.

We could try to convince Henry Walker to come back and teach the course. I’m not sure if Henry already has another obligation for the spring. I’m not sure that he’d be willing to spend another semester in Grinnell, rather than with his family. And then there’s the question of how much he should be compensated [10].

We could try to find another faculty member to teach CSC-105, thereby freeing the person teaching 105 to teach a section of CSC-161 [11]. But there aren’t many people on campus who could teach 105 or who would want to teach 105. If I recall correctly, the ones I know of are all on sabbatical this year.

We could try to get someone from Math/Stats to teach CSC-208, freeing someone to teach another section of CSC-161. But Math/Stats is in as bad shape as we are. I’m pretty sure they can’t spare any of the faculty who could teach 208. As importantly, the person teaching 208 this semester has a research project closely tied to the content of the course; it seems unfair to pull them out of the course.

We could ask a faculty member to teach an overload; a sixth course for the year. I know that Math/Stats has made that decision from time to time. But I wouldn’t want to ask an untenured faculty member to take on that extra work (and, in any case, all of our untenured faculty are teaching at least 2.5 courses this spring or are on sabbatical). I also wouldn’t want to ask a senior faculty member to take on extra work. Some might volunteer, but it should be their choice.

I’m interested to see what we’ll decide at Monday’s department meeting. What would you do?

Even if we find someone to teach the course, do we have a space to teach it? Unfortunately, I can’t easily find that information. I know that our classrooms are comparatively full. Oh well, that’s a separate hurdle.

We’ve made it through three courses so far. On to the 200-level courses. We’ll balance the two sections of CSC-207. That’s not ideal for the students who wanted the afternoon section. But they’ll get the same faculty member, and everyone is better off with equivalent size classes. We don’t need to do anything with CSC-208. That’s comforting.

What about CSC-213, Operating Systems, and CSC-261, Artificial Intelligence. CSC-213 is a required course [12], so we don’t want to cut too many students from it, or at least not too many prospective CS majors. While it’s also good to serve people who are not necessarily CS majors, particularly those who might be taking the course for another reason, we do have to prioritize current and prospective CS majors. And it’s a lab-based course. we really do need to cap it at 24. What will we do about the seven extra students? I expect that we will start by cutting students who will have another chance to take the course and who are enrolled in multiple CS courses this semester. That’s a strategy that many of our peers now employ [14]. I know from conversations with other advisors that there are some students who are trying to take three CS courses this semester. I generally discourage that choice, and I expect that, given our limited resources, that’s a cut we’ll naturally make.

Let’s turn to CSC 261. Even though it’s an elective, AI is an increasingly important topic for CS majors [16]. There are even some CS faculty [17] who think Machine Learning should be taught to every undergraduate CS major. I wouldn’t go that far, but I expect that we’ll have some discussions about that issue over the next few years.

There’s only one section, so it’s really the instructor’s choice as to who they will cut. But we usually do the cuts for individual courses in the context of broader cuts. Since it’s a research-heavy, projects-based class, I don’t think we can teach it to more than 24. That means we’ll have to cut eight students. Again, it will be easier to cut non-majors and students taking multiple CS courses who will have another opportunity to take the course. However, 261 is offered every-other year, so there are fewer students who fall into that category. There’s also some benefit to the faculty member in taking younger students, who can then better contribute to summer research projects. In any case, it’s conceptually hard to cut students from AI and it won’t be a fun task.

On the subject of electives, I’m happy to see that the new course on HCI and Programming has solid enrollment. It’s really a cool topic, which I understand to be on the order of let’s apply HCI principles to the design of programming languages. There are three more students in the class than the cap. Is 20 a low cap? Not for a 300-level special-topics course. For the other nineteen courses with a 395 designation, I see only one other with a cap of 20, as well as thirteen with a cap of 15, one with a cap of 14, three with a cap of 12, and one with a cap of 10. As much as I hate to say it, I think cutting three is the right approach, especially since the instructor is in a three-course semester. I’m also starting to wonder whether we should follow the lead of most other departments and cap our special topics courses at 15.

I’m surprised that there are slots in CSC-301, Analysis of Algorithms, and CSC-341, Automata, Formal Languages, and Computational Complexity. Both are required for the major. But both also have a significant math prerequisite. It may be that timing has worked out so that not many students have that prerequisite. It may be that some are considering taking an equivalent course abroad [18].

What’s left? Just our software design courses. A few years ago, when Dean Latham encouraged us to combine our two-credit software design courses into a four-credit course (CSC-324), we made the choice to add an uncompensated extra two-credit course (CSC-326) for students who wanted to do another semester of software design [19]. The two courses are offered at overlapping times, and the students in the two courses work together on projects, so it makes some sense that 326 is uncompensated. The goal is that we have twenty students per section between 324 and 326. A class of twenty students permits four teams of five, which is what I think we’ve decided works well [20]. Where do we stand? We have twenty-seven in one section and twenty-three in another. Do we cut ten students? Do we balance and teach overloads of twenty-five in each section? The latter option is hard, since it means another project to manage in each section. There’s a lot of overhead in adding a project, including finding a client, deciding on an appropriate scope, recruiting an alumni mentor, and more. And, of course, another project requires more support during the semester. So what will we do? I expect that we’ll do some of what we do in other courses: Cut people with multiple CS courses, try to shift some to open slots in Algorithms or Theory, and so on and so forth.

As you may have realized from this narrative, although some parts of the cut, close, and balance process are relatively straightforward, others are complex. And, unfortunately, we are asked to balance faculty wellness and teaching quality with opportunities for students to take the courses they want. A first-come, first-served process, or any other process that stops as soon as a course reaches capacity, would eliminate the need for us to explicitly consider that balance. But I don’t think the end result would be nearly as good as what we have now.

A take all comers solution would be another approach, but I think it would be equally bad. Adding to faculty workload and stress would reduce the quality of instruction, as would the higher student/faculty ratio. Larger classes might also lead to faculty burnout, or at least feelings of inequity. In the long run, it would make it harder to recruit and retain talented faculty. It’s not worth it.

I don’t like the stress of making the cut, close, and balance decisions, but I think Grinnell’s registration strategy is one of the better approaches out there.


Postscript: When the department meets to discuss these issues, we bring in a variety of other sources of information. We have enrollment lists for each class in the department, which makes it easier to identify students enrolling in multiple classes and the likely major of the student. Advisors usually bring in some contextual information, such as the students’ four-year plans or knowledge about plans. We also often have information about students who are not our advisees.


[1] Formerly preregistration.

[2] Since open curriculum has evolved to individually advised curriculum [3], I wonder if open registration will soon evolve to individually advised registration.

[3] Or individually advised learning, now that our marketing consultants got a hold of it.

[4] Why do we abbreviate Problem as Prob in two courses and as Prblm in a third? I have no idea. But we should probably replace Prblm Solvng with Prob Solving in CSC 161.

[5] Other than Let’s not screw with the students who enrolled.

[6] Including me.

[7] Teaching especially large classes has been debated as a criterion for getting higher scores on the teaching category in the salary rubric. If I recall correctly, some faculty objected that they do not have the opportunity to teach larger classes. Nonetheless, large classes are a burden and that burden should be acknowledged in some way.

[8] I mention this approach, in part, because at least one higher-ranked peer essentially tells students If you’re not lucky enough to get introductory CS in your first year, you won’t be able to be a CS major.

[9] Don’t worry family, I’m not really planning that as an option. I’m just trying to suggest some of the things that we consider.

[10] Fortunately, that’s a question for the Dean, not for us.

[11] You may wonder why I don’t say We could find another faculty member to teach 161. It’s more likely that we could find someone to teach 105 than 161.

[12] More precisely, students need to take either CSC-213 or CSC-211. But we filled both sections of CSC-211 in the fall and, if I recall, had to cut a few.

[14] In fact, at least one higher-ranked peer [15] has hard limits on the number of CS courses majors can take and those limits are pretty close to a minimal major. We’ve done our best to avoid being at that point.

[15] Not the same one I mentioned in the prior end note.

[16] It’s always been a somewhat important area. But it’s becoming essential. And it’s certainly evolved significantly from when I took it.

[17] Although not any I’ve heard from at Grinnell.

[18] We allow students to take one required upper-level course abroad, as well as one elective. CSC 301 and CSC 341 are the most common candidates for the required upper-level course.

[19] An extra semester of software design was one of the strategies we had suggested as our department’s mechanism for ensuring that every student had an opportunity to do research.

[20] It may be five teams of four. I’m currently out of the loop. But what I recall is that our hope was that we’d have one team leader from CSC-326 in each group and then four team members from CSC-324.


Version 1.0 of 2019-11-17.