# ideas

Feedback services for intelligent tutoring systems http://ideas.cs.uu.nl/www/

 Latest on Hackage: 1.6

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

Maintained by

Ideas (Interactive Domain-specific Exercise Assistants) is a joint research project between the Open University of the Netherlands and Utrecht University. The project's goal is to use software and compiler technology to build state-of-the-art components for intelligent tutoring systems (ITS) and learning environments. The ideas software package provides a generic framework for constructing the expert knowledge module (also known as a domain reasoner) for an ITS or learning environment. Domain knowledge is offered as a set of feedback services that are used by external tools such as the digital mathematical environment (DME), MathDox, and the Math-Bridge system. We have developed several domain reasoners based on this framework, including reasoners for mathematics, linear algebra, logic, learning Haskell (the Ask-Elle programming tutor) and evaluating Haskell expressions, and for practicing communication skills (the serious game Communicate!).

## Changes

Changelog ideas-1.5 => ideas.1.6

* dynamic strategy combinator that uses the current object/term
* more instances for IsTerm (Maybe, Bool, Map, Set)
* exercise-specific properties (that can be parameterized over its type)
* support for encoding exercise terms in JSON (using an exercise property)
* basic support for Latex and MathJax (in html output)
* extended 'apply' feedback service with buggy rules and restarts
* redesigned (parameterized) transformations
* reimplemented strategy combinator split, based on %>>
* new function defaultMainWith, which takes options
* added 'onefinal' feedback service, which returns a final term in context
* layered design for sub-directories: renaming/moving some modules
(e.g. Ideas.Utils.Prelude)
* Typeable constraint now properly encapsulated in Ref type
* removing (static) documentation generation (unused feature)
* removing Common.Algebra modules (now in the Math domain reasoner)
* fixed escaping of characters in xml
* fixed recognition of exercise IDs in ModeJSON
* fixed processing of Null in EncoderJSON
* fixed rule ordering in function ruleset

Changelog ideas-1.4 => ideas.1.5

* reintroducing dependency on standard cgi library
* adding missing instances for Term and ShowString
* new option for JSON mode: exercise terms can be encoded in JSON
* switched to QuickCheck's random number generator QCGen
* requests can fix the random seed
* added Term to service types, encoders and decoders
* JSON-Int can be used for decoded environments
* new implementation for interleave and atomic prefix combinators (more lazy)
* bug fix: "no prefix" now handled by json decoder

Changelog ideas-1.3.1 => ideas.1.4
-----------------------------------------------------------------------------

* refactoring of strategies
- strategies are now represented cyclic trees (that preserve fixpoints)
- new strategy combinators can be defined outside the framework
- simpler interfaces: no more Builder, Step, and Core datatypes
- nice speed-up for constructing and running strategies

* support for new database schema (v2) with more columns
- request can have an optional 'logging' attribute (false, v1, v2)
- command-line flag for seeing information that is logged
- userid, sessionid, and taskid are stored in a state