Commit 32057fd6 by Mark Hoeber

Python problem randomization example

parent ef0111d0
......@@ -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`.
......
......@@ -364,6 +364,8 @@ A problem’s weight is set to 2. The problem has four response fields.
If a student’s response contains one correct answer and three incorrect
answers, the student’s 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
===============
......
.. include:: ../../../shared/exercises_tools/custom_python.rst
......@@ -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.
......
......@@ -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>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment