Search CTAT

CTAT 2.11 Release Notes

28 March 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 2.11
  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.11.
  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 2.11


  • Revised logging preferences appear in a new section of CTAT Preferences called “Logging”. These reflect some new channels for logging:
    • Enable Logging Service (Flash tutors): log messages received by the Tutoring Service from a Flash tutor are saved to disk
    • Forward Logging Service Data (Flash tutors): log messages received by the Tutoring Service are also forwarded to a logging server URL
    • Log to Remote Server (Java or Flash tutors): log messages are generated by the Java server and sent to a logging server URL. For Flash tutors, this is an alternative to forwarding via the Logging Service, but log entries will lack client-side time and hint information
    • Log to Disk (Java or Flash tutors): log messages are generated by the Java server and recorded in disk files. For Flash tutors, this is an alternative to logging via the Logging Service, but log entries will lack client-side time and hint information
    • Author Logging (Java or Flash): author actions are logged when logging is turned on
  • In Cognitive Tutors, skills (rule names) are now logged.
  • On quitting the tools, CTAT will not prompt you to save your behavior graph if it has not been modified.
  • “Insert Subgraph from File” option on a node allows you to reuse pieces of a behavior graph
  • Flash and Java tutors now log the link ID with each transaction
  • New matcher function modf(double dividend, double modulus), which returns n%m, the remainder of n divided by m. The function mod(n,m) only works with integers, and so will return 0 for the expression mod(3.5,2).
  • New Skills Console (Windows > Show Window > Skills Console) shows skill name, category, and current estimated probability that the student knows the skill. Used primarily in debugging and authoring with components where the skills are embedded in the tool (e.g., CommEquationSolver and “Equation Solver” matcher).
  • Major changes to the focus management of Flash tutors. In prior versions of CTAT, a Flash tutor would evaluate student input under a system called "backgrading", where each change of focus to a new component (e.g., click in a text field, press enter) would initiate evaluating the prior Flash component. In the new system, evaluation will occur when focus leaves a component. This approach is much simpler and more reliable, resulting in more consistent evaluations.
  • Skinnable/Stylable tutors. Tutors can be styled via an XML stylesheet.
  • New Flash components (see the full list):
  • New CommShell. The CommShell has been optimized to be faster and smaller in size. The visual elements of the CommShell (sliding hint window, the hint button, the component border) have been removed in favor of separate components that perform these functions.
  • Sliding hint window (aka the garage door hint window) has been removed from the CommShell and made into its own component, CommHideableHintWindow.
  • Flash tutors now work reliably when published for Flash Player 10. Compatibility modes for earlier versions (such as Flash Player 8, which was the version we recommended in the last release) are no longer supported. We strongly recommend that for all FLA files with version 2.11 of the CTAT components, you set the Flash Player compatibility to "Flash Player 10" in Flash IDE's Publish settings. This is a per-FLA-file setting.
  • The Flash component CommJumble has been removed from this release. We recommend you use the new component CommDragNDrop instead.
  • CommShell now has a loading animation that appears while the tutor is connecting to the Tutoring Service before a problem loads or between problems in a sequence.
  • Among other changes, CommNumberBar has a new option for a large, thick line that is bigger than the large tickmark (see CommNumberBar’s Point Shape parameter).

General Bug Fixes / Changes

  • CTAT1366: Optional links are not copied with subgraph
  • CTAT2249: Inconsistent behavior when clicking on a state
  • CTAT2420: Row disappears in Edit Student Input Matching panel
  • CTAT2494: Default values for Range Matcher min and max could be better
  • CTAT2531: CTAT crashes on traversing alternating incomplete ordered/unordered groups
  • CTAT2532: Hints should not suggest answers from tutor-performed steps
  • CTAT2628: Update skills based on selection and action

Flash Bug Fixes / Changes

In this release, we’ve greatly increased performance of our Flash tutors by:

  • Removing a number of bitmaps from our component sources
  • Optimizing the CommShell component to be faster
  • Adding the option to log over the tutoring service which uses a streamed socket connection instead of making individual HTTP requests for every outgoing log message
  • Removed safety delays, which ensured log message flushing—this is no longer needed with the streamed logging option

Other changes:

  • “Logging” parameter has new option: Client To Service—Log messages only to the Tutoring Service
  • CommHideableHintWindow and CommHintWindow have a new option: Process HTML in hints—If set, the hint’s text will be processed as HTML. Otherwise, it will be processed as plain text.
  • CTAT1894 – Flash shell property to disable success msg has no effect
  • CTAT2199 – Tutor doesn’t reconnect to a local tutoring service if the same session id is used
  • CTAT2327 – IE does not properly manage connections tot he tutoring service
  • CTAT2351 – CommComboBox ‘OnIncorrectDelay’ parameter has no effect
  • CTAT2367 – CommTextInput setting parameter ‘editable=false’ has no effect
  • CTAT2428 – Hint window should be cleared on the next user action
  • CTAT2430 – CommDoneButton with label ‘Next’ does not advance to next problem
  • CTAT2461 – CommTimer size can’t be changed
  • CTAT2471 – CommFractionBar ‘Okay’ button doesn’t turn green on correct input
  • CTAT2472 – CommFractionBar ‘skip impossible’ partitioning divides incorrectly
  • CTAT2473 – CommFractionBar only first step tutored when tutoring on every step
  • CTAT2474 – CommFractionBar clicking on drag source bar deselects piece
  • CTAT2475 – CommFractionBar partition style ‘Button’ doesn’t show partitioning
  • CTAT2478 – CommFractionBar untutored action name problems
  • CTAT2496 – CommCheckBox check mark disappears when graded incorrect
  • CTAT2497 – CommCheckBox doesn’t reset when you return to the start state
  • CTAT2502 – many components report old version numbers in Show Your Tutor Information
  • CTAT2505 – Clicking the Done button (CommSkinnedDoneButton) does not grade final step and advance problem
  • CTAT2508 – CommImage cannot pull up symbols from library using MassProduction variables
  • CTAT2509 – CommNumberBar cannot display user input
  • CTAT2510 – CommImage can’t re-initialize image URL when going to next problem.
  • CTAT2513 – changes the movie clip’s depth
  • CTAT2514 – CommComboBox text color doesn’t reset to black on new problem
  • CTAT2535 – Add CommSkillBar parameter for width of skill bars
  • CTAT2536 – Add CommSkillBar parameter for vertical stroke on end of skill
  • CTAT2539 – CommImage does not scale to image and does not hide its background
  • CTAT2540 – CommImageButton does not load images from Mass Production Table
  • CTAT2545 – CommNumberBar always displays “1” in the partition box if tutor-stepped
  • CTAT2546 – CommTextInput text aligns out of the visible area on expression replace
  • CTAT2548 – CommNumberBar interval type input isn’t traced
  • CTAT2549 – CommNumberBar vector-type input isn’t traced
  • CTAT2551 – Clicking CommButton should evaluate the text in the component that had focus
  • CTAT2555 – Numerators of “point labels” for CommNumberBar display decimal numbers
  • CTAT2561 – CommPieChart “Okay” button displays in front of the scrim
  • CTAT2562 – client always logs to server regardless of the Logging FlashVar value
  • CTAT2564 – Using tags in CommHintWindow hints causes text to display in gray instead of black
  • CTAT2565 – CommHintWindow doesn’t display border if ‘Text Border’ set to true
  • CTAT2574 – Unable to view final hint level in CommHintWindow
  • CTAT2576 – CommImageButton doesn’t load images through URL if used in conjunction with other such components
  • CTAT2589 – Components are not locked while the scrim is shown
  • CTAT2598 – user_guid value is being logged in messages
  • CTAT2604 – CommTable prevents scrim from blocking interface components
  • CTAT2608 – CommNumberBar point added at a partition jumps to zero
  • CTAT2617 – CommNumberBar vector with Open point doesn’t match

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

  • 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 2.11

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