Introduction to Learning Modules (LMS) ====================================== .. note:: This part is wordy, but we think users can benefit if they understand how LMS works. At its purest form, a learning module is made up by a HTML webpage. It can contain CSS, javascript, images and even embedded videos. Each learning module should be a self-contained lesson. For example, you can have a learning module soley on adding `unsigned` binary numbers and another learning module on adding `signed` binary numbers. This allows instructors to write very self-contained tests to verify students' answers. Every learning module should have an objective, some directions and examples. Learning module is aimed to help students catching up with new concepts just introduced in class. That being said, **Aurum LMS** are enhanced by the fact that solutions are checked against Python's unittests code. This means we can create more complex LMS assignments, rather than just a couple multiple choices embedded in the HTML webpage. In the next few sections, I will walk you through how the entire LMS interacts. Aurum LMS --------- The whole Aurum LMS is made up of three components: * scorm LMS * teacher test repository * BlackBoard Scorm LMS ~~~~~~~~~ This contains the LMS we discussed earlier in the introduction. This contains the HTML web page, CSS and required Javascript. See :ref:`lms-structure-label` section below. Teacher test repository ~~~~~~~~~~~~~~~~~~~~~~~ This is a Mercurial, Bitbucket-based repository which contains some configuration files and some Python unittest files. For more complex assignment, this repository may have **.h** header files and a **Makefile**. Currently, we require each LMS to have its unique test repository. In other words, you must create a new test repository for each LMS you want to make available to students. See :ref:`test-repo-structure-label` section to learn more about the basic structure of a test repo. See :ref:`test-repo-samples-label` section to see a sample test repo. You can either keep this repository private or public. If you do choose to make it private, you must grant our system (our Bitbucket user ``teamglass7311``) her **READ** access to your private repository. Please read :ref:`give-read-access-label` on how to do this. We do not have a preference on whether keeping the test repo private or public. .. note:: Remember one test repo for one LMS. BlackBoard ~~~~~~~~~~ Last, City College uses BlackBoard so Aurum LMS can also run on BlackBoard. See :ref:`blackboard-guide-label` on how to upload scorm LMS to BlackBoard. Once student finishes his or her attempt, a grade is committed on BlackBoard so teacher do not have to do the manual grading. .. _lms-structure-label: LMS Structure ------------- The basic structure of a successful, valid LMS looks like this: .. begin-lms-structure .. code-block:: bash top-level-folder/ - index.html - config.js - imscp_rootv1p1p2.xsd - imslrm.xml - imsmanifest.xml - imsmd_rootv1p2p1.xsd - ims_xml.xsd - js/ - css/ - other css files .. end-lms-structure We provide a basic LMS for you. * download: `basic_scorm.zip `_ * view repo: `bitbucket `_ +------------+----------------------------------------------------------------+ | file name | purpose | +============+================================================================+ | index.html | contains the actual LMS content. | +------------+----------------------------------------------------------------+ | config.js | contains LMS configuration. For | | | example, the minimum passing | | | score. | +------------+----------------------------------------------------------------+ | ged.js | contains Aurum javascript that talks to aurum web service. | | | This javascript file is version controlled and hosted on | | | Bitbucket. You should use include it as a script in the HTML. | | | https://bitbucket.org/glasslab/aurum-js/raw/stable/ged.js | +------------+----------------------------------------------------------------+ .. warning:: From version to version, we will move most of the JS and CSS files out of bundled scorm. Instead of packaging a scorm that has everything, we will have a scorm that has very very minimal javascript and dynamically load in other js and css. We will announce the changes as we go. config.js --------- The **config.js** file contains the following settings. .. code-block:: javascript var problem_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"; var access_code = "xxxxxxxxxxxxxxxxxxxxxxxxxx"; var hostname = "https://134.74.77.21/beta/"; var url = "https://134.74.77.21/beta/aurum/static/easyXDM/src/cors"; var maxScore = 45; var min_passing_score = 35; +-------------------+-----------------------------------------+ | attribute | purposes | +===================+=========================================+ | problem_id | Unique id for the current LSM. Before | | | running LMS, users have to "create" an | | | exercise object on Aurum web service by | | | running the Aurum CLI and the id is | | | returned. | +-------------------+-----------------------------------------+ | access_code | Authentication code. | +-------------------+-----------------------------------------+ | hostname | Domain of the Aurum web service. | +-------------------+-----------------------------------------+ | url | Full url to the easyXDM script. This | | | script allows BlackBoard to talk to | | | Aurum web service. | +-------------------+-----------------------------------------+ | maxScore | The maxmium score a student can earn | | | from completing LMS. This value should | | | match the total score in your | | | config.yaml. | +-------------------+-----------------------------------------+ | min_passing_score | The minimum passing score ranging from | | | 0 to the value of maxScore. | +-------------------+-----------------------------------------+ .. note:: You don't have to edit this file manually. You should let the Aurum CLI to do most of the work. See :doc:`aurum_cli_commands` and :doc:`aurum_cli_quick_start`.