Things to consider in developing WeBWorK problems with embedded Flash applets
Contents
Applets in the body of a WeBWorK problem
Where is the solution computed?
In WeBWorK
In the applet
Applets in Hints and Solutions
For many types of problems, you may not need an applet in the main part of the problem, but you may want to use one to provide the student with a hint or to help the student understand the solution.
The Flash applets are protected under the following license:
Creative Commons Attribution-NonCommercial 3.0 Unported License.
PG problem file | Explanation |
---|---|
##DESCRIPTION ## understanding derivatives graphically ##ENDDESCRIPTION ##KEYWORDS('derivatives', 'graph') ## DBsubject('Calculus') ## DBchapter('Limits and Derivatives') ## DBsection('Derivatives') ## Date('7/25/2011') ## Author('Barbara Margolius') ## Institution('Cleveland State University') ## TitleText1('') ## EditionText1('2011') ## AuthorText1('') ## Section1('') ## Problem1('') ################################################### # This work is supported in part by the National # Science Foundation under the grant DUE-0941388. ################################################### |
This is the tagging and description section of the problem. Note that any line that begins with a "#" character is a comment for other authors who read the problem, and is not interpreted by WeBWorK. The description is provided to give a quick summary of the problem so that someone reading it later knows what it does without having to read through all of the problem code. All of the tagging information exists to allow the problem to be easily indexed. Because this is a sample problem there isn't a textbook per se, and we've used some default tagging values. There is an on-line list of current chapter and section names and a similar list of keywords. The list of keywords should be comma separated and quoted (e.g., KEYWORDS('calculus','derivatives')). |
DOCUMENT(); loadMacros( "PGanswermacros.pl", "PGstandard.pl", "AppletObjects.pl", "MathObjects.pl", ); |
This is the initialization section of the problem. The first executed line of the problem must be the
The |
# Set up problem TEXT(beginproblem()); $showPartialCorrectAnswers = 1; Context("Numeric"); $ans =Compute("1"); $showSolution = 0; if(time>$dueDate){ $showSolution = 1; } $isit2der = 1; #match first and second derivatives |
This is the problem set-up section of the problem.
The derGraphMatchWW.swf applet requires the student to match three sets of graphs. If |
################################### # Create link to applet ################################### $appletName = "derGraphMatchWW"; $applet = FlashApplet( codebase => findAppletCodebase("$appletName.swf"), appletName => $appletName, appletId => $appletName, setStateAlias => 'setXML', getStateAlias => 'getXML', setConfigAlias => 'setConfig', getConfigAlias => 'getConfig', maxInitializationAttempts => 5, # number of attempts to initialize applet answerBoxAlias => 'answerBox', height => '600', width => '550', bgcolor => '#ffffff', debugMode => 0, submitActionScript => qq{getQE("answerBox").value=getApplet("$appletName").getAnswer() }, ); ################################### # Configure applet ################################### #initialization data - problem setup # $problemSeed - random seed used to setup problem # $isit2der - set to 1 if student must match function # to first and second derivate # - set to 0 if student must match function # to first derivative # $showSolution - set to 1 if $dueDate is passed, 0 otherwise # success - 0 if work not complete yet $applet->configuration(qq{<xml><seed>$problemSeed</seed><isit2der>$isit2der</isit2der> <showSolution>$showSolution</showSolution><stat success="0"/></xml>}); $applet->initialState(qq{<xml><seed>$problemSeed</seed><isit2der>$isit2der</isit2der> <showSolution>$showSolution</showSolution><stat success="0"/></xml>}); TEXT( MODES(TeX=>'object code', HTML=>$applet->insertAll( debug=>0, includeAnswerBox=>1, # reinitialize_button=>$permissionLevel>=10, ))); |
This is the Applet link section of the problem.
Those portions of the code that begin the line with You must include the section that follows The lines The code
When the submit button is pressed the work in the applet is checked via the WeBWorK answer checker. |
BEGIN_TEXT $BR $BR Put the tiles into place, then press 'submit answers'. END_TEXT Context()->normalStrings; |
This is the text section of the problem. The Since the student answers the question within the applet, no answer blank is provided here. |
############################################################## # # Answers # ## answer evaluators NAMED_ANS('answerBox'=>$ans->cmp()); ENDDOCUMENT(); |
This is the answer section of the problem. The pg file compares the answer returned from the applet (either a "0" or a "1") to the correct answer (a "1") and grades the question accordingly. The solution is embedded in the applet and becomes available when the due date has passed.
The |
Useful links:
GraphLimit Flash Applet Sample Problem
GraphLimit Flash Applet Sample Problem 2
Derivative Graph Matching Flash Applet Sample Problem
trigwidget Applet Sample Problem
uSub Applet Sample Problem