Managing programs
Before we get started, let's deal with the basic structure of programs. A program consists of courses and sets; both are optional can be arranged in any order. A set contains one or more courses that have to be completed. Interestingly, a set can also contain another set, a great vehicle for creating hierarchical curricula. The recursive structure of programs is depicted in the following diagram:
An interesting feature is the flexible way that the completion of all elements and completion within sets can be defined. There are three different types of completion you can choose from:
- All in order: All courses must be completed in the order specified.
- All in any order: All courses must be completed but in no particular order.
- At least #: At least # courses must be completed, in no particular order.
For the Backus-Naur form (BNF) connoisseurs among you, here is the structure...