Sharing Code vs Academic Dishonesty

Posted on

I wrote this for my programming classes since the concept of cheating with code seems to be a greyer area for them as opposed to copying answer in math or an essay for English. Or maybe they’re just great bullshitters, but either way I felt I had to break it down for them and I’m putting it here because why not.


Since I uncovered a large swath of what I consider cheating for the Room Area assignment, I figured it was worth talking about the difference between getting help and cheating. If your eyes are glazing over while looking at the length of this post, let me give you the short version: solutions to problems should be your own. The longer answer is a bit more complicated.

The main issue is that programmers copy other people’s work all the time. If you went over to /r/ProgrammerHumor over on Reddit right now, there’s a good chance of seeing a joke about how no one would get anything done if Stack Overflow suddenly shut down. There is also a strong open source community where people share code from projects they’ve developed, such as Chromium which powers Google Chrome. Want to see some of its code? Here’s a bit that deals with bookmarks.

This kind of copying—“sharing” is the better word for it—is standard practice, with license infrastructure in place so people can do so without fear of being sued out of existence. The reason for this wide-scale acceptance is that the shared code addresses real-word problems, so you have a community working together to solve these problems and advance the field of computer science.

You can think of these projects, like Chromium or building your own website, as research. When someone researches a topic, afterwards they’ll engage in conversation and share bits of information here and there, either in person or by posting in online discussions. Sometimes, they’ll even publish their findings by writing a book or a paper. But whatever they do, they don’t keep it a secret. They want to share that knowledge. They want to advance the field and help those that are exploring that same topic. Programming operates the same way, in that someone took the time to research a problem and then shared the solution in order to advance the field and help those in similar situations.

However, assignments in this class are not real-world problems. They are purely academic and exist solely for learning purposes. No one will ever hire you to write a program that finds the area of room that’s shaped like two rectangles and a triangle. Since these problems exist to teach, you need to be careful with outside help when working on them.

Keep in mind that the purpose of these problems is for you to demonstrate your ability to program, and the burden of proof is on you and your solutions. If I call you out for cheating, then your solution did not convince me you know what you’re doing. Instead, my suspicion is that you are passing off someone else’s work as your own, regardless of your intent. Any outside help you receive must be merged into your own solution. If you have no solution to begin with, then you need to back up and relearn the basics. There is no clear-cut line between getting help and academic dishonesty, but it’s safe to say that finding the answer to the exact problem you’re working on and claiming it as your own is the latter.