On Sun, 26 Sep 2004 01:51:58 +0900, Paul van Tilburg <paul / luon.net> wrote:
> Hi all,
> 
> For a course in university (Intelligent Systems -- AI, neural nets,
> expert systems etc.) I and others have to write some kind of intelligent
> agent.  Inspired by the "tutor" example of the course and our love for
> Ruby, we decided (free choice assignment) to write a Ruby Programming
> Language Tutor.

how related is this to the work of allen nwwell and john anderson with
SOAR and ACT-R, respectively?
http://sitemaker.umich.edu/soar/
http://act-r.psy.cmu.edu/
http://en.wikipedia.org/wiki/Cognitive_tutor

-z

> Purpose
> -------
> The tutor's purpose is to learn the student Ruby basics by means of
> lessons.  A lesson could explain for example the aspects of Integers by
> giving the student assignments and give answer to or elaborate on
> questions like: Why? How? When? etc.
> 
> The tutor gives assignments which the student must complete.  Besides
> the fact the user must give correct output, not all code that produces
> this output will suffice.  The student should familiar him/herself with
> some of Ruby's best programming practices too.
> 
> For example the assignment could be:
> Print the numbers 10 till 15, each on a line.
> 
> The student could do:
> | puts 10, 11, 12, 13, 14, 15
> but we would really like him to use:
> | (10..15).each { |i| puts i }
> and maybe not even
> | (10..15).each do |i| puts i end
> because it's common style to use { ... } for one-liners.
> 
> Note that the agent could decide to allow the first input, because
> the student hasn't done the lesson on iteration yet.
> 
> Interface
> ---------
> Everything should run in a web browser.  The idea is to present
> an interface to select lessons (possibly not all order restricted),
> show progress and the actual lesson interface.
> This interface presents the user with the assignment, a form to type in
> his/her code and some buttons for asking Why?, When?, How? or to
> request a hint.
> 
> Everything said above hasn't crystallised yet and isn't definite at all.
> But if some of you know some interesting links, libraries or
> documentation pointers, please let me know!
> Things we are especially interested in:
> * A simple step-for-step tutorial we can use as bases for our lessons
>   (Pickaxe, Poignant guide are great, but not suited.)
> * Ruby style guides (except for the one on RubyGarden).
> * Adaptive hypermedia libraries?
> * Libraries for investigating the input of the user.  Validation by
>   means of evaluation is necessary, but we also like to investigate
>   the structure of what the user typed, so the agent can give hints on
>   how to do it better.
> 
> Thanks for the help,
> 
> Paul
> 
> --
> Student @ Eindhoven                         | JID:   paul / luon.net
> University of Technology, The Netherlands   | email: paul / luon.net
> >>> Using the Power of Debian GNU/Linux <<< | GnuPG: finger paul / luon.net