....
>> One problem with the LMS I currently use, and what I imagine is a
>> general problem, is there's no distinction between a course and any
>> particular course instance.
>
> Yes I would like to come up with a sort of versioning system for
> courses and their related content, and have been thinking about the
> best way to approach it. If anyone can think of an obvious way to do
> this, please let me know.
One way to approach this to say you have Course, CourseVersion and
CourseInstance, and I guess that the latter two can each have
children?
In my university context, I teach a "course." Let's take this one:
<http://www.users.muohio.edu/darcusb/courses/101/spring/>
Aside: I hate my LMS, so most of this content is hosted outside of it ;-)
The course has a name ("Global Forces/Local Diversity"), a department
("geography"), a number ("101"), and a description, and perhaps some
requirements. That abstract course has no instructors or students.
There is, then, my particular version of that course, which has a
syllabus, and a schedule, which at a generic level is a sequence of
topics, which in turn may have associated readings, notes, lecture
slides, assignments, etc. At this level, I am certainly the author of
at least much of that content, but there are still no students.
There is then the particular course instance. This brings in the
student and instructor roles, it is taught in a particular time period
(semester, year), at a particular time and place.
It also has three associated discussion sections, which are part of
the course instance, but are also distinct, with their own times and
places and students (and administratively are treated as distinct
courses). The TA is primarily responsible for these.
In our current LMS, the separate discussion sections can be optionally
merged into the main course site. I'm not certain how this works
behind-the-scenes, but what I see as an administrator is separate
course links for each discussion section But what I see at the end of
those links looks and behaves as if it were part of the same
consolidated course..
Ugh; complicated.
I'll add here versioning per se isn't that important to me as an
instructor. However, it very important that I can as easily as
possible be able to reuse content across terms.
I would also lie to more easily be able to share content with other
instructors teaching the same "course."
Bruce
So it appears the key classes are:
AcademicSession.java
CanonicalCourse.java (what I called just "Course")
CourseManagementAdministration.java
CourseManagementService.java
CourseOffering.java (what I called "CourseInstance")
CourseSet.java
Enrollment.java
EnrollmentSet.java
Meeting.java
Membership.java
Section.java
SectionCategory.java
Bruce