I just joined a new CS course and have some trouble understanding whether I should be worried that my coursework is to be considered plagiarized or not. The following is the situation.

I am doing a systems programming project with math. Our professor gave us numerous working code samples and math which can be directly copied over to a program with few changes. Some trivial details about the codebase structure was omitted, but can be easily derived by simple reverse engineering from the provided code samples with some effort; it is very intuitive.

Very few non-trivial details were omitted in the provided code samples and that is where the real effort to distinguish one solution from another is at in my opinion; this is less than 5% of the entire codebase.

The matter becomes more complicated because the answer to this coursework is available online by other students. Looking at the solution of other students, one can't help but to see more or less the same solutions with minor variations.

Because I have looked at the solution of other students while developing my own solution, I can't help but feel guilty for having absorbed some of their ideas and thus leading to similar program structure. At the same time, all of us have been using the professor's code samples as our main resource. Where I thought I could improve the structure of the program or add features which were incorrect or omitted by other students, I have done so. So there are some differences from other solutions, but not that much.

So I am conflicted regarding whether I should be worried that my solutions is considered plagiarized in this scenario or not. I guess my solution resembles more a "highly patched up copy" rather than being different from the "ground up".

  • 3
    You'll need to ask the instructor what their parameters are. May 30, 2019 at 3:45
  • 3
    Honesty is the best policy: tell instructors that solutions are available online and that you’ve seen them.
    – Spark
    May 30, 2019 at 8:09
  • If you're worried about actually being accused of plagiarism then it doesn't hurt to cite. But ethically you've done nothing wrong whatsoever.
    – user90814
    May 31, 2019 at 7:02

2 Answers 2


This is basically a request for opinions because there isn't a general answer to the definition of plagarism in coding. Borrowing code is a huge part of learning how to code!

That said here are my guidelines for myself:

make choices you're comfortable with. 

If it feels wrong it probably is. You should be willing to openly stand by every decision and every google search.

add comments with sources throughout your code. 

This will make things way easier just from a coding perspective and if you're accused of plagarism, makes it easier to argue that you were not intending to do so.

In particular, I link to stack exchange answers that were helpful, especially to questions I asked.

you could even put a link to this thread in your submission code somewhere so that you can demonstrate that you clearly thought about academic honesty.

Intent matters a lot in plagiarism at a grad or post grad level. It's when things are getting published that it becomes much more objective.


As a student you have more to consider than plagiarism as such. Of course, plagiarism - attributing the work of others to yourself - remains wrong for students, but it is "cured" by giving proper citation of the things you use.

But the professor assigning you some project is concerned with your learning and not, specifically, with the program you produce, other than how it contributes to your learning.

So, professors normally set rules and, hopefully, enforce them. If you don't understand the rules, you can and should ask. And you should make relatively conservative interpretations of the rules when in doubt.

But, and this is important, the rules will change as you progress through the educational system. This should be true for all fields as well as for CS.

At some point in your education (early) it is reasonable to ask you to work strictly alone. At other points it is appropriate to permit or even require you to work in groups. It may be appropriate to require that the "team" do all of its own coding, rather than using found code.

At other points in the process it is appropriate, even necessary, to require individuals or teams to revise and extend the work of others and to have students find and utilize resources from the web.

But the rules are there, not to be nasty, but to try to assure that each student goes through the various mental changes that will permit deep learning.

But there are few professors that will permit students to "copy" from past iterations of a given assignment if found. Likewise, there are few professors that would forbid your use (and adaptation) of code that they specifically give you for an assignment.

While the behavior of professors who reuse assignments, knowing that solutions are easily available, can be seriously questioned, the overall learning objectives should guide you as to what is appropriate.

If I turn in a "perfect" solution that I have found somewhere, but learn nothing other than how to use Google, then I've wasted everyone's time. The "perfect" solution wasn't the goal until you actually get hired by Google. Then the objectives change.

Moreover, improper copying can actually result in a person denying themselves an opportunity for insight that will be hard to recapture. Those insights lead to deep learning and are the underlying justification for requiring a process of "learning under constraint."

The goal of any assignment isn't the product produced by the student. It is the change of mental state that the act of production enables. Don't lose sight of that.

For a more explicit answer to your question, I assume that using and modifying the code given to you is fine - even the point of it. But looking to old solutions is probably improper, even if not explicitly stated. The professor would be wise to make it clear, however, and even to explain why, as I've tried to do above.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .