44 lines
1.5 KiB
YAML
44 lines
1.5 KiB
YAML
---
|
|
metadata:
|
|
display_name: Problem with Adaptive Hint
|
|
markdown: !!null
|
|
data: |
|
|
<problem>
|
|
<text>
|
|
<p><h4>Problem With Adaptive Hint</h4></p>
|
|
<p>This problem demonstrates a question with hints, based on using the <tt class="tt">hintfn</tt> method. </p>
|
|
|
|
<customresponse cfn="test_str" expect="python">
|
|
<script type="text/python" system_path="python_lib">
|
|
def test_str(expect, ans):
|
|
print(expect, ans)
|
|
ans = ans.strip("'")
|
|
ans = ans.strip('"')
|
|
return expect == ans.lower()
|
|
|
|
def hint_fn(answer_ids, student_answers, new_cmap, old_cmap):
|
|
aid = answer_ids[0]
|
|
ans = str(student_answers[aid]).lower()
|
|
print('hint_fn called, ans=', ans)
|
|
hint = ''
|
|
if 'java' in ans:
|
|
hint = 'that is only good for drinking'
|
|
elif 'perl' in ans:
|
|
hint = 'not that rich'
|
|
elif 'pascal' in ans:
|
|
hint = 'that is a beatnick language'
|
|
elif 'fortran' in ans:
|
|
hint = 'those were the good days'
|
|
elif 'clu' in ans:
|
|
hint = 'you must be invariant'
|
|
if hint:
|
|
hint = "<font color='blue'>Hint: {0}</font>".format(hint)
|
|
new_cmap.set_hint_and_mode(aid,hint,'always')
|
|
</script>
|
|
<label>What is the best programming language that exists today? You may enter your answer in upper or lower case, with or without quotes.</label>
|
|
<textline correct_answer="python"/>
|
|
<hintgroup hintfn="hint_fn"/>
|
|
</customresponse>
|
|
</text>
|
|
</problem>
|