This section presents some concepts that are important to understand how the API works and some terminology that is used both in this documentation and in the names of API functions and classes.
A study session (also called session of study) is a period of time in which courses are run. Examples of study sessions are '2011 Summer' and '2011-2012 Fall/Winter'.
Each study session is divided into two terms. Fall/Winter study sessions are divided into a fall term and a winter term (which, confusingly, is sometimes called "spring term"), each 4 months long. Summer study sessions are divided into a spring term and a summer term, each 2 months long. In the API, the first term of a study session is referred to as the Fall Term, and the second term as the Spring Term.
A course (also referred to as an activity) is identified by an 8-letter code called its activity code (or course code). An example of an activity code is 'CSC108H1'. The first three letters of the activity code (e.g. 'CSC') constitute the department code and identify the department that offers the course.
A course can be either full-year or half-year. A full-year course runs through both terms of a study session. A half-year course runs through only one of the terms. [1]
An offering of a course is a course together with a time period when the course is offered. In any given study session, a full-year course can only have one offering (spanning both terms), while a half-year course can be offered in the first term, the second term, or both terms. An offering is identified by the course's activity code, together with a single-letter session code which identifies which term(s) the course runs in. Full-year course offerings have session code 'Y'. A half-year course offering has session code 'F' if it is offered in the Fall Term, or 'S' if it is offered in the Spring Term.
Sometimes the activity code and the session code that identify an offering are combined into a 9-letter code, e.g. 'CSC108H1S'. This is referred to as an activity/session code.
An offering of a course has one or more meetings. Every course has a lecture meeting; some courses also have tutorial and practical meetings.
For each meeting, an offering has one or more meeting sections. A meeting section is a specific set of times (and locations) when (and where) the class meets. Every student attends one meeting section of each meeting type (e.g. one lecture section, one tutorial section (if applicable), and one practical section (if applicable)) for a course.
A course load consists of a choice of a study session, and a choice of courses within that study session.
A activity configuration (or configuration for short) consists of a particular choice of offerings for each course in a course load (that is, a particular choice of Fall Term vs. Spring Term for each half-course in the course load that is offered in both terms).
A timetable for a given activity configuration consists of a choice of a meeting section for every meeting of every offering in the activity configuration.
Most meeting sections run every week; some, however, only run every other week. These are called alternate-week sections, and are usually practical sections. For purposes of scheduling alternate-week sections, each term is divided into alternating weeks called week 1 and week 2. Some alternating-week sections run on week 1 and others on week 2. It is allowed to be enrolled in two alternating-week sections that run at the same time on the same day, as long as one runs on week 1, and the other on week 2. The API knows about alternate-week sections (including which week they run in), and takes them into account when generating timetables.
[1] It is a common mistake to believe that the seventh digit of the course code specifies whether a course is full-year or half-year, with 'H' standing for half-year, and 'Y' for full-year. What this digit actually specifies is whether the course is worth a half credit or a full credit; it has nothing to do with whether a course runs over one or two terms. While it is true that courses worth half a credit usually are half-year, and courses worth a full credit usually are full-year, this is not always the case, and the API makes no such assumption.