My Annual Scheduling Adventure

 Like every year for the past five, May brings the joys of Scheduling. I get to work with the school’s Registrar, and together we sift through all the course requests and teacher assignments and concoct a schedule for next year that is acceptable to parents, students, teachers, and the administration. For a variety of reasons, the process takes a week or more, and can result in more than a few sleepless nights for all involved.

This year started with a bit of a twist: the woman I’ve worked for the past five Mays announced that she would be retiring at the end of the school year. With those simple words, my world was thrown into a tizzy, because an obvious next announcement could very easily be “And Mr. I will be taking over her duties as Registrar.” That would not have gone over well; I like teaching, and I will fight anyone who decides I’d be better elsewhere.

Fortunately, a quick word with the school President put that fear to rest; the school would be hiring a new Registrar. In fact, in all likelihood I would continue to work with the new Registrar on scheduling, unless s/he decides I’m not needed. This meant that this year I’d better take on the role of the Chief Scheduler, and not just the Registrar’s Assistant.

The normal process of scheduling actually begins in March, when the students of the school go through the course selection process. Working with their Guidance Counselors, they pick and choose from the menu of available courses, aiming to fulfill their graduation requirements and take electives that match their interests. In mid-April, the school sends out the Letters of Intent to the teachers, or invitations to return next year. (Yes, on rare occasions, the Letters of Intent could more properly be called Letters of No Thanks.) My peers and I have a few days to respond with “Yes, I’d like to return” or “No, I’m moving on.” This information would be combined with the student course selections by the administration to figure out how many sections of each class are needed next year, and the Department Chairs would then decide which of their teachers would be in each section. By mid-May these issues are ironed out, and Scheduling can begin in earnest. A week or two of effort later, and the students have their new schedules in hand by the first week of June. That’s how things have run in the past, anyway.

This year, the Letters of Intent were several days late in coming. This lead to the return letters being a week behind (we had Spring Break during that time), and the delays just kept cascading. When all was said and done, we started the process the day before Memorial Day weekend, roughly two weeks later than usual, or about the time we typically target for completion.

I mentioned that the process can take a week or more; this is much longer than most schools, because we take a different approach to scheduling. Most schools employ what’s called Arena Scheduling, which means that a schedule is created based primarily on what the teachers want to teach. The school administration decides on how many sections of each course there should be, based on projected enrollments, and teachers are assigned to those sections. Once everything is finalized, the schedule is opened up to the students, who then build their personal class list from the menu available. If a student can’t make their desired classes fit into the published schedule, or if a class is not available in the semester that they need it, they are out of luck. Their only hope would be to swap out one or more other courses until they can make things fit.

At my school, the administration takes a different view of scheduling. Working with their Guidance Counselors, the students pick the courses they want. The counselors help assure that the students meet all prerequisites, and that they are not overloading their courses to the point of failure. Once all course selections are made, it is up to the school to find a way to make a schedule that will meet most if not all of these desires. It means a great deal of work for us, but a lot more success for the students.

Anyway, the Friday before Memorial Day weekend we loaded the 7,738 course requests made by 859 students from a list of 122 courses (with anywhere from 1 to 10 sections apiece, for a total of 416 sections) taught by 68 teachers in 7 periods and 2 semesters into the school’s database system. I also loaded much of the same data into a number of applications that I’ve developed over the past few years to facilitate the process.

Ah, yes, the process. As I said, the goal is to get as many course successes for the students. What this means is that we to try to arrange the courses (all 416 sections of them) in such a way so that as to get as few schedule conflicts as possible. To achieve this result, we start with the courses that have only 1 section apiece (“singletons” in our vernacular). We place each of them in the blank schedule grid so that no student taking Singleton “A”, who is also taking Singleton “B”, finds a conflict because “A” and “B” are in the same time slot. When this is done, we move to the “doubletons”, then “tripletons”, etc., all the way up to the courses with 10 or more sections (we don’t have a word for that, I’m afraid). Doing things in this order means that we have the greatest chance of getting the least conflicts. The downside is that when we get to the last courses (the ones with the most number of sections apiece), we have the hardest time shoe-horning them into place with fairly even enrollments. When the last course is placed, the schedules of all the students are essentially set, and there’s not much room for adjustments. So if one section of the last course has only 3 students and another has 57, we have little recourse but to “unwind” the schedule a dozen or two courses and try a different pattern. (Yes, backups are a critical way of life for us.)

Extreme variations in enrollment is where we found ourselves last Friday, one week into the process. When the last course was placed, we had wild swings in enrollments in a number of courses, and no options appeared open to us. So Sunday afternoon, shortly after graduation ceremonies for the seniors, the Registrar and I sat down and began a long process of restoring from a very early checkpoint (about 25% through the process) and trying again. Fortunately we were able to “fly” through the task, because several of the key decisions that we agonized over during the week (such as seeing the effects of poor choices, and the resulting unwinding and correcting of those choices) followed the same paths. We worked from about 4pm until after 11, and got to within the last four courses when we called it quits because vision was going cross-eyed. Monday morning, things went remarkably well for us, and by noon we were done. In fact, the schedule looked a whole lot better once completed than it was looking the evening before.

A thorough walk-through followed, checking every enrollment in every section, searching for hidden dangers in the tall grass. Fortunately, we didn’t find any. In the end, only about a dozen students couldn’t get everything they wanted. (Typically this is where the guidance counselor calls the student in to say “you have a conflict, you can’t take AP English and underwater basket weaving,” and the student inevitably drops the lesser course.) We threw the schedule up to the administration, and with their approval the students had their schedules delivered this morning.

Next year, things will be different. All I know today is that I can’t imagine how different they will be.


About Mr. I

After 17 years as a PC Software Engineer I gave it all up in 2000 to become a High School Computer Teacher
This entry was posted in Programming. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s