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