diff --git a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo.xml b/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo.xml deleted file mode 100644 index 67712407a1..0000000000 --- a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo.xml +++ /dev/null @@ -1,526 +0,0 @@ - - - - -

[Anyof rule example]


-

Please label hydrogen atoms connected with left carbon atom.

-
-
- - - - - - - - - - - - - - - - - - - -
- - - -

[Complex grading example]


-

Describe carbon molecule in LCAO-MO.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Another complex grading example]


-

Describe oxygen molecule in LCAO-MO

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Individual targets with outlines, One draggable per target]


-

- Drag -Ant- to first position and -Star- to third position


-
- - - - - - - - - - - - - - - - - - -
- - - -

[SMALL IMAGE, Individual targets WITHOUT outlines, One draggable - per target]


-

- Move -Star- to the volcano opening, and -Label3- on to - the right ear of the cow. -


-
- - - - - - - - - - - - - - - - - -
- - - -

[Many draggables per target]


-

Move -Star- and -Ant- to most left target - and -Label3- and -Label2- to most right target.


-
- - - - - - - - - - - - - - - - - - -
- - - -

[Draggables can be placed anywhere on base image]


-

- Place -Grass- in the middle of the image and -Ant- in the - right upper corner.


-
- - - - - - - - - - - - - - -
- - - -

[Another anyof example]


-

Please identify the Carbon and Oxygen atoms in the molecule.


-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Again another anyof example]


-

If the element appears in this molecule, drag the label onto it

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Wrong base image url example] -


-
- - - - - - - - - - - - - - - - - -
- -
diff --git a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo2.xml b/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo2.xml deleted file mode 100644 index 6ffac18e44..0000000000 --- a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo2.xml +++ /dev/null @@ -1,373 +0,0 @@ - - - - -

[Draggable is reusable example]

-
-

Please label all hydrogen atoms.

-
-
- - - - - - - - - - - - - - - - - - - -
- - - -

[Complex grading example]


-

Describe carbon molecule in LCAO-MO.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Many draggables per target]


-

Move two Stars and three Ants to most left target - and one Label3 and four Label2 to most right target.


-
- - - - - - - - - - - - - - - - - - -
- - - -

[Draggables can be placed anywhere on base image]


-

- Place -Grass- in the middle of the image and -Ant- in the - right upper corner.


-
- - - - - - - - - - - - - - -
- - - -

[Another anyof example]


-

Please identify the Carbon and Oxygen atoms in the molecule.


-
- - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Exact number of draggables for a set of targets.]


-

Drag two Grass and one Star to first or second positions, and three Cloud to any of the three positions.

-
-
- - - - - - - - - - - - - - - - - - -
- - - -

[As many as you like draggables for a set of targets.]


-

Drag some Grass to any of the targets, and some Stars to either first or last target.

-
-
- - - - - - - - - - - - - - - - - - -
- -
diff --git a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo3.xml b/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo3.xml deleted file mode 100644 index 860f488089..0000000000 --- a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag-n-drop-demo3.xml +++ /dev/null @@ -1,262 +0,0 @@ - - - - -

[Simple grading example: draggables on draggables]


-

Describe carbon molecule in LCAO-MO.


-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Complex grading example: draggables on draggables]


-

Describe carbon molecule in LCAO-MO.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

[Complex grading example: no draggables on draggables]


-

Describe carbon molecule in LCAO-MO.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
diff --git a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag_and_drop_input.rst b/docs/en_us/data/source/course_data_formats/drag_and_drop/drag_and_drop_input.rst deleted file mode 100644 index c1e2ea929a..0000000000 --- a/docs/en_us/data/source/course_data_formats/drag_and_drop/drag_and_drop_input.rst +++ /dev/null @@ -1,425 +0,0 @@ -********************************************** -XML format of drag and drop input [inputtypes] -********************************************** - -.. module:: drag_and_drop_input - -Format description -================== - -The main tag of Drag and Drop (DnD) input is:: - - ... - -``drag_and_drop_input`` can include any number of the following 2 tags: -``draggable`` and ``target``. - -drag_and_drop_input tag ------------------------ - -The main container for a single instance of DnD. The following attributes can -be specified for this tag:: - - img - Relative path to an image that will be the base image. All draggables - can be dragged onto it. - target_outline - Specify whether an outline (gray dashed line) should be - drawn around targets (if they are specified). It can be either - 'true' or 'false'. If not specified, the default value is - 'false'. - one_per_target - Specify whether to allow more than one draggable to be - placed onto a single target. It can be either 'true' or 'false'. If - not specified, the default value is 'true'. - no_labels - default is false, in default behaviour if label is not set, label - is obtained from id. If no_labels is true, labels are not automatically - populated from id, and one can not set labels and obtain only icons. - -draggable tag -------------- - -Draggable tag specifies a single draggable object which has the following -attributes:: - - id - Unique identifier of the draggable object. - label - Human readable label that will be shown to the user. - icon - Relative path to an image that will be shown to the user. - can_reuse - true or false, default is false. If true, same draggable can be - used multiple times. - -A draggable is what the user must drag out of the slider and place onto the -base image. After a drag operation, if the center of the draggable ends up -outside the rectangular dimensions of the image, it will be returned back -to the slider. - -In order for the grader to work, it is essential that a unique ID -is provided. Otherwise, there will be no way to tell which draggable is at what -coordinate, or over what target. Label and icon attributes are optional. If -they are provided they will be used, otherwise, you can have an empty -draggable. The path is relative to 'course_folder' folder, for example, -/static/images/img1.png. - -target tag ----------- - -Target tag specifies a single target object which has the following required -attributes:: - - id - Unique identifier of the target object. - x - X-coordinate on the base image where the top left corner of the target - will be positioned. - y - Y-coordinate on the base image where the top left corner of the target - will be positioned. - w - Width of the target. - h - Height of the target. - -A target specifies a place on the base image where a draggable can be -positioned. By design, if the center of a draggable lies within the target -(i.e. in the rectangle defined by [[x, y], [x + w, y + h]], then it is within -the target. Otherwise, it is outside. - -If at lest one target is provided, the behavior of the client side logic -changes. If a draggable is not dragged on to a target, it is returned back to -the slider. - -If no targets are provided, then a draggable can be dragged and placed anywhere -on the base image. - -Targets on draggables ---------------------- - -Sometimes it is not enough to have targets only on the base image, and all of the -draggables on these targets. If a complex problem exists where a draggable must -become itself a target (or many targets), then the following extended syntax -can be used: :: - - - - - - ... - - -The attribute list in the tags above ('draggable' and 'target') is the same as for -normal 'draggable' and 'target' tags. The only difference is when you will be -specifying inner target position coordinates. Using the 'x' and 'y' attributes you -are setting the offset of the inner target from the upper-left corner of the -parent draggable (that contains the inner target). - -Limitations of targets on draggables ------------------------------------- - -1.) Currently there is a limitation to the level of nesting of targets. - -Even though you can pile up a large number of draggables on targets that themselves -are on draggables, the Drag and Drop instance will be graded only in the case if -there is a maximum of two levels of targets. The first level are the "base" targets. -They are attached to the base image. The second level are the targets defined on -draggables. - -2.) Another limitation is that the target bounds are not checked against -other targets. - -For now, it is the responsibility of the person who is constructing the course -material to make sure that there is no overlapping of targets. It is also preferable -that targets on draggables are smaller than the actual parent draggable. Technically -this is not necessary, but from the usability perspective it is desirable. - -3.) You can have targets on draggables only in the case when there are base targets -defined (base targets are attached to the base image). - -If you do not have base targets, then you can only have a single level of nesting -(draggables on the base image). In this case the client side will be reporting (x,y) -positions of each draggables on the base image. - -Correct answer format ---------------------- - -(NOTE: For specifying answers for targets on draggables please see next section.) - -There are two correct answer formats: short and long -If short from correct answer is mapping of 'draggable_id' to 'target_id':: - - correct_answer = {'grass': [[300, 200], 200], 'ant': [[500, 0], 200]} - correct_answer = {'name4': 't1', '7': 't2'} - -In long form correct answer is list of dicts. Every dict has 3 keys: -draggables, targets and rule. For example:: - - correct_answer = [ - { - 'draggables': ['7', '8'], - 'targets': ['t5_c', 't6_c'], - 'rule': 'anyof' - }, - { - 'draggables': ['1', '2'], - 'targets': ['t2_h', 't3_h', 't4_h', 't7_h', 't8_h', 't10_h'], - 'rule': 'anyof' - }] - -Draggables is list of draggables id. Target is list of targets id, draggables -must be dragged to with considering rule. Rule is string. - -Draggables in dicts inside correct_answer list must not intersect!!! - -Wrong (for draggable id 7):: - - correct_answer = [ - { - 'draggables': ['7', '8'], - 'targets': ['t5_c', 't6_c'], - 'rule': 'anyof' - }, - { - 'draggables': ['7', '2'], - 'targets': ['t2_h', 't3_h', 't4_h', 't7_h', 't8_h', 't10_h'], - 'rule': 'anyof' - }] - -Rules are: exact, anyof, unordered_equal, anyof+number, unordered_equal+number - - -.. such long lines are needed for sphinx to display lists correctly - -- Exact rule means that targets for draggable id's in user_answer are the same that targets from correct answer. For example, for draggables 7 and 8 user must drag 7 to target1 and 8 to target2 if correct_answer is:: - - correct_answer = [ - { - 'draggables': ['7', '8'], - 'targets': ['tartget1', 'target2'], - 'rule': 'exact' - }] - - -- unordered_equal rule allows draggables be dragged to targets unordered. If one want to allow for student to drag 7 to target1 or target2 and 8 to target2 or target 1 and 7 and 8 must be in different targets, then correct answer must be:: - - correct_answer = [ - { - 'draggables': ['7', '8'], - 'targets': ['tartget1', 'target2'], - 'rule': 'unordered_equal' - }] - - -- Anyof rule allows draggables to be dragged to any of targets. If one want to allow for student to drag 7 and 8 to target1 or target2, which means that if 7 is on target1 and 8 is on target1 or 7 on target2 and 8 on target2 or 7 on target1 and 8 on target2. Any of theese are correct which anyof rule:: - - correct_answer = [ - { - 'draggables': ['7', '8'], - 'targets': ['tartget1', 'target2'], - 'rule': 'anyof' - }] - - -- If you have can_reuse true, then you, for example, have draggables a,b,c and 10 targets. These will allow you to drag 4 'a' draggables to ['target1', 'target4', 'target7', 'target10'] , you do not need to write 'a' four times. Also this will allow you to drag 'b' draggable to target2 or target5 for target5 and target2 etc..:: - - correct_answer = [ - { - 'draggables': ['a'], - 'targets': ['target1', 'target4', 'target7', 'target10'], - 'rule': 'unordered_equal' - }, - { - 'draggables': ['b'], - 'targets': ['target2', 'target5', 'target8'], - 'rule': 'anyof' - }, - { - 'draggables': ['c'], - 'targets': ['target3', 'target6', 'target9'], - 'rule': 'unordered_equal' - }] - -- And sometimes you want to allow drag only two 'b' draggables, in these case you should use 'anyof+number' of 'unordered_equal+number' rule:: - - correct_answer = [ - { - 'draggables': ['a', 'a', 'a'], - 'targets': ['target1', 'target4', 'target7'], - 'rule': 'unordered_equal+number' - }, - { - 'draggables': ['b', 'b'], - 'targets': ['target2', 'target5', 'target8'], - 'rule': 'anyof+number' - }, - { - 'draggables': ['c'], - 'targets': ['target3', 'target6', 'target9'], - 'rule': 'unordered_equal' - }] - -In case if we have no multiple draggables per targets (one_per_target="true"), -for same number of draggables, anyof is equal to unordered_equal - -If we have can_reuse=true, than one must use only long form of correct answer. - -Answer format for targets on draggables ---------------------------------------- - -As with the cases described above, an answer must provide precise positioning for -each draggable (on which targets it must reside). In the case when a draggable must -be placed on a target that itself is on a draggable, then the answer must contain -the chain of target-draggable-target. It is best to understand this on an example. - -Suppose we have three draggables - 'up', 's', and 'p'. Draggables 's', and 'p' have targets -on themselves. More specifically, 'p' has three targets - '1', '2', and '3'. The first -requirement is that 's', and 'p' are positioned on specific targets on the base image. -The second requirement is that draggable 'up' is positioned on specific targets of -draggable 'p'. Below is an excerpt from a problem.:: - - - - - - - - - - - - - - ... - - correct_answer = [ - { - 'draggables': ['p'], - 'targets': ['p-left-target', 'p-right-target'], - 'rule': 'unordered_equal' - }, - { - 'draggables': ['s'], - 'targets': ['s-left-target', 's-right-target'], - 'rule': 'unordered_equal' - }, - { - 'draggables': ['up'], - 'targets': ['p-left-target[p][1]', 'p-left-target[p][2]', 'p-right-target[p][2]', 'p-right-target[p][3]',], - 'rule': 'unordered_equal' - } - ] - -Note that it is a requirement to specify rules for all draggables, even if some draggable gets included -in more than one chain. - -Grading logic -------------- - -1. User answer (that comes from browser) and correct answer (from xml) are parsed to the same format:: - - group_id: group_draggables, group_targets, group_rule - - -Group_id is ordinal number, for every dict in correct answer incremental -group_id is assigned: 0, 1, 2, ... - -Draggables from user answer are added to same group_id where identical draggables -from correct answer are, for example:: - - If correct_draggables[group_0] = [t1, t2] then - user_draggables[group_0] are all draggables t1 and t2 from user answer: - [t1] or [t1, t2] or [t1, t2, t2] etc.. - -2. For every group from user answer, for that group draggables, if 'number' is in group rule, set() is applied, -if 'number' is not in rule, set is not applied:: - - set() : [t1, t2, t3, t3] -> [t1, t2, ,t3] - -For every group, at this step, draggables lists are equal. - - -3. For every group, lists of targets are compared using rule for that group. - - -Set and '+number' cases -....................... - -Set() and '+number' are needed only for case of reusable draggables, -for other cases there are no equal draggables in list, so set() does nothing. - -.. such long lines needed for sphinx to display nicely - -* Usage of set() operation allows easily create rule for case of "any number of same draggable can be dragged to some targets":: - - { - 'draggables': ['draggable_1'], - 'targets': ['target3', 'target6', 'target9'], - 'rule': 'anyof' - } - - - - -* 'number' rule is used for the case of reusable draggables, when one want to fix number of draggable to drag. In this example only two instances of draggables_1 are allowed to be dragged:: - - { - 'draggables': ['draggable_1', 'draggable_1'], - 'targets': ['target3', 'target6', 'target9'], - 'rule': 'anyof+number' - } - - -* Note, that in using rule 'exact', one does not need 'number', because you can't recognize from user interface which reusable draggable is on which target. Absurd example:: - - { - 'draggables': ['draggable_1', 'draggable_1', 'draggable_2'], - 'targets': ['target3', 'target6', 'target9'], - 'rule': 'exact' - } - - - Correct handling of this example is to create different rules for draggable_1 and - draggable_2 - -* For 'unordered_equal' (or 'exact' too) we don't need 'number' if you have only same draggable in group, as targets length will provide constraint for the number of draggables:: - - { - 'draggables': ['draggable_1'], - 'targets': ['target3', 'target6', 'target9'], - 'rule': 'unordered_equal' - } - - - This means that only three draggaggables 'draggable_1' can be dragged. - -* But if you have more that one different reusable draggable in list, you may use 'number' rule:: - - { - 'draggables': ['draggable_1', 'draggable_1', 'draggable_2'], - 'targets': ['target3', 'target6', 'target9'], - 'rule': 'unordered_equal+number' - } - - - If not use number, draggables list will be setted to ['draggable_1', 'draggable_2'] - - - - -Logic flow ----------- - -(Click on image to see full size version.) - -.. image:: draganddrop_logic_flow.png - :width: 100% - :target: _images/draganddrop_logic_flow.png - - -Example -======= - -Examples of draggables that can't be reused -------------------------------------------- - -.. literalinclude:: drag-n-drop-demo.xml - -Draggables can be reused ------------------------- - -.. literalinclude:: drag-n-drop-demo2.xml - -Examples of targets on draggables ---------------------------------- - -.. literalinclude:: drag-n-drop-demo3.xml diff --git a/docs/en_us/data/source/course_data_formats/drag_and_drop/draganddrop_logic_flow.png b/docs/en_us/data/source/course_data_formats/drag_and_drop/draganddrop_logic_flow.png deleted file mode 100644 index 2bb1c11a41..0000000000 Binary files a/docs/en_us/data/source/course_data_formats/drag_and_drop/draganddrop_logic_flow.png and /dev/null differ diff --git a/docs/en_us/data/source/course_data_formats/grading.rst b/docs/en_us/data/source/course_data_formats/grading.rst deleted file mode 100644 index b00ca8d500..0000000000 --- a/docs/en_us/data/source/course_data_formats/grading.rst +++ /dev/null @@ -1,171 +0,0 @@ -############## -Course Grading -############## -This document is written to help professors understand how a final grade for a -course is computed. - -Course grading is the process of taking all of the problems scores for a student -in a course and generating a final score (and corresponding letter grade). This -grading process can be split into two phases - totaling sections and section -weighting. - -***************** -Totaling sections -***************** -The process of totaling sections is to get a percentage score (between 0.0 and -1.0) for every section in the course. A section is any module that is a direct -child of a chapter. For example, psets, labs, and sequences are all common -sections. Only the *percentage* on the section will be available to compute the -final grade, *not* the final number of points earned / possible. - -.. important:: - For a section to be included in the final grade, the policies file must set - `graded = True` for the section. - -For each section, the grading function retrieves all problems within the -section. The section percentage is computed as (total points earned) / (total -points possible). - -****************** -Weighting Problems -****************** -In some cases, one might want to give weights to problems within a section. For -example, a final exam might contain four questions each worth 1 point by default. -This means each question would by default have the same weight. If one wanted -the first problem to be worth 50% of the final exam, the policy file could specify -weights of 30, 10, 10, and 10 to the four problems, respectively. - -Note that the default weight of a problem **is not 1**. The default weight of a -problem is the module's `max_grade`. - -If weighting is set, each problem is worth the number of points assigned, regardless of the number of responses it contains. - -Consider a Homework section that contains two problems. - -.. code-block:: xml - - - ... - - -.. code-block:: xml - - - ... - ... - ... - - -Without weighting, Problem 1 is worth 25% of the assignment, and Problem 2 is worth 75% of the assignment. - -Weighting for the problems can be set in the policy.json file. - -.. code-block:: json - - "problem/problem1": { - "weight": 2 - }, - "problem/problem2": { - "weight": 2 - }, - -With the above weighting, Problems 1 and 2 are each worth 50% of the assignment. - -Please note: When problems have weight, the point value is automatically included in the display name *except* when `"weight": 1`. When the weight is 1, no visual change occurs in the display name, leaving the point value open to interpretation to the student. - - -****************** -Weighting Sections -****************** -Once each section has a percentage score, we must total those sections into a -final grade. Of course, not every section has equal weight in the final grade. -The policies for weighting sections into a final grade are specified in the -grading_policy.json file. - -The `grading_policy.json` file specifies several sub-graders that are each given -a weight and factored into the final grade. There are currently two types of -sub-graders, section format graders and single section graders. - -We will use this simple example of a grader with one section format grader and -one single section grader. - -.. code-block:: json - - "GRADER" : [ - { - "type" : "Homework", - "min_count" : 12, - "drop_count" : 2, - "short_label" : "HW", - "weight" : 0.4 - }, - { - "type" : "Final", - "name" : "Final Exam", - "short_label" : "Final", - "weight" : 0.6 - } - ] - -Section Format Graders -====================== -A section format grader grades a set of sections with the same format, as -defined in the course policy file. To make a vertical named Homework1 be graded -by the Homework section format grader, the following definition would be in the -course policy file. - -.. code-block:: json - - "vertical/Homework1": { - "display_name": "Homework 1", - "graded": true, - "format": "Homework" - }, - - -In the example above, the section format grader declares that it will expect to -find at least 12 sections with the format "Homework". It will drop the lowest 2. -All of the homework assignments will have equal weight, relative to each other -(except, of course, for the assignments that are dropped). - -This format supports forecasting the number of homework assignments. For -example, if the course only has 3 homeworks written, but the section format -grader has been told to expect 12, the missing 9 will have an assumed 0% and -will still show up in the grade breakdown. - -A section format grader will also show the average of that section in the grade -breakdown (shown on the Progress page, gradebook, etc.). - - -Single Section Graders -====================== -A single section grader grades exactly that - a single section. If a section -is found with a matching format and display name then the score of that section -is used. If not, a score of 0% is assumed. - - -Combining sub-graders -===================== -The final grade is computed by taking the score and weight of each sub grader. -In the above example, homework will be 40% of the final grade. The final exam -will be 60% of the final grade. - -************************** -Displaying the final grade -************************** -The final grade is then rounded up to the nearest percentage point. This is so -the system can consistently display a percentage without worrying whether the -displayed percentage has been rounded up or down (potentially misleading the -student). The formula for the rounding is:: - - rounded_percent = round(computed_percent * 100 + 0.05) / 100 - -The grading policy file also specifies the cutoffs for the grade levels. A -grade is either A, B, or C. If the student does not reach the cutoff threshold -for a C grade then the student has not earned a grade and will not be eligible -for a certificate. Letter grades are only awarded to students who have -completed the course. There is no notion of a failing letter grade. - - - - diff --git a/docs/en_us/data/source/index.rst b/docs/en_us/data/source/index.rst index 4140845be3..6bdcc727bb 100644 --- a/docs/en_us/data/source/index.rst +++ b/docs/en_us/data/source/index.rst @@ -33,8 +33,6 @@ The following sections of this document do not specifically pertain to researche :maxdepth: 2 course_data_formats/course_xml.rst - course_data_formats/grading.rst - course_data_formats/drag_and_drop/drag_and_drop_input.rst course_data_formats/graphical_slider_tool/graphical_slider_tool.rst course_data_formats/symbolic_response.rst diff --git a/docs/en_us/data/source/internal_data_formats/change_log.rst b/docs/en_us/data/source/internal_data_formats/change_log.rst index f034349bdd..664ef0265d 100644 --- a/docs/en_us/data/source/internal_data_formats/change_log.rst +++ b/docs/en_us/data/source/internal_data_formats/change_log.rst @@ -11,6 +11,16 @@ Change Log * - Date - Change + * - 08/25/14 + - Removed information on course grading. See `Establishing a Grading + Policy `_ in + *Building and Running an edX Course*. + * - + - Removed information on the XML for drag and drop. See `Drag and Drop + Problems `_ in *Building and + Running an edX Course*. * - 08/12/14 - Added the :ref:`ora2` section to the :ref:`Tracking Logs` chapter. * - 08/01/14 @@ -41,15 +51,26 @@ Change Log * - 05/06/14 - Added enrollment event types to the :ref:`Tracking Logs` chapter. * - 05/05/14 - - Removed information on the Poll module. `Polls `_ are now covered in - the *Building and Running an edX Course* guide. + - Removed information on the Poll module. See `Polls + `_ in *Building and Running an + edX Course*. * - - - Removed information on the Word Cloud tool. The `Word Cloud tool `_ is now covered in the *Building and Running an edX Course* guide. + - Removed information on the Word Cloud tool. See `Word Cloud tool + `_ in *Building and + Running an edX Course*. * - - - Removed information on CustomResponse XML and Python Script. See `Write-Your-Own-Grader Problem `_ in the *Building and Running an edX Course* guide. + - Removed information on CustomResponse XML and Python Script. See `Write- + Your-Own-Grader Problem `_ in + the *Building and Running an edX Course* guide. * - - - Removed information on Formula Equation Input. See `Create a Math Expression Input Problem `_ in the *Building and Running an edX Course* guide. + - Removed information on Formula Equation Input. See `Create a Math + Expression Input Problem `_ in the + *Building and Running an edX Course* guide. * - 04/29/14 - Corrected misstatement on how :ref:`Discussion Forums Data` is sent in data packages.