Student’s Sharing Projects

There was once a legal case where a student, proud of their work in the programming course, posted their solution online. The university (San Jose State) eventually had to give in. Which seems right to me. Especially given the real workflow of professional open-source developers:

And in this case, it’s especially poignant, since Kyle’s workflow actually matches the practices of real-world programmers and academic computer scientists: coders look at one anothers’ examples, use reference implementations, publish their code for review by peers. If you hired a programmer who insisted that none of her co-workers could see her work, you’d immediately fire her — that’s just not how software is written. — Cory Doctorow

But, it does leave some open questions. Assignments are difficult to create, and they take a few iterations to debug. In the beginning courses, there are only so many ways to ask questions and test knowledge, before it starts getting too repetitive. The are only so many situations that are clearly identifiable with one of the classic data structures (linked list, stack, and queue). As teachers, we tend to exhaust our creativity rather quickly, and recycle the questions and projects we’ve already developed.

If students can post their solutions online, teachers run out of questions. I know this, because I cheated my way through much of my physics homeworks. I cheated myself out of the deeper learning. Even worse, I’m pretty sure that I would do it again. Even today, I regularly look stuff up instead of remembering it. In fact, my first stop for any problem is to check if Google knows about someone else’s solution.

I’m not against students posting their solutions, but there are two strong counter arguments:

  1. You definitely remove from some (of the more lazy) future students an opportunity to try harder. Once they find your posted solution online, it’s too tempting not to have a peek.
  2. Are you really going to impress a future employer with your class project? I strongly doubt it. But, if you think otherwise, then keep the code private and offer it as a code sample during the interview process.

On the other hand, perhaps we teachers should be trying to have projects that employers would find more compelling as an exhibit of work and skills. Perhaps we should have projects tailored to student’s individual tastes. Many of the graduate class projects are student proposed, we just have to find a way to scale the approach to the much, much larger undergraduate classes.