You are here:
Model Courses and Curricula
Use multiple custom objects in EDA to model your institution's courses and curricula.
- Model Courses and Curricula
Modeling courses and curricula in EDA relies on a number of EDA custom objects: Course, Course Offering, Course Offering Schedule, Time Block, and Course Connection. Let's see how these objects relate to one another, and to the objects covered elsewhere in more detail—Term, Account, and Facility. - Courses and Course Offerings
A Course on its own is an abstract idea. It's a class—a syllabus of material typically worth a certain number of credit hours. It's always under the purview of a specific department, as a child record of a department's Account record. - Course Offering Schedule Details
A student who's lucky enough to secure a seat in the fall semester Course Offering of Probability Theory Fundamentals needs to know when and where to show up for class. On Mondays, Wednesdays, and Fridays, class meets from 1-2 PM in Dixit Building, Lecture Hall A. On Tuesdays and Thursdays, it meets from 2-3:30 PM in the adjacent Data Lab. - Cross-Listed Courses
Every Course must have a single University Department Account as its parent. For a cross-listed Course, each collaborating department typically maintains its own Course record and its own Course Offering record, and makes sure that both Course Offerings share identical scheduling, credit hours, instructor, and other details. - Course Connections for Faculty, Staff, and Students
A Course Offering such as Probability Theory Fundamentals has over a hundred students enrolled for the Term, and a primary instructor, and several teaching assistants. Use the Course Connection object to model all of these Contacts' connections to the Course Offering. - Courses and Curricula Recap
To sum up, we've looked at a number of EDA objects involved in modeling the who, what, when, and where of courses and curricula. Here's the bigger picture of these object relationships when we layer in students' Program Enrollments and Affiliations, as well.
Model Courses and Curricula
Modeling courses and curricula in EDA relies on a number of EDA custom objects: Course, Course Offering, Course Offering Schedule, Time Block, and Course Connection. Let's see how these objects relate to one another, and to the objects covered elsewhere in more detail—Term, Account, and Facility.

Courses and Course Offerings
A Course on its own is an abstract idea. It's a class—a syllabus of material typically worth a certain number of credit hours. It's always under the purview of a specific department, as a child record of a department's Account record.
For example, the Data Science Department offers Probability Theory Fundamentals nearly every semester as a four-unit course. In the course catalog, it's Course ID DSCI-212.
A Course Offering makes a Course concrete in time and space. It relates a specific instance of a Course to a specific Term. In the Fall 2021 semester, students vie for one of the 120 coveted spots in Probability Theory Fundamentals, with the ever-popular Professor Hsu. The Course Offering record is specific about the Term, the faculty, start and end dates, capacity, and so on.
Course Offering Schedule Details
A student who's lucky enough to secure a seat in the fall semester Course Offering of Probability Theory Fundamentals needs to know when and where to show up for class. On Mondays, Wednesdays, and Fridays, class meets from 1-2 PM in Dixit Building, Lecture Hall A. On Tuesdays and Thursdays, it meets from 2-3:30 PM in the adjacent Data Lab.
Model these day-by-day schedule variations using the Course Offering Schedule, Time Block, and Facility objects. Think of these pairs of records storing the data for the Course Offering.
-
One Course Offering Schedule record (CSH-149723) lets us account for the Monday, Wednesday, Friday occurrences. A second Course Offering Schedule record (CSH-149724) lets us account for the Tuesday, Thursday occurrences.
-
One Time Block record (1300-1400) represents the 1-2 PM slot. Another (1400-1530) represents the 2-3:30 PM slot. Each time slot's start and end times are automatically copied to the start and end times of their respective Course Offering Schedule records, which helps keep this data accurate and in sync across records.
-
One Facility record represents Lecture Hall A in Dixit Building. Another represents the Data Lab.
In this example, Connected University uses the Course Offering Schedule object along with Course Offering and Time Block because the combination allows for more flexible modeling of Course Offerings with variable schedules. K-12 schools that follow alternating A/B schedules typically need a similar degree of flexibility.
If your institution's scheduling is less complicated, you're not required to use the Course Offering Schedule object at all. Instead, you can use the Time Block field on the Course Offering record, which tracks the same data as the Time Block field on the Course Offering Schedule record.
Cross-Listed Courses
Every Course must have a single University Department Account as its parent. For a cross-listed Course, each collaborating department typically maintains its own Course record and its own Course Offering record, and makes sure that both Course Offerings share identical scheduling, credit hours, instructor, and other details.
If you want to indicate cross-listing in the Course Offering ID or Section ID fields, plan ahead for this use case when you decide your naming conventions. If you want to generate a combined course roster, create a report to do so.
Course Connections for Faculty, Staff, and Students
A Course Offering such as Probability Theory Fundamentals has over a hundred students enrolled for the Term, and a primary instructor, and several teaching assistants. Use the Course Connection object to model all of these Contacts' connections to the Course Offering.
You can use Course Connection record types to specify the nature of a Contact's involvement in a Course Offering. In our example, EDA's preconfigured Student and Faculty record types account for most of the people involved. For Faculty Course Connection records only, use the Primary field to specify the primary instructor for a Course Offering. You could create custom record types, such as Teaching Assistant to account for the TAs, or Staff Support to account for staff providing lab setup or A/V support.
For Student Course Connections, it can be handy to know which ones count toward satisfying a Program Plan's requirements. You can use the Program Enrollment ID field on a Course Connection record to track this facet of the data.
Course Connections give us useful views of related data. For example:
-
From a Course Offering record, see all the Term Grades issued to students enrolled in that Term's offering of Probability Theory Fundamentals.
-
From a faculty member's Contact record, see the history of their involvement with various Course Offerings and the distribution of their teaching responsibilities.
-
From a student's Contact record:
-
Scan through their full list of Course Connection records to see their coursework history.
-
From their list of Program Enrollments, drill down into a specific Program Enrollment record, and see the Course Connections that count toward the Academic Program's requirements.
-

