This document discusses the challenges of defining and identifying plagiarism in programming coursework submissions. It notes that software engineering best practices like code reuse and standard algorithms/patterns can conflict with academic definitions of plagiarism. It also examines ethics issues around methods for identifying plagiarism in code, and recommends as good practice notifying students of potential mini-vivas in advance and giving them access to annotated transcripts before misconduct hearings. The overall aim is to have a fair and balanced approach that considers the complexities of programming assignments and students' perspectives.
2. Introduction
Clashes are often observed between software engineering good practice and
institutional conventions regarding plagiarism.
Plagiarism in programming is often a result of student misunderstanding
regarding how far good practice extends
And as such, a degree of empathy is required when assessing and confronting
incidences.
In this talk, I will discuss the nature of this clash with regards to programming in a
college or university setting.
I will discuss how plagiarism is commonly identified when assessing coursework
submissions, and the ethical issues raised.
We conclude the talk with some notes on institutional good practice and how to
remove some of the heat from student interactions.
3. All Programming is Plagiarism?
Culture of reuse:
Standardised syntax
Standard algorithms
Design patterns
Architecture is restrictive
Loops, Selections, Sequential
Code style is often mandated
Stylistic elements often inherited
Reusability and maintainability
Emphasised as good practice
4. All Programming is Plagiarism?
We emphasise good practice in software engineering, which is
often at odds with institutional definitions of academic conduct.
Students can find themselves at odds with their own discipline.
Reusing their own code (e.g. cross assessment)
Reusing the code of their colleagues
Integrating external code into their own work.
As a discipline, we emphasise that it is important not to reinvent the
wheel.
And yet, making use of all resources available will likely lead to a clash
with academic norms and expectations.
5. What is Academic Plagiarism?
Plagiarism implies passing work off as your own without attribution.
Students are generally au fait with the idea of plagiarism.
Can recite text book definitions
Problem is not in understanding, it is in interpretation.
Often plagiarism represents a lack of awareness that it applies in a given
situation.
All academics have a responsibility to identify plagiarism.
Students can receive degree awards for work they did not submit.
Devalues the qualification for all other students.
Reflects badly on the institution when student inability is discovered.
6. What is Plagiarism in Programming?
Almost impossible to define.
Where does plagiarism live?
In lines of code?
In data structures?
In algorithms?
In architecture?
All of these and none of these.
We exacerbate this problem we teach plagiarism as good practice.
Not intentionally, but through a lack of coherent contextualisation.
Students suffer from our flippancy in teaching these topics without fully covering
the implications for misconduct.
Often due to time pressure
Often due to course pressure
7. Methods for identifying plagiarism
in programming
Cant be easily automated.
There is no real Turnitin equivalent for software code. Problem may be
intractable.
Requires specialist examination of submissions by subject matter
expert.
Time consuming, prone to mistakes, cant offer full coverage.
Attention most directed at obvious candidates for examination.
But what does obvious mean here?
Course organisation can frustrate analysis:
Marking distribution, pair programming submissions, etc.
8. Ethics of Identifying Plagiarism in
Programming
Directed sampling is ethically questionable.
Subject to subconscious biases
Selection bias, etc.
Focuses attention on those least likely to be successfully hoodwinking..
In the case of weaker students submitting work beyond their assumed
competence.
Assumed competence?
Slanted by familiarity with students within lab situations.
May miss those students who are quietest.
Assumed competence comes from our own exposure to evolving student
submissions
9. Ethics of Identifying Plagiarism in
Programming
Our techniques are ineffective against commissioned work.
Little success against essay mills
Class divide?
Those with the most money are most likely to fly under the radar.
It is our familiarity with student work that directly informs sampling.
And this is troublesome.
10. Good practice
Should inform all students at the beginning of a course that semi-
random subset will be selected for mini-viva.
Non stigmatising not only those under suspicion
Non comprehensive not all students will be selected.
Selection criteria for mini-viva is all students under suspicion and a
random sampling of all others.
Students that are under suspicion are selected for forensic dissection.
So too is a completely random sampling of all students.
Each selected student undergoes the same forensic examination of
coursework.
Same process applied regardless of inclusion criteria.
11. Fair Dealings in Academic
Misconduct
Many institutions bias academic misconduct hearings against the
student.
Often unintentionally, and usually without malice.
Students are often unaware of the charge or evidence until they are
confronted in the meeting.
This creates unnecessary tensions, stresses on the students, and skews
the outcome.
Its unfair to judge a student based on their perceived inability to explain
irregularities under stress in a high-stakes environment.
We recommend that students see fully annotated transcripts of their
work beforehand, so they can effectively marshal a defence or
explanation.
Or are aware of the strength of evidence prior to the hearing.
12. Conclusion
Students often plagiarise not as a result of malice, but instead an
outcome of their lack of specialist knowledge.
Students often lack the skills to properly evaluate the degree of contribution
they made to a submission.
To a certain extent, all programming is plagiarism, and we are often
flippant in our treatment of good practice.
Academics need to be mindful of the fact they play an important role
in helping students interpret plagiarism guidelines within complex
environments.
In no way are we attempting to minimise the responsibility of the
student in cases of genuine plagiarism.
We are only attempting to examine and contemplate our own role in the
process.