Links to access the dataset mentioned in the paper:
Academic Integrity A Handbook and Guide To Understanding Academic Integrity for Programming "If I have seen further, it is by standing on the shoulders of giants." Isaac Newton Document Overview Academic Integrity for Programming Section 1 of 7 Overview of document Understanding Academic Integrity within a programming context can be difficult to grasp for students who are only beginning to learn these skills. While there are clear general rules and goals, there are also subtleties, nuances and context which requires a case-by-case implementation strategy. Positive Reasons to Have Academic Integrity The high-level goal of Academic Integrity is to reference those who have assisted you. We encourage you to use and learn from others' knowledge around the world. Having a strong ethos in Academic Integrity means you can be proud of the work you create, and that you are eligible to receive all the deserved credit. It instantly dissolves any issues regarding authenticity, originality, diligence and integrity concerns. Using someone else's knowledge without referencing is dishonest, and unfair. Referencing those who have assisted you eliminates all problems associated with Academic Integrity. What's your work and what's someone else's work? In programming, there are standard ways of solving a problem that are based on fundamentals. These fundamental standards later become the building blocks & ‘second nature’ to programmers. There are many typical confusion points as there are no clear rules that apply in every context. The rules are contextual to each case – the deliberator needs to unpack levels of understanding and intention regarding the standards of the learner, idea and code. Differentiating between a unique idea and the application (implementation) of a fundamental standard can often become one of the more challenging issues affecting Academic Integrity in the field of programming. Each case of Academic Integrity is unique & complex Unique and complex contextual differences exist in each individual case of suspected breaches of Academic Integrity for code, and can include some of the following: 1. The perspective of the Learning Facilitator 2. The experience of the student's programming skills 3. The type of problem that the student is providing a solution for 4. The type of solution that is being implemented 5. The coding language and its unique attributes 6. The point in time at which the solution is submitted Difference between the idea and the code There is a very distinct difference between the idea and the code. All students should reference both. A. An algorithm (in pure mathematics) is an idea. B. Implementation of that in a language (e.g. in Python) is the code These two different types of references are dependent on the programming language and type of problem. For some languages it is impossible to identify & track the attribution of the idea, but relatively easy to track the original code implementation. Case Study An example case study to help understand Section 2 of 7 Case Study: 3 x Students all submitted the same code with no referencing Context: Matthew has never used JavaScript before, but submitted a complex script Context: John cannot explain and does not understand the random number generator line of code used in his submission Context: Sarah has completed a "Fundamentals in JavaScript" subject at University 1st Year Student 2nd Year Student 3rd Year Student Matthew John Sarah Personas [1] Above: The submission item: HTML, CSS and JavaScript code for a 'random quote display' that swaps the text (in pink) from a list every 3 seconds. Case Study: The Code Submission (Outcome) Case Study: The Code Submission (Script) Above: The submission item: HTML, CSS and JavaScript code for a 'random quote display' that swaps the text (in pink) from a list every 3 seconds. Case Study: The Code Submission (Breakdown) Above: Breakdown of what 'ideas' are implemented in the code Case Study Outcome: Breach of Academic Integrity Outcome: Both John and Matthew (first and second year students) are suspected of using someone else's code as part of their own submission. 1. Neither of them had referenced the parts of the script which fell outside of their expected understanding and had not completed fundamental programming classes at Torrens University 2. Upon a follow-up discussion with the Learning Facilitator, neither could clearly describe all components of their script 1st Year Student Matthew 2nd Year Student John Personas [1] Case Study Outcome: No suspicion of a breach of Academic Integrity Outcome: Unlike John and Matthew, Sarah's programming experience meant that she was not suspected of using someone else's code as the scripts submitted was within her expected knowledge base. 3rd year Student Sarah Personas [1] Referencing code at Torrens decreases as you become more fluent The amount of references to fundamental concepts you are required to make to your code at Torrens University will decrease as you become more fluent in the languages you are learning. The reason is you are expected to integrate, absorb and understand these fundamental concepts in the languages you are learning. This explains why Sarah, the third-year student in our case study, was not deemed suspicious of a breach by the Learning Facilitator to submit the example script, which contained only a few low complexity ideas. How The Students Should Have Referenced Examples of Correct Referencing Part 3 of 7 First-year student who hasn't learnt JavaScript found the script to the left on StackOverflow Found Script: 1st year student Above: First-year student who hasn't learnt JavaScript before is now referencing (line 23) a user's answer on the online forum StackOverflow for the entire script (lines 25-33). Correct Referencing Example: 1st year student Second-year student is referencing a single line of code that they needed help with, from the above user Darin Dimitrov on StackOverflow, to include as part of a script the student developed on their own. Found single line of script: 2nd year student Second-year student uses someone else's code for a single line in their own script. Correct Referencing Example: 2nd year student How To Reference Code In-code references are required for any idea or code block that isn't yours Part 3 of 7 There are 4 x components to a complete in-code reference: 1. User: The username/name/author 2. Published: The published date of the script used 3. Title: The title of the webpage/script uploaded/published post 4. Link: The URL of the page the script was found in This information would allow someone else to track down the original source work if ever required. Correct In-Code Reference Guide Above: A total reference to all components required from the source, where the code was found. Correct In-Code Reference Example Common Sources That Risk Infringement All locations require the same referencing process, regardless of the source Part 4 of 7 YouTube Video Tutorials YouTube contains tens of thousands of specific walkthrough video tutorials on a range of different issues CodePen Examples CodePen is specifically designed to share pieces of code with others. The pen on the right is developed by Alejandro Narvaja and is an example of a To-Do List on Vue.JS. GitHub Libraries GitHub is specifically designed to share larger snippets of code, or libraries. This JavaScript slider has been created by jssor. The license for this library is an MIT license and is found as a single file inside of the Git package. Pastebin Code Dumps Pastebin is designed for any text to be uploaded either anonymously or by a user. User uploaded: If the script is uploaded by an author, the student is expected to reference the username. Anonymous uploaded: If the user who uploaded was anonymous, you will need to reference the actual URL address of the script, and its upload date. Always screen capture, or PDF export the webpage you are referencing. W3Schools.com W3Schools is a code learning and API style source of web knowledge. It lists virtually all fundamental blocks or code snippets/references of most web languages. CodeAcademy There are many code learning courses, websites and applications. These all contain training code to help teach you the fundamentals of different languages. They can also include projects to assist in getting off the ground. StackOverflow StackOverflow is designed for users seeking answers to coding problems. Official API Examples API documentation often provides generic and contextual examples for implementing libraries and code. You are required to reference the contextual examples provided. University Curriculum You will be provided coding examples as part of your course at Torrens University, as these will help you learn concepts and techniques. These pieces of code should also be referenced correctly if used in your Assessments. Example list of sources where code is shared • YouTube video tutorial • Github library download • StackOverflow answer by user • Pastebin code dump • Codepen.io code examples • Official API Documentation • CodeAcademy • W3Schools • University Course Curriculum Anywhere that shares code, and you use it to assist your work: You need to reference it! Copying directly limits your ability and growth In programming, when you encounter a problem you are encouraged to research the problem to find a solution to the answer. There is no other way to solve the problem – staring at a screen of code with a bug will not solve anything! By better understanding the problem and developing a solution for it, students will be better equipped to solve similar and unexpected problems in the future. Free resources still require referencing The difference between copyright infringement vs. Academic Integrity The answers provided in an online and open forum will often (though not always) be available for everyone to use free and without referencing. There is nothing illegal (such as copyright infringement) in using freely available software solutions. However, in the context of an educational institution, the act of referencing is a key requirement to maintaining a high standard of Academic Integrity. Using Open Source and Paid Libraries and Assets All library licenses need to be included and reference clearly Part 5 of 7 Open-source vs. Free vs. Paid Use open-source where possible The University encourages you to use open-source tools when possible as there are numerous benefits when compared to using a paid asset or library: • It's cheaper. • You will become less reliant on proprietary and limited use assets. • Allows your code to move between projects/clients for future applications. • The code base will most likely have a larger community who are also using it, who can help with issues. Academic integrity of someone else's work While it is important to incorporate new assets and tools, it is important to understand the implications of using an external library or an asset What you should do: • Reference correctly (comment source and use / include relevant license files) • Comply with the library/asset's copyright policy •