[Edu-sig] Re: Best approach to teaching OOP and graphics
lgrandel at abo.fi
Sat Mar 26 11:08:40 CET 2005
I dived right into your lessons... Looks *very* good. I am always
looking for "new" approaches to teaching programming, since this is the
very topic of my future PhD-thesis. Giving the students a "standard"
which there programs are to meet should indeed be very motivating and
pose a positive challenge to all students. My class starts in three
weeks, so I have some time (not much :) to try out doctest on my own and
see if it would be suitable for my students. Did your students find it
difficult to learn and start implementing TDD?
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.
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
>(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
More information about the Edu-sig