This seems to be the year a lot of people are really getting concerned about cheating on computer science programming projects. There has been some discussion of the issue on one of the mailing lists I am on. Garth Flint blogged about it at Finding cool projects for programming classes. And I caught a student searching for exercise solutions for Code.Org’s AP CS Principles course work.
Of course cheating on programming projects is nothing new. I know that people shared punch cards back in the early days. Yeah, I’ve been around a while. I have also caught students sharing code via Google Docs. With the tools we have today, cheating has never been easier. Solutions to popular coding projects are easily available on the Internet and found using search engines.
It’s amazing that students don’t think teachers can recognize and then find solutions that a student copied from the network. We can and we do.
One common refrain I hear is that professionals get code off the Internet. And they do. GitHub is all about sharing and reusing code. StackOverflow and sites like it are were professional and amateurs find solutions to their problems and use them. It is considered good practice to use these tools. But school is different.
School is about learning and projects are assigned both to provide practice and to evaluate what students have learned. Students have a tendency to grab code they don’t understand and try to shoehorn it into a project. Or to copy a while project and turn it in as their own. Interviews can usually determine is a student understands what they used or not.
Ideally though, students would only hand in their own individual work. That is better than catching them and docking them points. Today’s students have more pressure to get good grades and (apparently) less understanding of the correlation between knowledge of the material and those good grades.
Garth wrote in his blog about trying to come up with unique projects that don’t have solutions on the Internet already. That’s hard. It seems like a lot of us teachers think of the same projects. Or we get them from third party curriculum and textbooks. Once a project is in wide use solutions will appear on the Internet pretty quickly. Even if a teacher does come up with a project that can’t be found on the Internet, if you have one really bright student who is willing to share their solution you can have cheating.
The only thing I can think of is making the issue part of a discussion of ethics and the meaning of school. Using code from the Internet correctly requires that students actually understand what they are using. Students who cheat their way through are going to find themselves in a bind eventually. If not in post secondary school than in their careers. Somehow we need to make them understand that.