A few times this semester, I have written up solutions to assignments and exercises for the class I’m TA-ing. Which has been a learning experience on it’s own.
It’s not hard to solve the exercises and assignments we’ve been giving this semester. It’s a first year class, after all, and if I was having trouble, I’d be concerned. But it’s a much different task to write solutions then it is to solve the problems.
The solutions I was working on were programming problems, and so involved producing code that solved a given problem. All of them took me less than 15 minutes to code a solution. However, it took me two to three times that amount of time to comment each solution. My comments were often so thorough, that the resulting file tripled in length!
Sure, I could’ve done this the easy way and just posted solutions. I would’ve been done quickly, and the students would still have a solution to look at and compare theirs against. But I know that a bunch of students are struggling in this class. They’ve told me, and I’ve worked with them during lab.
It’s a first year programming class, that somehow a bunch of students from other departments require to graduate. Which means there’s a bunch of students with little interest and often no talent in programming trying their best to not fail. And these are the students who are most likely going to actually look at the solutions I posted. So while a solution is better than nothing for them, a fully commented solution that helps explain why each line of code is there and what it does is going to be much more useful.
It also means that my solutions may not be the most optimal or pretty or concise. Instead, I was trying to make my solutions easy to follow and understandable. In fact, in some places, I left notes saying that it would be good practice to try changing a section of code. Will any students do this? I don’t know. But it’s there if they want to. And if they come asking for more practice problems later, it’s something we can direct them to.