Synopsis

This document describes the use of the course template extension to IMS-E.
The course copy feature allows a new course to be based on an existing course template, and starting from R41 you can also use IMS-E to create new courses based on pre-existing templates.

The process for setting up course template and courses based on the templates:

  1. Terms are set up (and SyncKeys are manually entered)  (Manual process )
  2. IMS E Import is creating template courses from properly structured XML files.
  3. Template course is configured, populated and shared as a template in the UI (Manual procedure, see )
  4. IMS E Import is creating courses based on the template  


The process cannot be fully automated at this time. It involves manual steps to set up terms and configure/populate courses, as outlined below:

Keep in mind that the course copy feature is a point-in-time copy of the template course.

The new course instance will not be kept in sync with any changes made to the original template, and there is currently no option to "resync" after a course instance has been created.


Extension to IMS-E

The IMS-E import has been extended to support the creation of courses based on Course Templates. See IMS Enterprise 1.1 XML-based imports for XML formatting details.

Courses are created in IMS-E by adding an <extension> section to the request, specifying the course name (mandatory) and the course code (optional).

This has been extended with two (three) pieces of data as follows:
 

Element

Type

Description

Course Template

SyncKey

The synckey of the course template. If this is specified then the new course is to be based on a template and the items below become manditory/option as described.

Validation rule: The course template SyncKey must exist, and must refer to a course template, not a regular course.

Creator

SyncKey

Identifier of the user who will “own” the course and content/elements in the course.

Validation rule: The creator SyncKey must exist, and the creator must be a member of the organisation that owns the course.

Terms

SyncKey

Identifies the terms to be copied across to the course instance.

Validation rule. must exist if specified. 

Course External Template Id

integer

Identifier of the shareable planner.
If 'Course Template' is specified too it will be use instead planner id. 

Validation rule: Optional. Must refer to a shareable planner. Creator SyncKey must exist too.

If specified "Course Template" and "Course External Template Id" the course template will be used for course creation the External Template Id will be skipped.

Separating templates from regular courses:

When importing courses, you may want to make the courses destined to become templates easy to identify in lists and the XML structure:

  1. Consider adding a prefix the title of template courses
  2. Add "template" to the grouptype/scheme element in XML:

    <grouptype>
    <scheme>TEMPLATE</scheme>
    <typevalue level="3">COURSE</typevalue>
    </grouptype>

Some example XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- The course to be used as a template -->
<group recstatus="1">
<sourcedid>
<source>SHS</source>
<id>TP-SOC100</id>
</sourcedid>
<grouptype>
<scheme>TEMPLATE</scheme>
<typevalue level="3">COURSE</typevalue>
</grouptype>
<description>
<short>SOS100 Social work</short>
<full>SOS100 Social work</full>
</description>
<relationship relation="1">
<sourcedid>
<source>SHS</source>
<id>CourseTemplates</id>
</sourcedid>
<label>TEMPLATE</label>
</relationship>
<extension>
<course>
<code>TP-SOC100</code>
<credits>10</credits>
</course>
</extension>
</group>
<!-- The course to be based on the above template course. 
This element SHOULD NOT be introduced until the template course has been populated and made available as template.
It will however generate an error until every prerequisite is in place. -->
<group recstatus="1">
<sourcedid>
<source>SHS</source>
<id>SOS100_HT13</id>
</sourcedid>
<grouptype>
<scheme>FROMTEMPLATE</scheme>
<typevalue level="3">COURSE</typevalue>
</grouptype>
<description>
<short>SOS100 Social work</short>
<full>SOS100 Social work</full>
</description>
<relationship relation="1">
<sourcedid>
<source>SHS</source>
<id>Courses</id>
</sourcedid>
<label>Req by DTD</label>
</relationship>
<extension>
<course>
<code>SOS100_HT13</code>
<credits>10</credits>
<coursetemplate>
<courseexternaltemplateid>5</courseexternaltemplateid>
<coursetemplatesynckey>TP-SOC100</coursetemplatesynckey>
<coursecreatorsynckey>admin</coursecreatorsynckey>
<terms>
<term sourcetermsynckey1="Term1_2013" newtermsynckey1="Term1_2013" />
<term sourcetermsynckey2="Term2_2013" newtermsynckey2="Term2_2013" />
</terms>
</coursetemplate>
</course>
</extension>
</group>

Defining courses as templates

Defining courses as templates is a manual process, and must be completed manually before you can create coursed based on the template.

Courses can be shared as templates on a School and Site level.

Sharing a course as a template for others is an option that is controlled by a profile setting, so it is possible to configure on profile and policy which users are able to share courses as templates. Sharing a course is done from the Course settings page:



Specifiying SyncKeys for terms

Terms in itslearning's implementation of IMS E are used only for matching the terms in the template with terms in the new course.

The terms must exist already (will not be auto-created), and the term sync key must be entered manually when creating the term in the UI.

Terms are optional, so if you create a new course based on a template which has terms, the new course will have the same terms as the template.

You have the option to replace the terms if you e.g. want to use the same template from the previous year, but with an updated set of terms.


So:

  • If you specify a termsynckey that does not exist, the term will NOT be created
  • If you specify a termsynckey that does not exist, the import service will disregard the whole course (i.e not import the course nor the hierarchy) and an error will be returned
  • If terms have not been added to the template course when you create a new course instance from this template, you can add terms to the course instance later
  • The terms can be read through the Organisation API