I just want to clarify the situation so that others do not get confused. The bottom line is that people should now use the rel-2-4-patches version.
There are 3 interrelated files:
Mike edited CourseManagement.pm and put the changes into head. You downloaded that version and had problems because you had a patched version of DBUpgrade.pm. As long as you don't run wwdb_upgrade you will be fine with the head versions. I have now put Mike's changes into the rel-2-4-patches version of CourseManagement.pm so you will also be fine with the patches version of the files.
Just for the record the current problem with the head versions is as follows. Sam was in the process of moving some of the code out of wwdb_upgrade so that it could be used by other processes. However this was not completed (or at least not debugged) and the iterative nature of wwdb_upgrade was broken. wwdb_upgrade is supposed to iterate through all updates (currently 23) to bring the database up to date. The head version of wwdb_upgrade seems to perform one update at a time so it has to be run 23 times on a new install of WeBWorK (I assume it works after being run 23 times but I didn't have the patience to test that). So we backed off the changes to wwdb_upgrade and this necessitated small changes to DBUpgrade.pm
and CourseManagement.pm. All the changes were put in the rel-2-4-patches version of the files.