Reverse engineering

Over time I’ve developed a particular technique for giving coding assignments to my computer science students.

When it’s time to give the students a coding assignment, I first implement the assignment myself, going from the course notes that I wrote for them in the most recent lectures. Then I decide which parts of the code I think they should be responsible for.

Depending on how advanced the students are, I can give them more or less of the code to do. For the parts that I’m not expecting them to implement, I just leave in my own code.

Then I add comments describing the parts I want them to implement, which turns that part of the code into a kind of step by step algorithm. Finally, I remove all of the code that I wrote for those parts.

It’s a kind of reverse engineering approach to building coding assignments. And it seems to work really well.

2 Responses to “Reverse engineering”

  1. J. Peterson says:

    Very similar to the approach used in some Coursera online classes I took a few years ago.

  2. admin says:

    That doesn’t surprise me. It works really well.

Leave a Reply