Plagiarism

Learning to program is like learning many other skills, while learning we have to do artificial exercises. If we are learning to drive, for example, we may be asked to drive along a particular route not because we or the driving instructor or any passenger has a real need to travel that route. We do this because the driving instructor has decided that driving this particular route will give us chance to learn or demonstrate some particular driving skills. It would be no good if we were to say "No need to drive, my friend happens to be going that way, let's get in his car", we would not then learn or demonstrate those skills. Even if we promised to look carefully at what our friend did when he drove that route, and our friend was a skilled driver, so it would be a much smoother journey, we would not learn nearly so much as we would if we drove it ourselves.

When living out our daily lives, however, of course if we have to travel from one place to another, it makes sense to travel with a friend if he happens to be driving that way and save the effort of driving ourselves. In the same way, when writing programs for a practical purpose, it always makes sense to use existing code that someone else has written rather than write our own. When doing a programming exercise, however, the whole point of the exercise is that we learn by doing it ourselves, it makes no sense to use someone else's code.

Another way in which programming exercises are artificial is because they ask us to do tasks in a small context rather than as part of a larger system. The sort of program you are likely to have to write in an exercise will often take some input typed in on the screen, do some processing, and then type some output onto the screen. Taking in the input and typing out the output are artificial, just there to set up and demonstrate the exercise, you should not think of these as an important part of the exercise.

If a programming exercise has been set for you to learn by doing it, you should do it yourself because otherwise you won't learn. If a programming exercise has been set as an assessment, you should do it because to get someone else to do it would be to pretend you had a competence you hadn't actually demonstrated yourself. If our roads were full of cars driven by people who had never really passed their driving test but had certificates saying they had because they had got someone else to pretend to be them and take the test, our roads would not be safe. Computer programs do many important things, and an error in a computer program could have serious consequences. We need to know that qualifications in Computer Science really do mean a degree of competency has been demonstrated, that is why it is a serious matter if you get someone else to do work that is being submitted to demonstrate and assess your own skills.

Plagiarism means passing off someone else's work as your own. For all the reasons described above, it's a bad thing. It is not in your interest if degrees in Computer Science from Queen Mary get a reputation as being an unreliable indicator of competency because many people get them partly as a result of plagiarism. Unfortunately, my experience is that assessed work commonly is plagiarised, that is why in Algorithms and Data Structures I have decided that all marks will be on the basis of tests and exams, with no marked labwork component. The unmarked labwork component is still an essential part of the course, however, you learn by doing it. Tests and exams will often have questions of a type which first came up in labwork. It is crazy not to do the labwork and be faced for the very first time with that sort of question when you are doing an exam.

Looking forward, a major part of your degree is a final year project. This is partly an exercise, but partly "real" programming. You have to build a system which performs some task. If part of your system uses someone else's code that's fine if it solves part of the problem, so long as you make clear in your report where someone else's code has been used when that code hasn't come from some standard code library. There should be enough code written by yourself to make a substantial piece of work. Including code written by someone else without stating it so that someone looking at your project might think it was written by you is a serious issue, and if you do it and are found out, your project will be given 0 marks.

It would also count as plagiarism if your report for your final year project included written material taken from somewhere else, perhaps describing the problem and possible solutions to it. Your report should be in your own words. If you wish to quote someone else's words, make it clear it is a quote and give a citation - a website if it comes from the web, or a book or journal title if it is taken from writen material, to say where you have taken it from.


Matthew Huntbach

Last modified: 23 June 2005