I have been working on GOAT! — Goal-based Object-oriented Adaptive Teacher the whole week (besides lectures and stuff). This was again for the Intelligent Systems course. It is the reincarnation of our Ruby Tutor project which was dropped earlier as a possible idea.

For the HTML page/templating framework, I have been using Iowa, a Ruby object based framework. I must say, once you’ve understood how it works, it is really nice! A HTML page together with its code (separate files though) together form a page class, that is instantiated and kept in a session for every user visiting. It allows you to think of a page as the object with which the user’s agent interacts, keeping a state (by means of instance variables). It also allows you do Ruby like iterations in HTML:

  • @item.name

simulating itemList.each { |item| ... }. Note that <ul/> is transformed by Iowa, since UL it is a subclass of a more generic repeater (you can always use <repeat/>).

I also would like to thank the author (Kirk Haines) for writing this piece of software and helping me out a lot of times. I think Iowa has a somewhat steep learning curve at first, but it gets better after a while I hope we can fix this by providing information regarding where the hard parts are, where more examples are needed, and so on.