Pre-registration for spring 2019 courses concluded earlier this week. This time around, we faced a real crisis: CS 210, Computer Systems Fundamentals, closed with the end of pre-registration for the junior class, leaving a waitlist of 23 second-years and 2 first-year students. CS 210 is supposed to be a second-year class, open also to first-year students with advanced placement.
How did this happen? Pre-registration at Whitman is by class year, with all seniors registering before all juniors, and so on. The Registrar allows instructors and departments to reserve seats for particular class years. For example, in the spring sections of CS 167, we allow 5 seats for seniors, 5 for juniors, 10 for second-years, and 10 for first-years. We set this policy to ensure that potential CS majors and minors have access to CS 167, while still allowing a few upper-class students into the course.
With no class year reservations in CS 210, nothing prevented seniors and juniors from taking all the seats. The roster included 4 senior CS majors who had been permitted to take CS 310, Computer Systems Programming, without the 210 prerequisite, due to sequencing problems with building up the curriculum. It included 7 junior majors who had started taking CS courses in their second year. It included 2 second-year majors who were granted consent before I realized the scope of the problem. And it included 15 junior and senior non-majors – a couple of juniors pursuing 3-2 computer science (the last class for which it is an option), a couple of declared minors, but mostly students who’ve made no declarations of their intentions.
We faced a similar problem with CS 220, Discrete Mathematics and Functional Programming, last time around. For next year, at least, our policy will be to reserve all seats in CS 210 and 220 for second-year students, so that juniors and seniors must request consent to enroll. This is far from ideal, as intermediate-level courses should be open to non-majors, but our first priority must be graduating majors. In the longer term, this will become part of our case for an additional tenure line in CS.
The problem was apparent on Tuesday, after second-year students had registered but before first-year registration. The department met to discuss our options and to examine our rosters and waitlists to see if a resolution was possible by placing second-year students into other classes (it was not).
The Dean was not available for a meeting this week due to the Board of Trustees meeting. So I composed an email laying out the following options:
1. Our preferred solution is to create a second section of CS 210 this spring. This is the best solution for students. It’s good for student learning, since sections will remain near their enrollment caps and pedagogy will not need to change. It means that sophomore CS majors will be able to take a CS course this spring, so they will not need to redo their four-year plans.
However, adding a second section this spring means that one of us will teach an overload. Since I am teaching the existing section of CS 210 and I have the lowest teaching load of the CS faculty this spring (my load is 2.5 while Rohan and John have 3), I’m the logical one to teach this second section. I would require compensation for the overload and student wages for a second class mentor.
2. Our first alternative is for John to offer a new section of CS 210 this fall. It would be a repeat prep for him and he is willing to teach it. This solution is good for student learning in this class, though it means many sophomore majors will not have a CS class this spring. This will make them unhappy, and most will have to redo their four-year plans.
John is scheduled to teach CS 167 this spring, and we would want to find someone else to teach his section. That might mean an overload for Rohan if he is willing to teach both sections, or we might see if Albert is available to teach CS 167 again, or we might try to hire Robin Greene from WWCC again.
3. Our least preferred alternative is to move the existing section of CS 210 to a larger classroom and enroll students off the waitlist. We have not yet ascertained exactly which students have no other CS course options, but we estimate the section would grow to at least 40 and perhaps 50 or more. This is the worst solution for student learning.
However, this has been a common solution in the sciences, and it is the most resource-efficient solution. I would want student wages for several more class mentors, a stipend for me and John to work on automated grading for the course, and ideally some additional compensation for additional grading and office hours.
Doing nothing is not an acceptable option. If we do nothing, then most of our sophomore CS majors will not have a CS course to take this spring and will not be eligible to take CS 310 in the fall. We will also face the same problem in Spring 2020, since these sophomores will then be juniors who still need to take CS 210 to complete major requirements.
While I was composing this email, I had panicked students at my door asking for consent and a call from the Registrar asking what would be done. I had already received seven emails from other students. I sent this email just before a meeting, and fortunately, Dean Tipton had agreed to allow the overload before by the time I got back to my desk. Although there were still some details to work out, we had added CS 210-B to the course schedule by 2 pm Wednesday, and two students had enrolled before I even announced it to our students.
I’m not happy about teaching an overload. This is not a good time in my life for it, not with a small child at home and my goals of leaving work by 5 pm and minimizing work on weekends. I offered because it’s the right thing to do for the program and for our students.
I will be fairly compensated, which helps. Alzada also agreed to a stipend for John to help me improve test cases for 210 assignments, which should alleviate some of the grading workload.
As I was starting to compose this blog post, a student stopped by to thank me for opening the second section. I asked her to thank me again this time next semester, because then I will really need it.
With that story told, how did we fare overall? Here are the current numbers:
|CS 167-A,-B||Intro. Computational Problem Solving||60/60||5:7||4|
|CS 200||ST: Machine Learning||32/24||1:9||16|
|CS 210-A,-B||Computer Systems Fundamentals||59/48||1:3|
|CS 270||Data Structures||24/24||1:2||5|
|CS 317||Software Performance Optimization||13/20||1:6|
|CS 327||Algorithm Design & Analysis||20/20||1:4||7|
|CS 495||Capstone Project||17/16||1:7|
We hope to retain Rohan Loveland for next year. It had been up in the air what he would teach for an elective, but with such a long waitlist we agreed it makes sense for him to teach Machine Learning again.