About this Kata
I teach web applications programming to undergraduates. I usually explain the stuff, point them to the book, and ask them to produce a finished web application as part of their examination. On some people it works and they make great apps. On other people it doesn't. This year I'm trying a new approach, to teach with katas. I started with this small kata.
There are two main differences with respect to the usual TDD katas. The way I describe it, there is no TDD. My students can't do that yet, and the main purpose is to teach about the web. So I replace the feedback from the tests with the feedback of reloading the page on the web. I'm still doing BabySteps though.
The other difference is that I describe every step in detail. I'm asking the student to learn to perform the steps by memory. I think this will teach them to really do BabySteps, and get quick feedback. My inspiration is UncleBob's http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata, that I found so very instructive.
The full description: http://matteo.vaccari.name/aw/kata-cgi-quotes
Part of the motivation behind this experiment is that I don't have the time or resource to actually follow them in regular lab exercises. The kata with detailed steps could be a great instrument for self study.
You are to write a web service that returns a different quote every time you visit it. As an additional requirement, if you add a query parameter like "?q=foobar" it should return a random quote that contains the string "foobar".
Scripting languages such as Ruby or PHP should make it much easier than Java or C#.