// Step: The title that the student sees in overview/progress panel // Type: specifies whether this is a recursive script or wizard // Location: specifies where to find the script; Used by WizardFactory to determine the wizard to use // and by ScriptModel to find the appropriate script // For Location Step: // Section: The section in code in which the student must locate it // Action: The value of Statement in specification that points to what the student should have selected // e.g., could be Subsection, Prompt or Input for variable input // Modifies: The name of the attribute modified in problemSpec which can be used by a subsequent step // to conidtionally pick a course of action // Select the code that should be enclosed in the loop // In 'Input' section, ask student to 'select' the block for 'validating' using 'wizard' Step: Select the validation code that must be repeated Type: Wizard Location: select Section: Input Action: Validate // Reveal: None // Now, have them write the shell // In 'Input' section, ask for 'shell' to 'validate' using 'enclosing_codereveal' 'wizard' Step: Write the shell of do-while loop Type: Wizard Location: enclosing_codereveal Section: Input Action: Validate Reveal: Shell // Write the correct condition Step: Write the expression for correct value of input Type: Wizard Location: codereveal Reveal: Condition before negation // Now, negate the condition Step: Negate the expression for correct value of input Type: Wizard Location: codereveal Reveal: Negated condition // // Write action // Step: Write the action of do-while loop // Type: Wizard // Location: codereveal // Reveal: action // // Write the update, if any // Step: Write the update of do-while loop // Type: Wizard // Location: codereveal // Reveal: update