CTAT 3.1 Release Notes

30 July 2012

Downloading and Installing

System Requirements

CTAT requires the Java Runtime Environment (JRE), version 6 or greater. Additional requirements may exist, depending on your authoring environment (Flash and/or Eclipse). Eclipse requires the Java Development Kit (JDK).

New users

  1. Download and install CTAT 3.1
  2. Download and install Flash or Eclipse with WindowBuilder for authoring tutors. (Not sure whether to go with Java or Flash? Read our Java-Flash comparison.)
  3. If you decide to build interfaces in Java, configure Eclipse and WindowBuilder.
    If you decide to build interfaces in Flash, configure the Flash IDE.

Existing Users

  1. Download and install CTAT 3.1.
  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.1


  • CTAT now supports undo/redo! Look for these under the new “Edit” menu, or use the conventional Ctrl/Command+Z (undo) and Ctrl/Command+Y (redo) keyboard shortcuts.
  • Connection icon in the authoring tools tells you whether or not a Flash or Java student interface is connected to the tools
  • Simplified the process of opening a behavior graph (.brd) file by removing the “Problems Organizer” and making double-clicking of .brd files work on Windows and Mac OS X
  • Better support for UTF-8 in Flash tutors: Unicode characters encoded as &#NNN; entities (NNN are decimal digits) in hint, error, and success messages in the behavior graph (.brd) file weren’t correctly encoded as UTF-8 characters when written to the socket that’s connected to the Flash-based student interface. The fix explicitly sets the output stream’s encoding to UTF-8.
  • New actor option for a step in an example-tracing tutor, “Tutor (unevaluated)”, which means that the tutor will perform the step but will not evaluate the specified input or lock the widget.
  • Ability to customize the hint policy of an example-tracing tutor
    • Always Follow Best Path—use the graph structure to determine which hint to provide
    • Bias Hints by Current Selection Only—influence which hint to provide by considering the student’s current selection in the tutor (e.g., where their cursor is)
    • Bias Hints by Prior Error Only—influence which hint to provide by considering the prior error the student made, when applicable
    • Use Both Kinds of Bias—default policy. Use both current selection and prior error to influence which hint to provide. This is the hint policy CTAT used prior to the introduction of this setting.
  • Ability to edit the “out of order” message that appears when a student works on a step that the graph’s ordering constraints do not allow. To edit this message, select Graph > Edit Out of Order Message…
  • CTAT now displays a warning when saving a .brd file with the same name as an existing file
  • Improved and condensed the layout of the “Edit Student Input Matching” dialog

General Bug Fixes / Changes

  • Referencing an unset variable no longer sets its value to “null”
  • Support word-wrapping text in JCommTextArea via property
  • WebStart build files are now up-to-date
  • Fixed bug affecting Cognitive Tutor (Jess) mode in which the Conflict Tree tool would not update after each step. CTAT should now update the Conflict Tree upon tracing the last link in the path and then continue to show it.
  • Fixed a bug affecting the Java AdditionChaining cognitive tutor (and possibly others), in which the hint button’s color was remaining yellow (“waiting for tutor result”) after the hint had been delivered.
  • startColor and foreground are now available as general properties of the JCommWidgets
  • We now consistently use full-featured “Open File” dialogs on Mac OS X
  • Fixed a bug where docked windows sometimes wouldn’t load on a Mac
  • Removed the obsolete “CTAT Listener” Eclipse plugin
  • Removed from CTAT_Options the following author-visible properties: useSetStartStateMode, useDemonstrateMode, useTestTutorMode. This change will require authors to recompile Java student interfaces, but only authors that actually manipulated these properties would need to change their source code.
  • Fixed a bug where opening a behavior graph before a Java student interface resulted in the author mode being set to “Set Start State”
  • Implemented more consistent behavior when clicking on a state—always clear the solution state, return to the start state, and follow the best path to the clicked-on state

Flash Changes

ActionScript 2.0 components

  • Fixed a bug where changing the font size of a CommLabel would work on Windows but not on a Mac
  • Added a “Tutor this Widget” parameter for CommImage. CommImage will send untutored actions when this parameter is turned off.
  • CommComboBox now uses CommName in start state XML
  • CommLabel is now settable from the start state
  • Appearance of CommShell on the stage has been updated
  • Updated CommSimpleAudioButton and fixed a bug where stopping the audio did not demonstrate a step
  • Updated CommVideoPlayer so that captions display even if the ‘Auto Play’ parameter is true
  • Step ID is no longer missing from logging messages when the user clicks previous/next hint
  • CommHideableHintWindow can now be resized
  • Improved placement of dropped components in CommDragNDrop
  • Dragged components that are used by CommDragNDrop no longer act like tutorable components
  • The ‘Confirm Done’ dialog, shown when the behavior graph has the ‘Confirm Done’ option selected in the Graph menu and the student presses the done button, now closes properly if all input is correct
  • lock and unlock actions now work via tutor-performed action using “Tutor (unevaluated)” as the action type
  • Fixed a bug where a font size change to CommLabel was not working properly
  • Fixed bugs affecting the highlighting and locking of CommRadioButton
  • Fixed a bug where a skill bar that visually reached 100% would drop below 100% upon loading the next problem
  • Implemented consistent behavior for using the SetText and UpdateTextArea actions for text input components.
  • Changed CommImageButton so that the “Default Label” will only be displayed if the image is not found.
  • A success message on Done step is now properly displayed in the hint window

ActionScript 3.0 components

  • CommNumberLine, a new component for ActionScript 3.0, is included in this release
  • Appearance of CommShell on the stage has been updated
  • CommComboBox text will now turn red on incorrect and green on correct, instead of highlighting the entire component
  • Fixed a bug where the CommButton ‘Text Alignment’ parameter had no effect
  • CommCheckBox now has a ‘Group Name’ parameter
  • Fixed a bug where CommRadioButtons wouldn’t unlock correctly in suppress feedback mode
  • Revised logging of next/previous hint requests
  • Fixed a bug where selecting a CommRadioButton before creating the start state would not show a visual indication that the button was selected
  • Implemented consistent behavior for using the SetText and UpdateTextArea tutor-performed actions for text input components

Known Issues


  • CTAT2314 – Skill pKnown values are cumulative at author time
  • 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.

Flash (AS2)

  • 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.
  • 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 the 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

  • 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.
  • 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.
  • On Mac OS X, double-clicking a behavior graph (.brd) file will opens the tools but not load the graph—unless the tools are already open.

Upgrading an Interface to CTAT version 3.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.

Java (NetBeans)

  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.