Entries filed under Personal

University Bans GitHub Homework

Posted on February 18, 2015

A student recently made a repository for their class where they posted all of their solutions to the homework. The university found it, and they banned GitHub homework, but changed their mind. To do so, they used a DMCA takedown to accomplish that, which is deplorable and yet another reason that it needs to be reformed. But this post is not about the DMCA, it is about ‘cheating’ using copy/pasted code off the internet and the ethics of providing answers to all the homework.

I maintain a github repository where I have posted some code that I wrote during the class. Those two things are my Pep/8 Assembly Code , and my Finite State Machine in PHP. The assembly was built using code that was ‘completely mine’ at the end of it all, made through reading the book by J. Stanley Warford and using the examples provided there as well as in-class. The FSM was built from my own knowledge of PHP, and was completed as more of a “challenge” since my professor at the time didn’t believe it could be done.

When I did this, I didn’t question whether it was legal or not. The code is all my work, and I should be allowed to post it. I wanted to provide the code I wrote to not only demonstrate that I have an understanding of the material, but as a resource to anyone else who was studying these subjects. However, I thought about whether it was “responsible” to provide code online since they were completed as projects for my classes.

In general, I believe that it is unethical to create a public repository with a class/course code title and upload the associated questions / code answers, which is what this student did. By doing so, you are making it easy for the rest of the class who doesn’t know how to code to cheat their way through.  They can cut and paste the code, change the variable names, move some code around and not know what they’re doing but pass. Professors may not have time or resources to deal with giving each assignment a harder look; all of mine have been adjunct for relatively low pay. Yes, this is a failure of the institution, and it is affecting the degree.

As it stands there is a huge stigma about the thousands of Computer Science graduates who can’t code:

“Most good programmers should be able to write out on paper a program which does this in a under a couple of minutes. Want to know something scary? The majority of comp sci graduates can’t. I’ve also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

I know, in part, exactly how this is happening. Usually, there are a few students who can program in these classes, and the rest of them ask those who can to “see their code as an example.” If you give it to them, they’ll end up just copying all of it. Group projects are even worse for this where it’s usually one or two people doing all the work and everyone gets credit for it (and I end up being one of those workers because I don’t want a bad grade).  These grade C or F students pass by getting As on the homework through copying other’s code / standing around. They have no grasp of basic concepts and by the time they graduate they’re useless. The professors just aren’t strict enough about it because they’re getting a paycheck anyway. So between a focus in CS of having too much theory in my view and not enough actual real-world software development skilled, coupled with a serious “cheating” problem it’s no wonder that the CS degree is being harmed.

Even though I posted my code, I did it far differently. My posted code has no reference to the classes, professor, and they don’t contain anything  terribly unique (FSMs have been around since, well… yeah). They don’t use any distinct function names that someone would be able to Google if they punched the homework assignment in as search terms. I think it is acceptable to upload code you write for class to your personal repo as long as you remove class references, the code is wholly yours, and isn’t part of a toolkit created by the professor. But if you’re just providing homework answers online to easy snippets of code that are easy to search for, you’re only hurting the value of your degree and allowing everyone else to cheat and get ahead by riding your coattails.