Summary
The course resides in the repository as a learning resource of type course. It is a special kind of learning resource as it has the ability to aggregate other learning resources, except courses.
It is a structural container for the course building blocks. The course is structured as a tree. And this structure is defining a learning path by means of visibility and accessability rules. The structure also offers an assessment and score facility to evaluate the course viewers progress.
It is an administrative container for the course. As it may have associated groups, areas, rights to control and organize course access.
It is important to understand the difference between the run and editor characteristic of a course. And also the ideas of the publish mechanism, which defines the transition from the editor view to the run view.
There is a course configuration with course wide settings.
The course is hierarchly structured - a tree - whereas each course node represents a building block. Such a building block is an encapsulated functionality for the course. These building blocks can be divided into the categories Content and structure , Assessment and Scoring , Collaboration . Each building blocks can control access and visibility with help of the visibility and accessability rules . Following building blocks are implemented so far:
Content and structure
Structure, STCourseNode
:
Structure element, noteworthy is the ability to calculate a score or passed value from other assessable course nodes.
External Page, TUCourseNode
:
An URL pointing to an external resource is integrated into the LMS without a HTML frames construct. Hence special requirements to the external resource apply.
CP learning content ,
CPCourseNode
:
Reference another learning resource of type IMS content packaging from the repository.
Single Page, SPCourseNode
:
Simple HTML page to display, either create one with the internal HTML editor or reference one from a storage folder.
SCORM learning content,
ScormCourseNode
:
Reference another learning resource of type SCORM package from the repository.
Self-Test, IQSELFCourseNode
:
Reference another learning resource of type self test based on IMS QTI from the repository. It is listed here instead of assessment because a self test does generate only anonymized results.
File-Dialog, DialogCourseNode
:
Collection of files users can upload and discuss. Uses a forum compoment for each file to be discussed.
Collaboration
Folder, BCCourseNode
File exchange between course participiants.
Contact Form, COCourseNode
Send an e-mail to a configured recipient group from the logged in user.
Enrolment , ENCourseNode
As a precondition for the enrolment groups or areas must have been configured for the course. If this is the case an automatic enrolment to the course can be realized here.
Forum , FOCourseNode
Discussion forum.
Assessment and Scoring
Assessment , MSCourseNode
Configuring an assessment building block influences the assessment tool which is at disposal to the course tutors. Check the description of the assessment and score facility.
Test, IQTestCourseNode
:
Reference another learning resource of type test, based on IMS QTI, from the repository. The results from the test can be accessed in the visibility and accessability rules.
Questionnaire ,
IQSURVCourseNode
Task, TACourseNode
The CourseFactory
ensures that a course is loaded only once
into the RAM. Thus all cours participants, tutors, authors are sharing the same course
object. It is clear that each course user must have its individual course run session
where user specific data is processed. To accomplish this the course has a
UserCourseEnvironment
which holds the user specific course run
data. Besides this the CourseEnvironment
aggregates runtime course
information which again is shared between all users.
The course is made persistent with the XStreamHelper
using XML
object serialization. Because of the sophisticated publish mechanism there is a persistent
valid course editor xml tree structure and a valid course run xml tree structure
co-existing. The course run is the users view to the course, and the course author sees
the course in the editor view.
The author can select specific or all changes in the course editor to be published
into the run structure. This process is defined in the
PublishController
roughly speaking it consists of:
removing nodes marked for deletion from the editor and run treemodels
copy new added nodes from the editor treemodel to the run treemodel
apply changes in existing nodes from the editor to run treemodel.
Each course has associated a course configuration which is persisted as XML file in the same place as the run structure and editor strucuture files.
This settings contain so far configurations for:
Course activity logging levels:
This option affects also the behaviour of the log file download.
Course chat enabled/disabled:
A change in this setting takes effect only in new started course sessions.
Individual course CSS layout option:
A change in this setting takes effect only in new started course sessions.
Specifying a resource folder which is shareable between courses.
Enabling/disabling evidence of achievement:
Changes in this option trigger the deletion of existing achievements, or a recalculation respectively. It is clear that the recalculation may take a while.
If a new configuration must be added one has to follow the guidelines
described in CourseConfig
. Special care must be taken to increase
the CourseConfig
's version number, once a change was
active in a productive environment.
This rules are specified like arithmetic expressions, whereas the valid functions and
units are registered in the ConditionInterpreter
. Each building
block has associated a visibility and accessability condition which is recursively
evaluated during the users course run. Once a building blocks visibility or accessability
is false the child nodes or not evaluated.
Some of the course building blocks are of type
AssessableCourseNode
. The assessable course nodes use the
AssessmentManager
from the course environment to set and get
assessment information.
More info on this will be added soon.
Every controller can have a UserActivityLogger
. In the course
this logger is set for all controllers involved. The course offers three different
logfiles that can be configured using the course configuration.
The course uses the PersistingAuditManager
from the course
environment to log the user activities.
More info on this will be added soon.