Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Table of Contents
- Mass production workflow
- Enter variables to create a BRD (behavior graph) template in CTAT
- Create a problems table in CTAT
- Input problems into the problems table
- Merge the problems table and BRD template into mass-produced BRDs
- Test and Revise
CTAT provides the capability for 'mass production' of problems for Example-Tracing tutors. Using mass production, you can save time by authoring a large set of problems in a spreadsheet. The CTAT authoring tool then generates a behavior graph for each problem defined in the spreadsheet.
Mass production workflow
Mass production generally follows the process outlined below:
Figure 1. Mass production workflow
In this workflow, you will:
- Enter variables to create a BRD (behavior graph) template in CTAT
- (Optional) Define variables in the HTML student interface file
- Demonstrate variables in the completed student interface
- Create a problems table in the Authoring Tools
- Input problems into the problems table via Excel or a plain text editor
- Merge the problems table and BRD template into mass-produced BRDs in CTAT
- Test and Revise
If you are using a prefabricated spreadsheet (problems table) for authoring, skip to step 3 - Input problems into the problems table.
Enter variables to create a BRD (behavior graph) template in CTAT
CTAT allows you to define variables for mass production in the behavior graph and the student interface. A mass-production variable in CTAT is defined as a string beginning with
%( (percent sign, left parenthesis) and ending in
)% (right parenthesis, percent sign). For example, you might define
%(given_denom1)% as a variable for fraction addition.
You can use variables to
- configure components to have problem-specific settings in the start state (before the start-state node is created in your graph), and
- demonstrate problem solving steps in the student interface (after the start-state node is created in your graph).
When you want to use a variable to configure the initial settings of a component, how you do so depends on the component. For components that accept text input, such as CTATTextArea, CTATTextInput, and CTATTable, you can launch the interface from the authoring tools and enter a variable name (rather than actual student input) as the value in the text component while in Set Start State mode. But for components that do not accept text input, such as CTATComboBox or CTATTextField, you can configure their initial settings by using variables in the component attributes or by adding tutor-performed steps to the beginning of the graph.
Define variables in the HTML student interface file
Entering variables in the student interface is useful for configuring components that cannot have their initial values set by demonstration when connected to the authoring tools. With HTML interfaces you can specify variables in your interface. For example, if you used a CTATTextField component in your interface and the text needs to be different for each problem, you can replace the text for the component with a mass-production variable.
Using the CTAT HTML Editor:
Figure 2. Specifying mass production variables in your interface
Using a text editor:
<div id="statement" class="CTATTextField">%(problem_statement)%</div>
When you create a start state for your mass-production template graph with your interface connected to the authoring tools (in section Demonstrate variables in the completed student interface), the variables in the interface are stored in the graph. Merging your template graph and problems table to generate your final .brd files replaces the variables stored in the graph with values from the problems table. The variables in your interface are over-ridden by the values in the final .brd when you connect the interface and graph, so that the values in the graph display instead of the variables.
Setting a mass production variable for the items in a combo box in a text editor.
<div id="myComboBox" class="CTATComboBox" data-ctat-labels="%(list-of-values)%"></div>
An alternative to entering variables directly in the student interface is to use tutor-performed steps to configure components with problem-specific settings. Tutor-performed steps that immediately follow the start-state node are executed when the interface is opened in a browser. For example, given a CTATComboBox with ID set to "myComboBox" you might need to set the items (and number of items) to vary based on the problem. To configure the items you could add a link after the start state with the Selection set to "myComboBox", the Action set to "setLabels", and the Input set to a variable such as
%(list-of-values)%; during mass production, the variable can be replaced with a comma-separated string of values (e.g.,
"-------,positive,negative"), which generates a list of three values in the component.
Figure: Setting the items in a combo box from a TPA
Refer to the documentation for individual HTML components for details on using mass-production variables and the interface actions that are supported for tutor-performed steps.
Demonstrate variables in the completed student interface
In this phase of mass production, you will demonstrate behavior for your Example-Tracing tutor using a completed interface. Instead of authoring the content of hint and error messages, skills, and correct and incorrect student input, you will enter variables for these values. For the following steps, focus on making a behavior graph that can apply to multiple similar problems.
The following steps describe authoring a new behavior graph template from scratch. To modify an existing behavior graph, see To modify an existing behavior graph for use with mass production below.
To create a new behavior graph template:
With a Graph window open and in Demonstrate Mode, open the student interface for which you'd like to create multiple problems.
For each value in your interface that varies by problem, enter a descriptive variable name. A variable is defined as a string beginning with
%((percent sign, left parenthesis) and ending in
)%(right parenthesis, percent sign).
Tip: Always use descriptive variable names. They will be helpful in the next phase when you enter your problem data into a spreadsheet.
When your start state is complete, select Create Start State from the Graph menu.
(Optional) Create links for "unevaluated" tutor-performed actions to configure any components that can't be configured by demonstration.
Demonstrate correct student actions for the problem, entering variables instead of correct text. For actions that don't allow the entering of a variable into the interface—selecting a combo box item, for example—select any item to create a state in the behavior recorder; then right-click the label on the link to that state and select Edit Student Input Matching (see figure 3). In the input field, enter the variable(s) that will be filled in later in the problems table.
Tip: When demonstrating, focus on making a behavior graph that can apply to multiple similar problems.
Figure 3. Specifying mass production variables in the Edit Student Input Matching dialog
Continue adding to the behavior graph, demonstrating correct, incorrect, and alternative paths.
Embellish the graph with hint, error, and success messages, and skills, using variable names where appropriate.
Figure 4. Using mass production variables in hints
To modify an existing behavior graph for use with mass production:
- If there are values in the initial state of your tutor that vary by problem, modify the start state of the problem to use variables.
- Edit links in the graph using the Edit Student Input Matching dialog. In the selection, action, or input fields, enter variables as desired.
- Edit hint, error, and success messages, and skills, using variable names where desired.
Create a problems table in CTAT
You are now ready to create a problems table—a tab-delimited spreadsheet for authoring multiple similar problems.
We recommend creating a separate directory in your package folder to hold your your mass-production template BRDs and problems tables. For example, given package FractionAddition, you might create a subfolder named MassProduction.
Figure 5. Example directory structure for mass production
To generate a problems table:
- Save the current behavior graph template by choosing Save Graph from the File menu.
- Create a problems table from the current graph with the command Tools > Mass Production > Create Problems Table.
- In the Create Problems Table dialog, the current graph name is populated in the field. If you'd like to select a different BRD template, browse for and select the BRD template.
- Click Create.
- Select a location to save the problems table file and name the file without an extension (the TXT extension will be added automatically). Your problems table should now exist in the directory you specified above. If you receive an error, you may need to examine your behavior graph for typos (e.g., a variable name that starts with
%(but does not end in
)%) and re-create the problems table.
Input problems into the problems table
In the last step you created a problems table—a tab-delimited text file editable with Excel—to store problem information. In this phase you will author your problems by inputting data into the file. While the file is tab-delimited, and can therefore be edited with a text editor, we recommend that you use a spreadsheet program to enter problem data.
In a spreadsheet editor, your table should look similar to the one depicted in the figure below.
Name your problems in the first row of the problems table; each BRD that is generated will use the first cell of its column for the behavior graph name.
Figure 6. A sample problems table with problem names defined in the first row and variable values in all other rows.
In the spreadsheet, the first column lists the variables from your BRD Template, while each column after the first represents a problem. It is important to name your problems in the first row of the problem table, as each BRD that is generated will use the first cell of the column for its name.
When you are done inputting problem data, save your problems table.
When saving from Excel, you may get a dialog stating that your file "may contain features that are not compatible with Text (tab delimited). Do you want to keep the workbook in this format?" Choose Yes to preserve the plain text format.
Merge the problems table and BRD template into mass-produced BRDs
In this phase, you will generate BRD files from the BRD template and problems table. In Microsoft Office, a similar step is called "mail merge". Like mail merge, this step takes the problem data you inputted and substitutes it for variables throughout the BRD template.
To merge the problems table and BRD template:
- Launch the behavior recorder and select Tools > Mass Production > Merge Problems.
- In the first field, browse for and select the BRD template file.
- In the second field, browse for and select the problems table.
- Click Merge. You will be prompted to browse for and select a folder to store the mass-produced BRDs.
- Select a folder to store your mass-produced BRDs (typically the FinalBRDs folder of your package).
Blank cells in the problems table can cause the merge process to fail. For blank values, use the text "NA".
Test and Revise
With the student interface and behavior recorder in Test Tutor mode, test the mass-produced BRDs by opening them and attempting to solve the particular problem. Revise the problems table if necessary. If you need to change the variables or structure of the behavior graph, edit the BRD template in the behavior recorder as described in Enter variables to create a BRD (behavior graph) template in CTAT. If you make changes to the graph, both steps two and three above will need to be repeated. Remember to add any new variables to the problems table—do not overwrite this file from the behavior recorder—and fill out the blank cells in the table accordingly. For unnecessary cells, use the text NA.
Be careful not to overwrite your existing problems table. If you have filled in your problems table, overwriting it via the Create Problems Table command will erase your work. To get around this issue, add or remove variables in the problems table to reflect the variables present in the graph template. If you're uncertain which variables are present, generate a new problems table with a different name and compare it to the original.