Changes between Version 11 and Version 12 of BoltIntro


Ignore:
Timestamp:
Oct 3, 2007, 1:53:33 PM (17 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BoltIntro

    v11 v12  
    2929 * Each student's progress is recorded in a database, and when they return to the course later they resume at that point.
    3030 * Bolt maintain an estimate of each student's mastery of the course material.
    31 
     31 
    3232In addition, Bolt lets you create better courses; specifically, you can
    3333 * find out exactly how effective each lesson is;
     
    4747== Creating exercises ==
    4848
     49An exercise is a PHP script.
     50Here's an example containing a multiple-choice question
     51(the '2' indicates that the correct answer is the last one):
    4952{{{
    5053<?php
     
    6164?>
    6265}}}
    63 
     66Here's an example that shows an image;
     67a correct answer is a click in the indicated subrectangle.
    6468{{{
    6569<?php
     
    7377}}}
    7478
     79Bolt supplies functions for other types of questions,
     80such as inclusive multiple-choice and fill-in-the-blank.
     81An exercise can include multiple questions.
     82
     83At the implementation level, an exercise has three functions:
     84
     85 * When invoked with $mode_show set, it shows the exercise.
     86 * When invoked with $mode_score set, it computes a score based on the responses stored in $_GET, and assigns the score to $score.  Its text output, if any, is ignored.
     87 * When invoked with $mode_answer, it shows and "answer sheet" based on the responses stored in $_GET.  If the response is correct and no answer sheet is to be shown, it sets $no_answer_sheet.
     88
     89Bolt's exercise primitives perform all these functions for you;
     90however, you're free to implement your own exercises.
     91
    7592== Course documents ==
    7693
    77 The structure of a Bolt course is defined by a [RFC:4627 JSON] document:
     94The structure of a Bolt course is defined by a [RFC:4627 JSON] document.
     95Here's an example of a course with two lessons followed by an exercise:
    7896{{{
    7997{
    8098   "name": "Identifying Sierra Conifers",
    8199   "description: "Learn to identify the major conifers of California's Sierra Nevada",
    82    "content": [
     100   "items": [
    83101      {
    84102          "type": "lesson",
     
    99117}}}
    100118
     119Course items can be grouped into '''sets'''; for example:
     120
     121{{{
     122{
     123   "type": "set",
     124   "show_n": 1,
     125   "order": "random",
     126   "items": {
     127      {
     128      ...
     129      }
     130   }
     131}
     132}}}
     133
     134The attributes of a set include:
     135
     136 * show_n: the number of items in the set to show
     137 * order: whether to show the items sequentially or randomly
     138
     139Items (lessons, exercises, and sets) can include '''properties''', e.g.:
     140
     141{{{
     142{
     143   "type": "lesson",
     144   "name": "The Linnaean hierarchy",
     145   "file": "linnaean.html"
     146   "properties": {
     147      "verbal_level": 12,
     148      "detail_level": 0.8
     149   }
     150},
     151}}}
     152
     153When Bolt has a choice of items (e.g. when it encounters a set from which a
     154single item is to be shown) it calls, for each item, a course-supplied
     155'''matchmaking function''', passing to it the student object
     156(which includes demographics such as age)
     157and the item's properties (represented as a PHP object).
     158The matchmaking function returns a number representing the estimated
     159effectiveness of that item for that student,
     160and Bolt chooses the item with the highest value.
     161
    101162== Policies ==
    102163