1. A method of programming a general purpose computer to provide a special purpose computer to determine and schedule student demand for courses for a population of students for a future school term comprising: programming a general purpose computer to receive and store a student data component for an at least one previous academic term, programming said computer to receive and store a course schedule data component for an at least one previous academic term, programming said computer to determine a future student course demand for each of an at least two courses of said course schedule data component to provide a course quantitative demand for each of said at least two courses, programming said computer to determine a joint demand for an at least one pair of courses from said course quantitative demand, programming said computer to identify an at least one student sub-population quantity of said student data component, programming said computer to analyze said course quantitative demand and said joint demand by said at least one student sub-population quantity to provide a student sub-population demand, programming said computer to receive and store a set of future students available for a time period to be scheduled in a future academic term to provide a set of available students, programming said computer to apply said student sub-population demand to said set of available students to identify a student sub-population demand of available students for at least one pair of courses; programming said computer to provide a tentative course section demand for a future academic term, and programming said computer to subdivide said course quantitative demand to determine a course section quantitative demand for said tentative future academic term by cross-referencing said future student time availability with tentative offering times of course sections in said tentative future course schedule data component to derive a tentative course section demand for a said at least one future academic term.