Merge pull request #5738 from edx/markhoeber-documentation-doc858

Python problem randomization example
This commit is contained in:
Mark Hoeber
2014-10-28 14:09:48 -04:00
5 changed files with 51 additions and 1 deletions

View File

@@ -18,6 +18,8 @@ October, 2014
Your Own Grader` chapter.
* -
- Fixed a bug in :ref:`Text Input Problem XML`.
* -
- Added :ref:`Create a Randomized Custom Python-Evaluated Input Problem`
* - 10/23/14
- Added note about limited support of annotation problem type to
:ref:`Annotation`.

View File

@@ -364,6 +364,8 @@ A problems weight is set to 2. The problem has four response fields.
If a students response contains one correct answer and three incorrect
answers, the students score is 0.5 out of 2 points.
.. _Randomization:
===============
Randomization
===============
@@ -413,6 +415,8 @@ This setting has the following options.
| | other students see. |
+-------------------+--------------------------------------+
.. note:: The edX Platform has a 20-seed limit for randomization.
===============
Show Answer
===============

View File

@@ -1,2 +1 @@
.. include:: ../../../shared/exercises_tools/custom_python.rst

View File

@@ -13,8 +13,11 @@ October, 2014
* - Date
- Change
* - 10/28/14
- Added the section :ref:`Example of an OLX Course`.
* -
- Added :ref:`Create a Randomized Custom Python-Evaluated Input Problem`
* - 10/23/14
- Fixed the code sample in :ref:`Script Tag Format` in the :ref:`Write
Your Own Grader` chapter.

View File

@@ -288,3 +288,45 @@ The following template does not return answers when the student clicks **Show An
</solution>
</problem>
.. _Create a Randomized Custom Python-Evaluated Input Problem:
*****************************************************************
Create a Randomized Custom Python-Evaluated Input Problem
*****************************************************************
You can create a custom Python-evaluated input problem that randomizes
variables in the Python code.
.. note::
In the problem settings, you must set the **Randomization** value to
something other than **Never** to have Python variables randomized. See
:ref:`Randomization` for more information.
The following example demonstrates using randomization with a Python-evaluated
input problem.
.. note::
This example uses the method ``random.randint`` to generate random numbers. You can use any standard Python library for this purpose.
.. code-block:: xml
<problem>
<p>Some problems in the course will utilize randomized parameters.
For such problems, after you check your answer you will have the option
of resetting the question, which reconstructs the problem with a new
set of parameters.</p>
<script type="loncapa/python">
x1 = random.randint(0, 100)
x2 = random.randint(0, 100)
y = x1+x2
</script>
<p>Let (x_1 = $x1) and (x_2 = $x2). What is the value of (x_1+x_2)?</p>
<numericalresponse answer="$y">
<responseparam type="tolerance" default="0.01%" name="tol"
description="Numerical Tolerance"/>
<textline size="10"/>
</numericalresponse>
<solution>
<p><b>Explanation:</b></p>
</solution>
</problem>