This year I am experimenting with scaffolding to help students get started with projects. For example I started one group with a project to calculate BMI (Body Mass Index). The students were given a project with the code that calculated the BMI and asked to add code to display a message based on that value. Not a lot of code and having the project that far along meant that they could spend all of their time on the if statements that were the topic of the current discussion. It worked out pretty well I thought.
The students got some good practice and there was no wasting of time building the GUI or making the BMI calculation work. I was pleased. But there is a down side to too much scaffolding and I want to make sure I avoid that as much as possible.
The downside is that students can become too dependent of too much scaffolding and too simple an add-on that they don’t learn how to create new code on their own. The Gas Station Without Pumps blog had a discussion about this problem recently at Descaffolding.
I think there is a good balance that can be reached. I am not a fan at all of exercises that give step by step instructions where the key is being able to read and follow a recipe. I know classes (and textbooks) like that and I worry that they not only remove creativity but hinder learning. I’ve driven to places where people sitting next to me have been there to direct me turn by turn. (And done this with a GPS of course). While this gets me there it often fails to teach me the way. The step by step directions become a crutch that removes the need to pay attention and learn the way myself. It means that if I want to learn how to get there on my own without the navigator (human or otherwise) that I have to pay extra attention and work deliberately to learn the way. I think it is like this for students with too detailed step by step instructions or too much scaffolding.
As a teacher I feel I need to find the balance between enough help that the frustration level is not too high but not so much help that they student doesn’t have to think about what they are doing. There has to be room for error. A lot of great learning comes from error. Going back to my driving analogy, I seem to be able to get to places better and easier if I have gotten lost (or a might confused) on my way there in the past. Such a problem forces attention and remembrance that a failure free trip does not.
I’m working at this balance. I want students to create unique projects and are theirs rather than fill in the blank or rote copies of code I have written for them. Students need to see how to get to a new solution on their own and not be dependent on every problem looking exactly like something they have already done.