Have you considered using this approach in the exam? One thought that came to mind would be to make the grades depend on which test cases the programs pass. The test cases could be divided into groups, and in order to pass the tests in the "higher grade"-groups, the programs would have to be more flexible, advanced and so on than programs passing the basic test cases. In this way the same task could be challenging for all students. Finding suitable exam questions can, in my opinion, sometimes be really tricky, especially when there is great variation in the students' programming skills.
/Linda
Jeffrey Elkner wrote:
One more note on this topic. I'm quickly coming to the conclusion that the best way to teach any programming, OOP or otherwise, is using Test Driven Development (TDD). DocTest is an absolutely wonderful tool in this regard (thanks to Tim Peters!). I write the assignment as a collection of tests, which the students are asked to pass one at a time. They find it fun and empowering, since it helps them break down complex tasks into simple steps. More students are able to solve the problem, and to better understand difficulties they have along the way.
I only discovered DocTest a few weeks ago, but if anyone is interested in seeing my first attempt at writing lessons with it you can see them here:
http://linus.yhspatriot.net/cs/cs
(note: this site changes rapidly, so the lessons might not be here later, but I plan to refine them a bit and put them on the Python Biblioteca:
http://www.ibiblio.org/obp/pyBiblio/
_______________________________________________ Edu-sig mailing list [email protected] http://mail.python.org/mailman/listinfo/edu-sig
