Mass Production - CMUCTAT/CTAT GitHub Wiki

Mass Production

Table of Contents

  1. Mass production workflow
  2. Enter variables to create a BRD (behavior graph) template in CTAT
    1. Define variables in the HTML student interface file
    2. Demonstrate variables in the completed student interface
  3. Create a problems table in CTAT
  4. Input problems into the problems table
  5. Merge the problems table and BRD template into mass-produced BRDs
  6. 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:

mass production image

Figure 1. Mass production workflow

In this workflow, you will:

  1. Enter variables to create a BRD (behavior graph) template in CTAT
    1. (Optional) Define variables in the HTML student interface file
    2. Demonstrate variables in the completed student interface
  2. Create a problems table in the Authoring Tools
  3. Input problems into the problems table via Excel or a plain text editor
  4. Merge the problems table and BRD template into mass-produced BRDs in CTAT
  5. Test and Revise

Note

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.

Note

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:

  1. With a Graph window open and in Demonstrate Mode, open the student interface for which you'd like to create multiple problems.

  2. 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.

  3. When your start state is complete, select Create Start State from the Graph menu.

  4. (Optional) Create links for "unevaluated" tutor-performed actions to configure any components that can't be configured by demonstration.

  5. 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

  6. Continue adding to the behavior graph, demonstrating correct, incorrect, and alternative paths.

  7. 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:

  1. 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.
  2. Edit links in the graph using the Edit Student Input Matching dialog. In the selection, action, or input fields, enter variables as desired.
  3. 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.

Note

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:

  1. Save the current behavior graph template by choosing Save Graph from the File menu.
  2. Create a problems table from the current graph with the command Tools > Mass Production > Create Problems Table.
  3. 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.
  4. Click Create.
  5. 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.

Important

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.

Important

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:

  1. Launch the behavior recorder and select Tools > Mass Production > Merge Problems.
  2. In the first field, browse for and select the BRD template file.
  3. In the second field, browse for and select the problems table.
  4. Click Merge. You will be prompted to browse for and select a folder to store the mass-produced BRDs.
  5. Select a folder to store your mass-produced BRDs (typically the FinalBRDs folder of your package).

Tip

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.

Caution

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.

Back to top

Next >> Using Formulas

⚠️ **GitHub.com Fallback** ⚠️