CTAT 3.0 Release Notes

14 December 2011

Downloading and Installing

System Requirements

CTAT system requirements are commensurate with those of the Java Runtime Environment. Additional requirements may exist, depending on your authoring environment (Flash, NetBeans, and/or Eclipse).

New users

  1. Download and install CTAT 3.0
  2. Download and install additional software for authoring tutors. (Not sure whether to go with Java or Flash? Read our Java-Flash comparison.)
  3. If you'd like to build interfaces in Java, configure NetBeans.
    If you'd like to build interfaces in Flash, configure the Flash IDE.

Existing Users

  1. Download and install CTAT 3.0.
  2. If you use NetBeans to build interfaces with CTAT, remove all CTAT widgets from NetBeans and add the new ones.
    If you use Flash to build interfaces with CTAT, re-add the CTAT Flash components to the Flash IDE.
  3. Upgrade any existing interfaces as described below.

What's New in CTAT 3.0


New ActionScript 3.0 components for creating tutorable Flash interfaces

This release is our first to contain ActionScript 3.0 components. We owe a special thanks to Erik Harpstead and Borg Lojasiewicz for their work on this.

Some benefits of using the AS 3.0 version of the components include:

  • Consistent parameters and customization options across the components
  • The AS 3.0 components should be faster than their AS 2.0 counterparts
  • Compatibility with Flash CS5 and newer applications developed in AS 3.0

AS 3.0 versions of the following components are included:

  • CommButton
  • CommCheckBox
  • CommComboBox
  • CommDoneButton
  • CommHintButton
  • CommHintWindow
  • CommImageButton
  • CommRadioButton
  • CommShell
  • CommSkillWindow
  • CommTextArea
  • CommTextInput
  • CommVideo

To use them, install CommComponentsAS3.mxp (from CTAT/Flash) using the Adobe Extension Manager.

Note: you can have both the AS2 and AS3 components installed but you can not use them in the same tutor together.

Undo/Redo in text fields of CTAT dialogs

Use Control + Z (on Windows) or Command + Z (on Mac) to undo typing in any of the CTAT dialogs (e.g., Edit Student Input Matching, Edit Hint and Success Messages, Edit Skill Name). Use Control + Y or Command + Y to redo typing.

Tutor Feedback Policies

Three types of feedback policies now exist, and can be chosen from the Graph > Feedback Policy menu. A feedback policy determines if and when tutor feedback (hints and correct/incorrect indications) is displayed to the student.

  • With the default setting, Show All Feedback, the tutor displays feedback immediately as the student works through each step.
  • With Hide All Feedback, the tutor never displays feedback. This can be useful, for instance, in quizzes or tests.
  • With Delay Feedback, the tutor will display feedback only when the student presses the Done button, and then only if the problem is incomplete because some steps are incorrect or left undone. No hints will be displayed, but correct/incorrect indications will be shown for all steps done so far.

Confirm Done

A feature related to feedback policies can now be set from the Graph > Confirm Done menu. When the Feedback Policy is Hide All Feedback, so that no hints or correct/incorrect indications appear, students can inadvertently click the Done button and exit the problem prematurely. Setting Confirm Done will make the user interface prompt students whenever the Done button is pressed, to allow them to remain in the current problem in case they decide they are not yet really finished.

Preliminary support for rule-based (Jess) tutors with the Tutoring Service

We have updated CTAT’s Tutoring Service and the TutorShop platform with basic support for running a Jess tutor on the web. Please contact us if you are interested in trying this option.

New author functions

The following functions are now available for use in example-tracing tutors:

  • last(Object arg, ...) simply returns its last argument. It is useful, in particular, when used in conjunction with the functions below.
  • assign(String name, Object value) can be used to set arbitrary variables for use in future steps. This function should be used in the Replace Student Input formula shown in the Edit Student Input Matching dialog. For example: the result of last(assign("p1", input), input), when used in Replace Student Input is this: if this step was successful, save the student input in p1 and simply redisplay that same input unchanged.
  • goToStartState(), also callable from the Replace Student Input field, takes the problem back to the start state. For example, last(goToStartState(), -1), placed in the Replace Student Input field, would move the student to the start state. Note: Do NOT call goToStartState() from a matcher formula as this will lead to an infinite loop (or a very slow tutor).

General Bug Fixes / Changes

  • CTAT2679 – Additional diagnostics needed in Jess Console when WME file not found. If CTAT didn’t load facts from a WME file, this message is shown: “WME file not found, creating instances from interface definitions” in the Jess Console.
  • CTAT2680 – Incorrect choice among buggy links.
  • CTAT2681 – Disable the “Open Student Interface” menu item and hotkey when running CTAT for Flash.
  • CTAT2700 – Min/max traversals are set to 1-1 in the tools even if a mass production variable is specified.
  • CTAT2800 – In File > Open Graph chooser, only show .brd files by default.
  • Various bug fixes for the the CommNumberBar and CommDragNDrop components
  • A fix for the bug in AS 2.0 Flash tutors where the clicking and selecting of text (followed by tab or enter) will not trigger the tutor to evaluate the new text.
  • Improved look and feel of the authoring tools.

Note: Behavior graphs created with a version of CTAT older than 2.12 contain <DorminName> elements, which are no longer recognized. Unfortunately, we cannot support DorminName any longer. These elements in the BRD file need to be replaced with <CommName> elements, which can only be done with a text editor.

Known Issues


  • CTAT2314 – Skill pKnown values are cumulative at author time
  • NetBeans 6.7.1: class files are deleted if all jar files required for examples are not specified. Workaround is to add all jar files required by the examples as described here.
  • The less-than sign does not display properly in CTAT’s separate hint window (but it’s fine in the integrated hint window).
  • DorminPicture does not provide any feedback message to the student when a step is out of order.


  • CTAT2200 – Tabbing though Flash text components resubmits student input in suppress-feedback mode
  • CTAT2349 – Flash: CommCheckBox isn’t checked if ‘selected’ parameter = true. Workaround is to set a state as the start state.
  • CTAT2433 – Flash: CommRadioButton isn’t “selected” in the start state
  • The component-specific methods The Correct Method, The InCorrect Method, and The Reset Method do not work when Suppress Student Feedback is turned on. The solution is to use a new CommShell parameter, MonitorLog, which will receive tool_messages and tutor_messages as they are logged.
  • In a Flash cognitive tutor, creating a start state no longer automatically generates working memory facts and templates for some components.
  • Flash components Jumble, Multiple Selection, and Media Multiple Selection have some known issues. Contact us if you’re interested in using these components.
  • Flash widgets can't be modified in Set Start State mode.
  • CommCombobox does not work with some languages such as Japanese. The current workaround is to use HTML entities for these characters in these languages.

Both Flash and Java

  • Inconsistent behavior when clicking on a state (CTAT2249).
  • Docked windows sometimes aren't loaded on Mac (CTAT2198)
  • Demonstrating a step in an unordered graph that matches an existing step does no create a new link in the graph (CTAT2210). The workaround is to temporarily change the graph to 'ordered' to demonstrate the step.
  • In graphs with Suppress Student Feedback enabled, success and error-feedback messages are not displayed, but they are logged. The feedback should not be logged, since it never appeared to the student.
  • Current state (a node with bold text) in an unordered graph is incorrect for Jess tutors (CTAT1927).
  • The JavasrcInstaller, which is used to set up source documentation for Java functions in the Formula Wizard, does not extract sources on the Mac. To do this manually, see Installing the Formula Wizard.
  • The enforceDone attribute of a behavior graph cannot be set from the CTAT user interface; it can only be set in the behavior graph XML using a text editor.

Upgrading an Interface to CTAT version 3.0

If you would like to use new CTAT widgets or components in an existing interface, you will need to upgrade that interface as described below. If you do not feel comfortable upgrading your interface, contact us and we will upgrade your interface.


  1. Backup your existing projects directory to a separate folder on your hard disk.
  2. Ensure that you've completed steps 1–3 listed above.
  3. Launch NetBeans, and view your project file hierarchy (Window > Files).
  4. Right-click on the folder containing the interface you'd like to upgrade, and click New TutorTemplate.java. In the "File Name" field, specify a name for this file that is anything but the name of the interface you're upgrading. All other fields can be left unchanged. It is not necessary to create a new subdirectory of Projects by modifying the Folder field, although you can if you prefer to do so.
  5. Press Finish.
  6. Expand the folder that contains the interface you're upgrading. You should see the .java and .class files for the interface you're upgrading, as well as the new .java file with the name you specified in the previous step.
  7. Open both the new file and original interface file by double-clicking each of their names in the Files panel.
  8. You should see both interfaces in "Design" mode. If you do not, click the button at the top titled "Design" for each interface. The new interface should contain only a blank panel.
  9. For your original interface, view the widget objects in the interface using the Component Inspector (Window > GUI Editing > Inspector). Within the Inspector panel (located on the bottom left of the NetBeans window by default), expand the TutorPanel object. This object has a blank icon. You should see a number of widgets appear within it.
  10. Select all of the interface widgets. On Windows, this can be accomplished by clicking the first widget inside TutorPanel, then while pressing and holding shift, clicking the last widget.
  11. Copy your widgets (CTRL+C on Windows, COMMAND+C on Mac).
  12. View the new interface that you created in step 4. Select the JPanel in the Inspector, and paste the widgets (CTRL+V on Windows, COMMAND+V on Mac). You now have a working CTAT 1.5-compatible interface.
  13. Run your new interface (SHIFT+F6) to verify that the upgrade procedure worked. If you encounter an error and the file will not run, contact us for assistance.


Note:To upgrade your ActionScript 2.0 file to use the latest ActionScript 2.0 components, follow the directions below. Unfortunately, there is no automated upgrade path from a tutor with AS 2.0 components to one with 3.0 components. The only way to do this is to recreate your student interface in a new AS 3.0 document using the AS 3.0 components.

  1. Install the new CTAT Flash components as described on the Flash configuration page.
  2. Open an existing Flash interface (a file with extension .FLA) in the Flash IDE.
  3. For each component type in the interface that you would like to upgrade, drag that component from the CommComponents section of the Components panel onto the Flash stage.
  4. At the Resolve Component Conflict prompt, choose Replace existing component and press OK. All instances of that component will be upgraded to the new version.
  5. Delete the extra component that appeared on the stage.