OSID Specifications
course package
Version 3.0.0
Release Candidate Preview
TitleCourse Open Service Interface Definitions

The Course OSID provides course management services for educational offerings or other learning units related to an event or curriculum. Courses may be used to model a class, conference tutorial session, or even a meetup group.

The Course OSID defines two sets of interfaces. Courses and ActivityUnits represent canonical curriculum. Canonical Courses and ActivityUnits includes the description of the curriculum, requirements, and learning objectives independent of any offering. CourseOfferings and Activities are offerings of a canonical unit in a Term.


The Course is a canonical learning unit describing the overall content of a course, related learning Objectives, and any credit or grading options available that serve to constrain related offerings. The content of a canonical Course can be managed through a set of ActivityUnits .


An ActivityUnit is a component of a canonical Course that describes in more detail a learning activity. An ActivityUnit relates to a set of learning Objectives. Learning Objectives managed at the ActivityUnit level can be rolled up to the canonical Course.

An ActivityUnit also describes target efforts split between contact and individual durations, and whether the an offering of an ActivityUnit is intended to repeat on a weekly basis. The ActivityUnit maintains the high level data to which offerings are scheduled.


Course 6.111 Digital Systems Laboratory has a prerequisite of 6.002 and offered at 12 credits. It as three associated activity units. One activity unit is the lecture recurring weekly at 3 hours per week. The second activity unit is the lab recurring weekly at 7 hours per week. The third activity is preparation recurring weekly at 2 hours per week. MIT calculates the credits ("units" as they would call them) as the sum of the weekly effort hours; 12 credits (transformable to 4 semester hours in the Grading OSID). The total target effort for all three activity units is 168 hours. When an offering is scheduled during a Term, the actual effort can be compared to the target effort based in the weekly effort estimates.


A CourseOffering is a canonical Course offered during a Term. CourseOffering replicates some of the data managed in the Course in the case it is refined or tweaked. CourseOffering adds some logistical information such as requiring registration, instructors, and overall constraints on seating count. Like its canonical counterpart, a CourseOffering is made up of Activities .


An Activity is an offering of an ActivityUnit. The Activity allows for some information, such as seating constraints and instructors, to be managed at this level instead of the CourseOffering level. The Activity also allows for the effort numbers to be refined fromits canonical counterpart.

The Activity also manages scheduling information. Schedules, as managed by the Calendaring OSID, can be related to an Activity. When the Schedule is applied to a Term, a series of meeting times can be visible as either a series of implicit Activities in the Course OSID or as a RecurringEvent in the Calendaring OSID.

The interplay between the Calendaring OSID and the Course OSID for scheduling is apparent by the similarity between the Activity and the RecurringEvent. At a conceptual level, the Activity is an ActivityUnit offered on a recurring Schedule duing a Term while a RecuringEvent is an event offered on a recurring Schedule during a Term.

Like a RecurringEvent, an Activity may be "unravelled" as in expanded to a set of Activities where each Activity represents a single meeting time. This unravelling allows for a single meeting time to be identified and potentially modified to add or change information for one occurrence. An eample would be to implement a rotating instructor for each class in a series.

A "superseding" Activity be be applied to an Activity to replace individual occurrences. The Schedules for each the Activity and the superseding Activity are expanded into individual meeting times. If any individual times overlap with any individual times of the superseding Activity, the superseding Activity session replaces the original one.


A Term is a time period in which Courses can be offered. The Term includes a set of course related milestones included a date range in which classes occur. This class date range drives the expansion of the Schedules in the Activity.

The Term in the Course OSID is analogous to the Term in the Calendaring OSID but has extra course-related information. The Schedule expansion in the Course OSID is based on the class date range while the expandion of the Schedule in the Calendaring OSID is based on the date range of the Term itself.

Course Catalog Cataloging

Courses, ActivityUnits, CourseOfferings, Activities, and Terms can be organized into federateble OsidCatalogs. CourseCatalogs can be used to represent a set of CourseOfferings offered in a specific Term, year, or by subject area or sponsor.


The Course OSID is orchestrated with a Calendaring OSID to manage Schedules or to offer a calendar view of offerings. The Course OSID may also be orchestrated a Resource OSID to manage instructors and students, with an Ontology OSID to organize Courses by subject matter or with a Learning OSID to manage related learning Objectives. The Resourcing OSID may be used to manage the instructor pools and apply their expertise to course offerings. The Grading OSID serves to manage GradeSystems for the grading options available for an offering. The Commenting OSID may be used to gather feedback and ratings for course offerings. The Course OSID provides the slice that includes curriculum and offering management around a suite of other services.

Sub Packages

The Course OSID includes a Course Program OSID to manage Programs, a Course Registration OSID to register students in CourseOfferings, a Course Requisite OSID to manage course and program requirements, a Course Syllabus OSID to manage the content of an Activity, and a Course Chronicle OSID to provide an academic record, and a Course Batch OSID to manage Courses, ActivityUnits, Terms, CourseOfferings, and Activities in bulk.