4 ms·
I disagree with this for true, absolute beginners. In order to do TDD, students have to know enough to write an object with methods or -- at minimum -- a funct
by teach 10y ago
I disagree with this for true, absolute beginners.
In order to do TDD, students have to know enough to write an object with methods or -- at minimum -- a function.
My students do seven assignments before they even see a variable. They've done 25 assignments before they write an if statement. They do 76 assignments before they see a function.
My second-year kids can do TDD and it works pretty well.
But for students with literally zero experience coding, TDD means you're skipping a LOT of basics. Or throwing a lot of unnecessary complexity at them before they even know the basics.
- akkartik 10y agoDo you have any pointers to such assignments? I've been teaching programming 1-on-1 with mild success by introducing concepts related to teaching fairly early: http://akkartik.name/post/mu http://akkartik.name/post/mu. But I'm very conscious of what I don't know, and eager to learn more.
- teach 10y agoThese were my classroom assignments in 2012. My current assignments use my book, but the basic sequence is the same. https://programmingbydoing.com/ https://programmingbydoing.com/
- akkartik 10y agoThanks! Drat, I just realized that I mistyped my original comment. I meant to say, "I've been teaching programming 1-on-1 with mild success by introducing concepts related to _testing_ fairly early.." Hopefully that wasn't too confusing.
- lfowles 10y agoI think TDD for beginners works if you approach it from a different angle. The teacher should already have a TDD suite ready that the student then verifies against. This is how several of my college classes approached assignments. The only issue I had at the very beginning was not understanding that we shouldn't modify the tests ;)
- teach 10y agoAgain, my students have to do over 70 labs before they can even write a function. If you can write a TDD suite to test those first 69 labs then my hat's off to you. I think we have different definitions of the word "beginner".