At the end of each summer, every member of the Blind Brook community receives their schedule for the upcoming school year. Because there are hundreds of students and teachers, building these schedules is incredibly complicated, and many do not realize how much work goes into this process. In order to make this easier, our AP Computer Science teacher, Mr. McCarvill, has been working on a program to assist with schedule building. He started working on this code in the Spring of 2018, and it has been used for the past two years to help create our schedules. Mr. McCarvill has not been working on this alone, and has been assisted by several AP Computer Science students throughout this process!
So what exactly does this program do? According to McCarvil, “The code can be complex, but the concept of what the program does is not. Building the schedule simply means deciding what periods to schedule courses in to. The program now does many things, but its primary use is helping us decide what periods to schedule a specific course in.” He went on to describe that for each class, the program computes which periods have the most conflicts. A conflict is a student that signed up for the class but has another class at the same time. The periods with the least conflicts are the ones that are then put into the master schedule of all of the classes for the upcoming year. This year, McCarvill says he has been “improving the program by adding information to the output regarding what we call ‘meshing’. ‘Meshing’ refers to scheduling lab courses and half-credit courses so that they fill two halves of the same period.” This will save a student space in their schedule and reduce conflicts with other classes, so it is a vital aspect of the program. There are a lot of minor aspects to the code that are similar to “meshing” that McCarvill and other students have worked on over the years. It is important to note that this program, as of right now, is only responsible for making the master schedule of all of the classes, and does not make the individual schedules of each student. When referring to past attempts by AP Computer Science students, McCarvill said, “Others have been more ambitious, attempting to actually create student schedules, which is not something our current program does.” Clearly, creating each student’s schedule is a goal of some AP students, but this has not been accomplished just yet.
Johnny Ramirez is a current junior and AP Computer Science student who has helped McCarvill with many different aspects of the program throughout this year. When referring to a specific algorithm that Ramirez worked on, he said “McCarvill and I decided to write the same algorithm separately and then compare results to see if we matched. It took several trial and errors for us to finally get our outputs to match.” This is an interesting approach which proved to be quite successful in helping find errors in the program. A main aspect of this coding in general is problem solving, and this was just one way that McCarvill and Johnny “problem solved” while working on this program. Johnny talked about some of these other problems that arose, and described how efficiency would be an issue for some algorithms that they coded. He even said, “ It would take forever for the computer to compute through all of the permutations. We are trying a couple of alternative methods that run faster.” This issue has not been solved quite yet, but they clearly are working through it at the moment. On the other hand, there was a large issue that Johnny was able to solve completely! Prior to Johnny’s work, if there was a conflict in a student’s schedule, the guidance counselor would have to ask the student what they want to take instead, tell McCarvill this, have McCarvill check if this new course had a conflict, tell the guidance counselor this answer, and then the guidance counselor would have to tell the student. This was a very lengthy process, and the information had to go through many people. However, Johnny was able to fix this! He “made a website that allows counselors to input the new schedule and it would show whether there was a conflict!” This speeds up the process significantly, and keeps private information between the guidance counselor and the student. This again shows how a lot of Computer Science is “problem solving” based.
Now, after hearing from Johnny and Mr. McCarvill, it is evident that the process of creating schedules is much more complicated than many assume. This program helps guidance tremendously, and will only continue to accomplish more as time goes on. It is an amazing, hands-on project for students who are looking to have a future in Computer Science, and shows the talent and intelligence of Blind Brook students and faculty members.