Tuesday, June 10, 2014

That Was (Not) Easy

Someone mentioned in a comment somewhere (I wish I could find a link) that sometimes they create a project for students that they haven’t built themselves first and find out that it is harder than they expected. I sure can relate to that. I’ve done it more than a couple of times.

Now normally I like to assign projects that I have already coded at least once. Failing that I like to use projects that I know other people have used with students at the same level. But sometimes I get creative and adlib something. Typically this comes as a result of a conversation with students during class. It usually involves me saying something like “Let’s try this.” Sometimes it works. Sometimes it even works well. But sometimes things turn out to be a lot harder than they first appear.

I’m not sure this is necessarily good or bad. When it results in the students and me both learning something new that can be good. If we have fun doing the learning so much the better. When it results in a lot of frustration and misery that is not a good thing. Not for me and not for the students.

One could avoid that by always taking the safe way out – use tried and true projects only. Or perhaps wait until the instructor has a chance to code up a sample solution first.  But if you do that you risk losing a special teachable moment. Plus I like to live a little on the edge.

I learn a lot from watching students work on projects. Even if I have done a project before and think I know all the things that can go wrong an inventive student will often find a new way to mess things up. And that is fine. I learn. They learn. We both win. Having done the project before either on my own or by helping students makes it easier to make sure all the required techniques and tools are taught before assigning the project. And there is nothing wrong with that.

Trying to code a project myself usually helps me determine how long it should take students to complete the project. Sometimes I even calculate it correctly. But having students do it is really the most reliable way. It makes for interesting scheduling and lesson planning when you get it wrong of course. In high school one can’t often expect students to put in many extra hours outside of school as one would at the university level. So there are advantages to getting the timing right.

So much is about trade-offs though. There is value in spontaneity and in creating spur of the moment projects that students are really interested in doing. And there is value in having clear schedules and stable projects to assign. Generally I find some balance and that seems to work out.

Of course sometimes students surprise you and finish things early. As they say “I love it when a plan comes together.”

how long


Garth said...

That was probably me. I have a bad habit of listening to the Good Idea Fairy. Good, fun, already designed and coded projects are sometimes difficult to find for the classroom. There is good learning to be had even in failed projects. Here is an example. One of my computer geek kids was asked by a teacher if he could write a program that would take a list of kids and randomly sort them out in groups of a given size, i.e. take a roster of 24 and make groups of 3 (or 4 or whatever the input is). The program needed to also be able to go the other way, i.e. make say 5 even groups from the roster of 24. In my infinite wisdom I told the kid we could probably do it. After a little head scratching (OK, a lot of head scratching) we decided this is far from trivial. The pros out there will disagree but for a non-pro like me and the kid there were some immediate issues. If we enter the roster as a text file how does the teacher, who knows nothing of text files, edit the list when a kid is absent? I know I can come up with a procedure that will solve this issue but it would not be a whip it out in 30 minutes type thing. There were a bunch of other issues once we sat down and looked. Simple things like if one kid is left over which group does he go in? Two left overs - how do they get split up? If the teacher want groups of 5 and there are 4 left overs what does the teacher want to do? Not a coding issue but a user issue. Lots of little things like this. This actually turned into a good exercise because we had to sit away from the computer and think of issues and solutions. We never reached the coding stage of the project because we realized the time involved in this “trivial” little project. I plan to reuse this project not to code but for the planning required and the issues involved.

Alfred C Thompson II said...

Teachable moment == learnable moment