Skip to content

d19fe8/CTAT-detector-plugins

Repository files navigation

CTAT-detector-plugins


Table of Contents

Upcoming features
How to test in running tutors

Detectors:

Note: in general, detectors in this repository are currently still under development! Detectors that are currently most stable are listed under: Most stable detectors


Upcoming features

  • A cure for detector amnesia: Working initialization of detectors from TutorShop

  • Aggregator API

  • Integrated detector development and testing tools


Most stable detectors

  • current-step error count

    • Description: keeps a running count of attempts on each step in an interface
    • Outputs: the running count of attempts on the most recent step the student has worked on (e.g., if a student has tried 30 times on a particular interface element, the output will be "30")
  • stagnation

    • Description: outputs alerts in response to fixed, user-specified thresholds on student idle time
    • Outputs: custom message after each specified time-interval (e.g., "idle for more than 30 seconds", "idle for more than 1 minute", "idle for more than 2 minutes")

In-development detectors


Detector wishlist

  • at least one variant of BKT and at least one BKT-driven detector

    • predictive stability
      • Description:
      • Outputs:
    • possibly: BKT + contextual guess and slip --> Arroyo et al., carelessness detector
      • Description:
      • Outputs:
  • Simple wheel-spinning detectors

    • ...
      • Description:
      • Outputs:
    • ...
  • a cognitive gaming detector

    • ...
      • Description:
      • Outputs:
  • at least one detector of a student's affective state:

    • (boredom detector tends to have higher accuracy than other affect detectors)
      • Description:
      • Outputs:

How to test in running tutors

To activate this feature, first provide an initialization parameter '''process_transactions_url''' whose value is the TutorShop URL for transactions to be sent to the server. Optionally, provide also ausk

Second, hard-code the mail-worker.js URL and the detectors' URLs, each relative to the HTML/Assets/ folder, in '''transaction_mailer_users.js''', which defines a global object TransactionMailerUsers, and include this .js file in your .html. E.g., in

<head>
   ...
   <script
       src="https://cdn.ctat.cs.cmu.edu/releases/latest/ctatloader.js"></script>
   <script src="Assets/transaction_mailer_users.js"></script>'''
</head>

Design: if the process_transactions_url parameter is set, then new class CTATTransactionListener looks for an object TransactionMailerUsers and calls TransactionMailerUsers.create(). This object is defined in transaction_mailer_users.js, which should be included via a <script> tag in the html for a tutor that wants to use transaction forwarding or detectors.

The code in TransactionMailerUsers instantiates and starts the mail-worker and detectors from URLs hard-coded in it. Arguments to TransactionMailerUsers.create() pass to the mail-worker the process_transaction_url and process_detectors_url as well as an authenticity_token needed for each POST to Rails.

CTATTransactionListener then receives messages as a CommShell event listener and forwards student actions and TPAs to the mail-worker and to any detectors TransactionMailerUsers.sendTransaction(). For transactions that have a tutor response, both tool and tutor data are sent in a single transaction message.


About

Detector repository for CTAT tutors

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published