Sunday, April 21, 2019

More Than One Way To Code a Solution (to a programming project)

Garth Flint has an interesting post about grading programming projects (It is never easy) in which he talks about the interesting solutions students come up with. It struck a cord with me on a couple of levels. Yes, it makes grading more difficult but it also means that students are thinking for themselves.  Or so I chose to believe. Sure some of them look up solutions on the internet but they have to understand them well enough to explain them and make them their own.

I figure that on average a class full of students will come up with three different ways of doing things. Sometimes only two but sometimes more than three. Sometimes I will take samples of the various solutions (with no names) and discuss them with the class. It gives me a chance to show that there is more than one way to do things AND to discuss optimization a little bit.

Occasionally students have come up with solutions that I had never thought of and were even better than how I had done it. I love it when that happens. I love new solutions. To it also emphasizes the value of a diverse group of people looking at a problem.

As Garth mentioned in his post, student ideas move quickly through a computer lab.  I struggle with that a bit. How much help is too much help? Where is the line between “he helped me with it” and “I copied it from her?” And how do you tell where the students are around that line? I could get pretty fanatical about it. I’m not sure how productive that is though. It probably adds as much stress on me as it does for students. I toss in quizzes as well and students who understand what they are doing do a lot better on then than students of get too much “help” with their projects. Using multiple forms of evaluation is a good practice anyway I’ve been told.

Generally I see projects as more effective as a learning experience than as an evaluative tool. Sure they help evaluate learning but a practice, an exploration of ideas, and a way to learn things is their highest value. If students come up with implementations differently for what I would come up with I see that as a learning win.

No comments: