Project: Curriculum Graph Search

Due 04/13

Educational Objectives: Experience implementing graph models and algorithms using generic library tools; experience solving problems using graphs

Operational Objectives: Produce a directed graph structure that models a curriculum. Produce specific algorithms finding paths in the model. Produce a specfic application to student scheduling.

Deliverables:

Procedural Requirements

  1. Each team uses the template library indicated in the team listings

  2. Each team member is responsible for one of the three components

Technical Requirements and Specifications

  1. The end result should be an application that uses the information in input files and produces a listing of all shortest schedules resulting in completion of degree requirements.

  2. Input files:

    1. Course Prerequisit List. Consists of course numbers compressed to a string (i.e., no spaces) arranged in the "target: dependency_list" syntax used in makefiles. That is, each line of the file consists of one course followed by a colon followed by its immediate prerequisites. Every course will be listed as a target, even if it has no prerequisits. Sample lines of this file:

      MAD2104
      MAD2105: MAD2104
      COP3330: COP3408
      COP4530: COP3330 CDA3101 MAD2104
      COP3502
      COP4531: COP4530 MAD3105
      MAC2411
      MAC2412: MAC2411
      MAC2413: MAC2412
      

    2. Course offering schedule. A semseterly listing of the courses that will be offered for a few years into the future. The syntax used would be the same target: dependency_list illustrated as follows:

      Su05: COP3408
      Fa05: COP3330 COP3502 COP4020 CENxxxx
      Sp06: COP4530 COP3101 CDA3101 COT4020
      

    3. Degree requirements. A listing of courses required for the degree, by course number as used above

    4. Student credit list. A listing of courses for which the student has credit

    5. Constraints. Possible restrictions such as the maximum number of courses a particular student can take in a single semester. (Default value = 5 courses.)

  3. Graph algorithms should be preferred to brute force solutions.

  4. Output is in the form of a text file with alll shortest schedules printed in a readable format.