Search CTAT

CTAT 2.5.1 Release Notes

24 November 2008

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

Note: The CTAT installer is now compatible with Windows Vista.

New users

  1. Download and install CTAT 2.5.1
  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. Uninstall CTAT.
  2. Delete the file brPrefs.xml from the folder in which you previously installed CTAT.
  3. Download and install CTAT 2.5.1.
  4. If you use NetBeans to build interfaces with CTAT, remove all CTAT widgets from NetBeans and add the new ones. If you had a very old version of CTAT (pre-1.5), remove the tutor template from NetBeans and add the new one.
    If you use Flash to build interfaces with CTAT, re-add the CTAT Flash components to the Flash IDE.
  5. Upgrade any existing interfaces as described below.

What's New in CTAT 2.5.1

CTAT 2.5.1 is primarily a bug-fix release.

General Changes

  • Tutor examples are included in this release.
  • Improved hint-after-error policy. When the student makes an error and then asks for a hint, the hint should be given on the step on which the error was made (unless that would not be a valid next step to be working on). The rationale for this change is as follows: if the student has just attempted a valid step, received an error indication and then asked for a hint, then the tutor should provide a hint that addresses that error. The current policy would provide a hint based on the currently-focused component, but there’s a great chance that the cursor is there only because the student tabbed out of the previous component to submit that prior wrong answer. The hint policy algorithm is:
    1. record the last student selection and tutor result,
    2. upon a hint request,
      1. if the student’s last attempt was an incorrect (but not an out-of-order) attempt,
      2. then use it to bias the hint selection
    3. a second hint request clears the bias.

    A future version of CTAT will implement this policy for Cognitive Tutors and add another exception to the policy: if the student explicitly refocuses, use the new focus to provide the hint.

  • Millisecond timestamps in logging. Both Java and Flash tutors now log timestamps for “tool” and “tutor” messages with millisecond-level precision. In data exported from the PSLC DataShop, the new timestamps will appear in 2 new columns tool_event_time and tutor_event_time, with the values in the format yyyy-mm-dd HH:MM:SS.sss UTC. For example:
    > tool_event_time
    > 2008-10-07 19:47:39.566 UTC
  • Tutor-performed steps will now use selection, action, and input from the “matcher” column of the Edit Student Input Matching dialog whenever the matcher is either the Exact matcher or the Formula matcher with an operator of ”=”. In all other cases, tutor-performed steps will use demonstrated values instead of matcher values. (CTAT uses the same rule whenever you click on a state in the behavior graph.)
  • UpdateIcon for DorminLabel now works for tutor-performed steps, allowing you to create a step that changes an image in a Java tutor at student-time.
  • “Incorrect action not in model (untraceable error)” link type works again
  • Wildcard matching on “selection” now works
  • The DorminList component allows the user to edit the contents of the list dynamically and save it with the start state in a graph. Now the start state is displayed in the interface when the graph is loaded.
  • Fixed a regression affecting example-tracing tutors where the example tracer failed to match incorrect-action links in the presence of groups of steps.
  • Changes made to any “demonstrated” values in the Edit Student Input Matching dialog are now saved when saving the behavior graph.
  • The skill matrix now works for graphs that have groups of steps in them.
  • Feedback to the student (“tutor advice”) is now logged for Suboptimal Action (Fireable Bug) steps.
  • Saving Jess facts (File > Save Jess Facts) no longer silently saves Jess templates too. To save Jess templates, select File > Save Jess Templates.)
  • The function algebraicMatches() now has better documentation in the Formula Builder and works more consistently.
  • Removed red highlighting of regular expression special characters from the Edit Student Input Matching dialog.
  • The foil6 library used by SimStudent now has executable permissions so SimStudent works
  • Fixed a bug where if there was a production rules file in the cognitive model folder, but no facts or templates had yet been defined, creating a start state created interface facts but no “problem” fact. The “problem” fact is now properly created.
  • In Cognitive Tutors, special characters such as ”++”, “>=”, ”-”, and ”=” are now automatically wrapped in double-quotes in the auto-generated working memory file.

Flash-specific changes

  • CommTextArea, CommTextInput background color is now more easily configurable in Flash CS3. The background color of these components defaults to white.
  • CommTextArea’s “html” parameter now enables HTML rendering within the component.
  • CommShell values for correct/incorrect/hint color no longer default to black in Flash CS3. The default value for ‘Correct Color’ is green (#00bb00), for ‘Incorrect Color’ is red (#ffff00), and for ‘Hint Color’ is yellow (#ff0000).

Known Issues


  • The less-than sign does not display properly in CTAT's separate hint window (but it’s fine in the integrated hint window).
  • In Cognitive Tutors, skills (rule names) are not logged.
  • Tutor-performed actions for Cognitive Tutors are not fully supported; however, a workaround exists.
  • DorminPicture does not provide any feedback message to the student when a step is out of order.
  • If a graph contains a link that is not represented in the cognitive model, a No Model warning dialog no longer appears at author time when input matches that link.


  • 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 workaround 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.
  • Flash components Jumble, Multiple Selection, and Media Multiple Selection are buggy. To use any of these components, download the CommComponents bundle from the CTAT 2.2 release and use these components with the 2.2 version of the CommShell component.
  • The Flash component CommTextArea’s text turns from black to gray (instead of vice versa) when creating a start state.
  • 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.
  • Logging custom fields does not work from Flash using CommLoggingLibrary.


  • 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.
  • The JavasrcInstaller, 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.
  • Very large behavior graphs can take a while to open in CTAT.
  • 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 2.5.1

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–4 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 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.


  1. Install the CTAT 2.5.1 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 in the interface that you would like to upgrade, drag that component from the CommComponents section of the Components tab 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.