The first thing I ran into with regards to programming tutorials last week was this tweet and accompanying image.
99% of #programming tutorials on the web pic.twitter.com/lnU08BjBgC
— Jonathan Shariat (@DesignUXUI) July 18, 2014
That is of course one extreme but it does seem like some tutorials are like that. Start simple and jump through some complex steps very quickly with little explanation. Other tutorials take the other extreme. They give one every single step spelled out in great detail. The often try to explain things but the implementation details are such that you can create the program without learning a single thing. A number of online tutorials are like that. They seem great in theory and if someone actually read the explanations they would probably learn a lot. But alas many students will not read any more than what they need to create the project/program.
These are all reasons why I am not a fan of online or overly detailed (or not detailed enough) tutorials in textbooks. I prefer to live tutorials. Students can stop and understand things in a text or an online tutorial of course. I do that myself when trying to learn new things. But far too many students don’t. When doing a tutorial life it is easier to keep an eye on students and see where they are struggling. Plus one can ask questions “why did we use a variable here?” to force students to think about what is actually happening during the tutorial.
At some point though students have to write a program from scratch without tutorial like instructions. This transition can be difficult if tutorials have been too foolproof. If the tutorials have had too large of a jump from beginning to end students may never have success and develop the confidence to attempt a program from scratch. I just don’t think tutorials are enough. I think real teaching with explanations of concepts rather than just steps is necessary for most students. While some may be able to learn just from good tutorials many will need a bit more than that.
What do you think? Are there great tutorials online or in textbooks? What sort of help do students need (if any) beyond tutorials?