I have used the web and Stack Overflow extensively during the past month or so in creating my final project for my C# class. I have used so much code that I didn't write myself that I feel I am being unethical by not giving proper credit to the people who helped me; or the websites that have provided excellent examples.

Is it unethical to publish work which was created by me, even though its hardest problems were solved by other people? Should I credit these people for helping me with my assignment? Or the web sites which provided examples?

  • 2
    Do you understand the principles in the code that you have used from SO/SE?
    – Mauro
    Dec 11, 2011 at 13:15
  • Yes, I was learning from whatever I am referring to.
    – HelpNeeder
    Dec 11, 2011 at 20:26
  • 2
    as long as you learn from it, is it any different to reading it in a book ;)
    – Mauro
    Dec 12, 2011 at 7:44
  • The ethical boundaries for cooperation vary from institution to institution, and even assignment to assignment. Why are you asking random people on the web when you could get a definitive answer from your instructor? If you are asking here because you are afraid your instructor will turn you down, then that's an answer too. Dec 14, 2011 at 5:01
  • 1
    the main problem is not giving credit where credit is due, passing off the work of others as your own. And that's exactly what most you homework kiddos do.
    – jwenting
    Jun 1, 2014 at 3:29

3 Answers 3


Think about it like this: It's a class. The purpose is for you to learn things. It does not really matter whether you learn them from the teacher or from some website, as long as you do learn. And the purpose of the assignment is twofold: having you learn actively (by using your knowledge, which tends to make it stick better) and having you prove that you've learned. The result will not really be "published" in a meaningful way.

Considering all this, there are only ways in which your behaviour would be unethical is if you used all that code without learning from it, and either

  • The class is graded on a curve and your getting a better grade than you should might cause others to get worse grades than they would otherwise have gotten.
  • You use the diploma or certificate gained through that class to misrepresent your actual skill level to prospective employers.
  • 1
    Sure. But then the questioner should accept the zero they get for the assignment by not submitting the final project. Because it wasn't their handiwork. Even though they probably learned a lot in the process. If they're lucky, the instructor will grade the course based more heavily on things known (as typically indicated by examinations) than on projects submitted. If not, well, that's the problem with letting the net answer your homework. Dec 14, 2011 at 14:39
  • @Ross Patterson: Of course it was their handiwork. They just asked for help with some of the details. That's how you learn, especially so in the case of learning programming. Dec 14, 2011 at 15:27

I think you should cite your sources, and bother most about learning more.

Homework is not useful per se, it is a mean for you to learn things. If you didn't learn enough, you are the loser (not your teacher).

  • Sure. Unless you're talking about a homework assignment, as the questioner is. Dec 14, 2011 at 14:36

Yes, it's unethical. You write:

I have used so much code that I didn't write myself that I feel I am being unethical by not giving proper credit to the people who helped me;

It's your final project. Not the web's. Not Steve McConnell's. If you're submitting code you didn't write, that's plagiarism, and any decent instructor who caught you would at least give you a zero, if not drop you from the course.

Put differently, if you submitted a final paper to your English Composition class composed largely of paragraphs you copied from Hemingway, Shakespeare, Thoreau, and the Encyclopedia Britannica, you'd deserve the same fate.

  • Well, yes and no... I have created an idea of my project; made it look like I wanted to; some people on SO helped me decide how to print out my output; I have found good open source example of encoding/decoding which I have used and such things. It's more like writing your own book and use consecutive words that might refer to other books words but don't have to. I mean this does sound unethical, but isn't as bad as downloading already created open source program and turning it in. People and examples helped me with filling the gaps more or less. I do understand you point of view though.
    – HelpNeeder
    Dec 14, 2011 at 6:01
  • Plus, I have released the software as open source program, free to use. I look at this as a learning tool more than plagiarism.
    – HelpNeeder
    Dec 14, 2011 at 6:03
  • The ethical question is in what you do with the result, and in the degree to which you've used the work of others. You described the result as "my final project for my C# class", not as an open source program for use by the world. The standards for the two are radically different. Go ahead and release the code, with proper attribution to anyone whose work you have incorporated in any reasonable amount. But don't submit it to your course. Dec 14, 2011 at 14:34
  • 1
    I think you're applying a pretty ridiculous standard. English Composition and programming are not even remotely comparable. And no decent instructor would fail or drop a student for not writing all the code himself. There is absolutely nothing unethical or wrong about using small pieces of code freely given by other people to solve specific problems within a larger project. That's how software development works. Dec 14, 2011 at 15:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.