Search CTAT

CTAT 2.10 Release Notes

23 September 2010

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 2.10
  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 2.10.
  2. 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.
  3. Upgrade any existing interfaces as described below.

What's New in CTAT 2.10


  • Variable table viewer
    • Can be used to view variables to assist in writing formulas
    • Can be used to view variables while setting the start state (useful for Flash)
  • NtpClient (Flash only): Flash tutors now log a custom field with each transaction that stores the time as provided by the server using the Network Time Protocol (NTP) standard. This is useful for synchronizing the times of interactions between student and tutoring system with data collected using another system (e.g., data collected on hand-helds regarding student affect).
  • New functions for use in formula matching
  • Untutored actions are now logged by components that implement that functionality—CommPieChart, CommNumberBar, and CommJumble.
  • New components: CommPieChart and CommLabel
  • Flash tutor templates in {CTAT}/Flash/Templates. These templates are generic Flash files that are pre-configured to work well with CTAT. For more information, see {CTAT}/Flash/Templates/Readme.txt
  • CommNumberBar changes
    • Added option: Cursor Marker Visible - toggle that determines if a dot/line/etc. follows the mouse when it is over the number line.
    • Added untutored action messages when partitioning is changed.
    • Many bug fixes.
  • Updated Jess rules for fraction addition cognitive tutor example
  • Online function documentation for writing formulas

General Bug Fixes / Changes

  • CTAT2152 – Current state resets to start state after tutor-performed step
  • CTAT2434 – Horizontal lines don’t display in Java FractionAdditionTutor interface
  • CTAT2425 – Action label tooltip should distinguish between no hints and the default hint
  • CTAT2422 – Rename State dialog should provide default name
  • CTAT2421 – Hint window should be cleared when input focus shifts
  • CTAT2429 – Incorrect link from start state fails to match
  • CTAT2414 – TPA does not update variable table correctly
  • CTAT2415 – Bug in skill updating (i.e., knowledge tracing)
  • CTAT2425 – Action label tooltip should distinguish between no hints and the default hint
  • CTAT2440 – Server-side logging logs skill with no probability attribute for hint after error. CTAT will now calculate probability only on the 1st attempt on each (unique) step. Hence, if there’s already an error on step 7, then a hint request on step 7 shouldn’t calculate again.
  • CTAT2199 – Tutor doesn’t reconnect to the tutoring service if the same session ID is used – Can’t recreate.
  • CTAT1805 – Problem name in Java FractionAddition example is set incorrectly in .wme
  • CTAT2077 – Group Editor popup menu disappears on the Mac
  • CTAT2095 – Formula on selection (= operator) is not evaluated when testing (Flash interface)
  • CTAT2434 – Horizontal lines don’t display in Java FractionAdditionTutor interface) Removed AbsoluteLayout dependency from interface and removed obsolete AbsoluteLayout.jar from AuthoringTools/java/lib.
  • CTAT2436 – Formulas aren’t evaluated in bug and success messages in tooltip
  • CTAT2437 – Allow mass production variables in Range Match
  • CTAT2438 – Server-side logging logs an extra tutor message with no transaction ID on replace input
  • CTAT2439 – Server-side logging does not log multiple skills on a link
  • CTAT2500 – No relational operator in action label tooltips for formula matchers

Flash Bug Fixes / Changes

  • CTAT2284 – Pressing tab moves focus to hidden components instead of skipping them
  • CTAT2348 – Flash: CommMultipleSelection ‘Color the Widget when Graded’ parameter has no effect
  • CTAT2352 – Flash: CommComboBox Correct/Incorrect methods are executed twice
  • CTAT2353 – Flash: CommDoneButton Reset method is executed twice
  • CTAT2358 – Flash: CommJumble turns red or green if ‘Color the Widget’ = false
  • CTAT2359 – Flash: CommRadioButton Incorrect/Reset methods are executed twice
  • CTAT2361 – Flash: CommScore ‘Background Color’ parameter doesn’t work
  • CTAT2365 – Flash: CommTextArea ‘Disabled Background Color’ parameter had no effect
  • CTAT2366 – Flash: CommTextInput ‘Disabled Background Color’ parameter has no effect
  • CTAT2368 – Flash: CommTextInput start state text color is gray when ‘Disabled Text Color’ is set to black
  • CTAT2369 – Flash: CommTimer ‘Background Color’ parameter doesn’t work
  • CTAT2372 – Flash: for movieclip within a tutor, grading doesn’t occur on Tab or Enter. Solution is to use unique instance names for components, specify a tab order, include the CTATAPIDistribution component, and assign the following ActionScript class to the movieclip containing components: edu.cmu.hcii.ctat.CTATComponentContainer
  • CTAT2382 – CommImageButton, other buttons disappear after scrim comes down (Chrome, possible other browsers)
  • CTAT2391 – Flash: CommTable default start state color should be black
  • CTAT2396 – Flash: changing the font size of CommStyledButton changes font size in other components
  • CTAT2409 – Flash: components that use images don’t display if Flash Player 7 or earlier) — Need to set Flash Player version to 8 or higher in the Publish Settings for an interface with any components that rely on images (CommSkinnedDoneButton, CommHintButton, etc.). Tutor templates included with the release have this property set.
  • CTAT2416 – CommComboBox start state color doesn’t reset
  • CTAT2417 – Flash: Selecting File > New Graph from the menu does not clear the student interface
  • CTAT2432 – Flash: CommRadioButton isn’t “selected” when incorrect
  • CTAT2455 – CommButton should highlight when a hint or out-of-order step tells the student to use the button
  • CTAT2457 – Flash: No skill in tutor_message on second incorrect attempt
  • CTAT2460 – Flash: CommDoneButton font changes on hint request
  • CTAT2463 – Flash: CommNumberBar background turns black for “Input Type” interval or vector
  • CTAT2486 – Flash: CommNumberBar of type Points doesn’t grade on first point

Known Issues


  • 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.
  • CTAT2222 – Jess tutor-performed actions are not logged.
  • 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.
  • 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.


  • 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.
  • CTAT2501 – Flash: paired tool and tutor message log different selection name for Done

Both Flash and Java

  • CTAT2249 - Inconsistent behavior when clicking on a state.
  • CTAT2198 - Docked windows sometimes aren’t loaded on Mac
  • CTAT2210 - Demonstrating a step in an unordered graph that matches an existing step does no create a new link in the graph. 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.
  • CTAT1927 - 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.
  • 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.10

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