I’ve been struggling for a few years with providing rich, authentic tasks for my computer science students and then having to evaluate their work.
My students learn a lot of skills quickly when solving problems they’re interested in solving. That’s wonderful.
I can’t conceive of a problem they will all be interested in solving. That’s frustrating.
In the past, I have assigned a specific task to my entire CS class. I tried to design a problem that I felt would be compelling, and that my students would readily engage with and overcome. The point has always been to develop broadly-applicable skills, good code hygiene, and deep conceptual understanding of software design. The point is not to write the next great 2D platformer nor the most complete scatterplot-generating utility.
Unfortunately, I could never quite get it right. It’s not because my tasks were inherently weak; rather it’s that my students were inherently different from one another. They don’t all like the same things.
I believe that students sometimes need to do things that are good for them but that they don’t like to do. They sometimes need the Brussels sprouts of learning until they acquire the taste for it. But if they can get the same value from the kohlrabi of learning and enjoy it, why wouldn’t we allow for that instead?
So I’ve tried giving a pretty broad guideline and asking students to decide what they want to write. They choose and they complete a lot of great learning along the way. Their code for some methods is surprisingly intricate, which is wonderful to see. They encounter problems while pursuing a goal that captures them, and they overcome those problems by learning.
Sounds good, eh?
Of course, they don’t perform independently: they learn from each other, from experts on the Internet, and from me. They get all kinds of help to accomplish their goals, as you would expect of anyone learning a new skill. And then I evaluate their learning on a 101-point scale based on a product that is an amalgam of resources, support, and learning.
Seems a bit unfair and inaccurate.
I asked for suggestions from some other teachers about how to make this work better:
- ask students to help design the evaluation protocols
- use learning goals and success criteria to develop levels instead of percentage grades
- determine the goals for the task and then have students explain how they have demonstrated each expectation
- determine the goals for the task and then have students design the task based on the expectations
- find out each student’s personal goals for learning and then determine the criteria for the task individually based on each student’s goals
I’m not sure what to do moving forward, and I’d like some more feedback from the community.