Search CTAT

CTAT 2.6 Release Notes

3 June 2009

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

General Changes

  • CTAT Software License Agreement. Please read the license agreement when installing CTAT 2.6 as previous versions of CTAT included no agreement.
  • Changes to the algorithm that determines the best link’s hint to display whenever a student requests a hint. The revised algorithm fixes a bug where hints were not taken from a link on the preferred path, and introduces a new feature where you can explicitly remove the hints from a step (if you don't want to encourage that step, for example). When the student requests a hint after placing their cursor on the selection represented by the step with no hints, CTAT will provide a hint from another path instead of displaying a "no hint" message.
  • Changes to formula grammar, which affects how the formulas in expression-matching steps are parsed and interpreted, are as follows:
    1. Changes to the grammar make expression matching work more predictably.
    2. Signature matching for functions, which determines how a function with a given name is found among a library of functions with various method signatures, has been improved. User-defined Java functions that relied on CTAT to find them using a method signature with all String arguments no longer need to rely on this signature, and can use other types more reliably.
    3. Number recognition is improved. In general, arithmetic operations in formulas should closely mimic the operations of a desk calculator.
  • New CTAT formulas for expression matching. canSimplify(), fmtDecimal(), integerInRange(), isInteger(), isNumber(), isSimplified(), mod(), printf(), and round().
  • Logging error-checks for Java tutors. Java tutors now warn when logging is interrupted in any of the following cases:
    1) Network logging is configured with a bad url
    2) Network connection to log server is interrupted
    3) Disk logging is configured to write to a read-only directory: if CTAT can log to log.dat, it does so. If log.dat is not writeable, CTAT will warn.
  • Jess Eclipse plugin has been upgraded to version 7.1.0, and now runs in the latest version of Eclipse for Java Developers (based on Eclipse 3.4.2 at the time of this release) without crashing.
    We modified the 7.1.0 plugin for the CTAT release in the following ways:
    1. edited gov.sandia.jess.editor_7.1.0/plugin.xml to include .wme and .pr extensions.
    2. replaced gov.sandia.jess.editor_7.1.0/jesside.jar with the jesside.jar from 7.0b7.
    3. replaced gov.sandia.jess_7.1.0/jess.jar with the jess.jar from 7.0b7.
  • Tutor-performed actions are now possible for Jess cognitive tutors. A new function, (perform-tutor-action), can be called from the right-hand side of a production rule: (perform-tutor-action "InterfaceAction" "[selection-name]" "[action-name]" "[input]") This function should only be used at the end of a successful rule chain, which is the production rule that includes (predict-observable-action). The reason for this is that (perform-tutor-action) does not roll back for an unsuccessful chain. Also, tutor-performed actions for Jess cognitive tutors will not log.
  • Student-starts-here feature: select any student-reachable state in a behavior graph and set it as the start state for the student. All steps leading to that state are performed by the tutor before the student sees the interface. This can be used to implement faded examples where the first n steps are completed for the student; support can be gradually faded away with fewer completed steps.
  • Tooltips for the step action labels now report the type of action. For example: ‘Link type: Correct Action’.

General Bug Fixes

  • Removed an inaccurate dialog that would appear when deleting a link that belonged to a group, which claimed CTAT would also delete the group (it doesn’t).
  • Fixed a bug where in example-tracing mode, with an ordered graph, CTAT would match a link out of a state that is above the current state. Now, when searching for an incorrect-action link to match against a student’s input, CTAT restricts the match to incorrect action links coming out of the current state.
  • In demonstrate mode (Jess or example-tracing tutor), in an ordered graph, demonstrating a new step that matches a bug link off of an earlier state (above the current state) no longer performs the match on the earlier link rather than adding a new link. In ordered mode, the earlier bug link should not be matched.
  • In an ordered graph that has two bug links that have the same SAI, entering student input that matches that SAI used to mark both as being traversed even though the bug links are attached to different states. Only one bug link is now marked as traversed.
  • DorminPicture widgets are now hideable/showable using SetVisible on a tutor-performed step.
  • DorminAudioButton visibility can now be configured in the start state of a tutor.
  • The tooltip displayed whenever you mouse over the number of interpretations (the right-most pane of the CTAT status bar) no longer reads “select Windows → Show Window → ‘Group Creator’ → to define the group”.
  • In graphs built with older versions of CTAT, both the action label and tooltip shown when hovering the action now display the min/max traversals correctly (e.g., “1-1”). The text fields are also no longer empty in the dialog for editing min/max traversal values.
  • If the value of min/max traversal on a link is set to a mass production variable, (e.g., ”(min)), the action label now updates to show the variable name instead of the default “1” for min or max.
  • The productionRules.pr file for the SubtractionTutor example had two "require*" statements for files that don't exist, so we removed these and added a require statement for wmeTypes.clp. The 47003-18754.wme file for the example was also missing the "require*' for the .clp file.

Flash Upgrades/Changes

  • Runtime mode is no longer supported as of this release. Example-tracing tutors should use the connection to the Tutoring Service for tutoring.
  • We added a feature called ‘the scrim’, a partially transparent screen which appears when the tutor is not yet ready for a student to start working on a problem or when the tutor disconnects from the Tutoring Service. Whenever the scrim is visible, all tutor components are disabled.
  • While student input into a component is being evaluated, CTAT displays a red hourglass next to the component, and the component is blocked for the time being.
  • CTAT Flash tutors using the new 2.6 CommShell are now capable of logging without needing to reference the external logging library SWF (CommLoggingLibrary). We removed the parameter ‘LoggingLibraryPath’ from CommShell as a result.
  • Changed the structure of Flash components: components are now under the heading CTAT Components. New alpha versions of components will appear under a new CTAT Tools heading. The CommComponents heading will no longer be used.
  • New: CommImage component which can be graded like a button but can be configured to display an external bitmap either through a url or by providing the name of a library symbol.
  • Added basic "interface description" message parsing to support more advanced initialization of components. For example, the CommComboBox, CommImage and CommHintButton can now be configured in the start state.
  • Added a generic timer mechanism that delays the enabling of a component after it has been graded incorrect. The timeout value is in milliseconds and is for now implemented in the CommComboBox component. (See parameter list for that component.)
  • Added an external hint button component (CommHintButton). If this component is added to a tutor then the tutor will hide the internal one and use the custom supplied version instead. This hint button can be configured to load Default/Clicked/Hover images either from an external URL or a library symbol.
  • Added a Resize-Tutor JSFL script. This is an experimental script that semi automates the uniform scaling of a tutor.
  • To alleviate the amount of resources and code we have in the CommShell, a small framework in AS2 was created so that fully dynamic classes based on the MovieClip Flash class can be instantiated. This new approach doesn’t need any resources to be available in the CommShell library but can instead be loaded dynamically.
  • Flash tutors now require Flash Player 10. There is a known defect in Flash Player 9 that can crash a CTAT tutor in Firefox on Mac or Windows.
  • Upgraded all of our components to adhere to CTAT interface standards: 1. All components now actually support: getClassType and getCommType () 2. Compiled all of our components for Flash 8 (some were still Flash 7)
  • Right-clicking in a tutor will show a menu item called ‘Show Your Tutor Information’. Selecting this option will open a new web browser and display internal information about the loaded SWF. Currently, this will display:
    1. Tutor/CommShell version information.
    2. Tutoring Service version information
    3. List of components in the tutor
    4. Version information for all components
    5. Logging library information and settings (version, etc)
    6. Flashvars and their values
    Note: This feature only works if you are running the Flash tutor in a browser.

  • Hid the top status bar. We’re now using the scrim instead to display connection and status information when necessary.
  • Changes to Flash examples: Updated Factors, FractionAddition, and Politeness tutors and HTML files, and replaced the Jumble example launcher with Factors example. The Factors tutor no longer uses Flash runtime example-tracing, and instead relies on the authoring tools (“CTAT for Flash”) to provide tutoring.
  • CommComboBox values can be set from the start state of the behavior graph using the
    Jess portion of the InterfaceDescription XML message. Changes to the XML behavior graph will appear in the interface when loading the behavior graph.
  • When the student enters input for the wrong step in an ordered graph, the message displayed in the hint window used to be “For this tutor, you must complete each step in order. Remember that you can ask for a hint if you need help.”, but the tutor_advice in the log message was “Please work on the highlighted step.” Now, if highlighting is enabled, the tutor displays and logs ‘Please work on the highlighted step.’ The expected step is highlighted. If highlighting is disabled, the tutor does not display or log any message (“undefined” is logged as the tutor_advice); the out-of-order input simply turns red.

Flash Bug Fixes

  • Fixed the CommShell resizing problem in preview/authoring mode where a change to the CommShell size wouldn’t be reflected in the preview/authoring mode.
  • Fixed and upgraded the JSFL that updates tutors with the latest components.
  • Fixed logging library to support verification of DataShop responses
  • For an unordered graph that contains an ordered group, entering student input out of order within the group did not display the ‘Please work on the highlighted step’ message. This message is now shown under those conditions.
  • Fixed the following logging bug: for a CommDoneButton instance, the selection in the tool_message was logged as “done” while the selection in the tutor_message was logged as ”_level0.”.
  • CommTextArea “border” parameter now works.
  • When logging client-side from a Flash tutor, tutor-performed steps now log both a tutor message a tool message.

Known Issues

Java

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

Flash

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

Both Flash and Java

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

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

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

Flash

  1. Install the CTAT 2.6 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.