Plagiarism policy

All projects are to be made strictly individually and on your own. This means that you must create your projects on an independent basis and you must be able to explain your work, reimplement it under supervision, and defend your solution. Copying work (e.g. code, text, benchmark results) from or sharing it with third parties (e.g. fellow students, websites, GitHub, generative AI tools) is not allowed. Electronic tools will be used to compare all submissions with online resources and with each other, even across academic years.

If you are unsure if something is allowed or have questions about this policy, please contact the instructor.

Code re-use

You are allowed to use third-party code with source attribution. However, you will only be evaluated on the part of the work you did yourself! If third-party code is used to fulfill any part of the requirements of the project, you will not receive any points on that part of the project.

You are also allowed to use any code provided to you during the course, e.g. as part of the project assignment, in the lectures and exercise sessions, or in communications with the instructors.

Plagiarism

What is plagiarism?

Any action by a student that deviates from the instructions given and does not comply with the examination regulations is considered an irregularity. In particular, any form of fraud that violates scientific integrity, including using statements or texts produced by generative AI tools without citing original sources or simulating or falsifying research data, are irregularities (cf. OER, Article 118$2). Plagiarism is also an irregularity. Plagiarism means using other people’s work, adapted or otherwise, without careful acknowledgement of sources (cf. OER, Article 118$2). Plagiarism may relate to various forms of works, including text, image, music, data file, structure, train of thought, and ideas.

What happens if plagiarism is suspected?

Any suspicion of plagiarism will be reported to the Dean of Faculty without delay. Both user and provider of such code will be reported and will be dealt with according to the plagiarism rules of the examination regulations (cf. OER, Article 118). The dean may decide on (a combination of) the disciplinary sanctions, ranging from 0/20 on the paper of the given programme unit to a prohibition from (re-)enrolling for one or multiple academic years (cf. OER, Article 118$5).

Examples

  • If you consult the documentation of a programming language or tool to learn how to use a particular function, then you are not copying any code, so you do not need to cite anything. E.g. if you look up the file:open/2 function on erldocs.com to find out which arguments it expects, there’s no need to cite that documentation entry.
  • If you copy a snippet of code, you need to cite your source. Add a link to the source in a comment in your code. For example, if you want to parse a CSV file in Erlang and copy code from a Stack Overflow answer, code on GitHub, a blog post, or an AI tool, you need to link to the source.
  • If you copy a code snippet and have correctly cited your source, you have not committed plagiarism. However, we disregard this code when grading your project, because we only grade your own part of the code. So, copying code to parse a CSV file is okay: this is not a requirement of the project and thus this part of the code doesn’t contribute to your score anyway. However, if you for example copy code to spawn different processes and distribute a set of users over it: that piece of code is implementing a requirement of the project, and therefore we cannot give you any points for that requirement. So don’t do that!

It’s okay to talk about general concepts or algorithms with your fellow students, but don’t share pseudocode or code. The best way to do this is to avoid talking to others about the program while you are at the computer and to never send each other snippets of code. If you get stuck, do not ask for help from your fellow students, but either use debugging tools or ask the instructor or teaching assistant for help. We are happy to help you!

Use of (generative) AI tools

The general rule for the use of (generative) AI tools is that you are allowed to use them as a help, but are not allowed to generate any part of your solutions to the requirements of the project with them. You are evaluated on your solution to the requirements of the project, hence, this must be your own work.

Some examples and more concrete rules:

For your report:

  • You should not use an AI tool to generate text.
  • Your report should describe your project: design choices, implementation details, and evaluation results specific to your project. There’s no need for generic explanations of concepts we’ve seen in class (what AI would generate).
  • You can use AI tools to help improve your text: input your own text and ask for improvements. E.g. to check spelling and grammar, to suggest improvements to the structure of the text, to make LaTeX tables, or to suggest improvements to your text.
  • Beware that AI tools often generate overly verbose and imprecise text. Conciseness is preferred.

For your code:

  • You should not use AI tools to generate code that implements any of the requirements of the project.
  • You can use AI tools for debugging. E.g. input an error message or a code snippet that doesn’t work. Don’t ask it to generate fixed code (which you copy-paste); ask it to explain what is wrong (so you learn).
  • You can ask an AI tool for explanations of concepts or code you don’t understand.
  • You can ask an AI tool to generate a function, but in that case, you should reference the tool in a comment in your code. Like for plagiarism, you will not receive any points for that part of the project, since it is not your own work. Hence, do this only for non-essential parts of the project. E.g. you can use it to generate a function to parse a CSV file, or to generate code that parses CLI arguments, but not to generate a function to spawn processes and distribute users over them.
  • You can use AI to generate code to process and plot benchmark results (e.g. using matplotlib), as you are not graded on this code. Reference the AI tool in the code. Don’t use AI to generate benchmarking code.
  • You can use AI tools to generate (unit) tests for your project, as you are not graded on this, except for the projects where writing tests is an explicit requirement. Again, reference the AI tool in the code.

For your project design and brainstorming:

  • You can use AI tools to brainstorm ideas or to get suggestions for possible designs. In that case, do not ask it to generate code, but enter a discussion about the design choices. Remember that the tool doesn’t know the context of the class. You are expected to use the constructs seen in class and you’re evaluated on that. If the tool suggests something not seen in class, this may be a bad idea or it may be a good idea: it is up to you to judge that! In all cases, you still need to be able to explain how your code works and why you made specific design choices, in the report and during the oral defense.
  • Also note that AI tools may lead you down a ‘rabbit hole’ or may misdirect you. It is your responsibility to critically evaluate any suggestions. It may be helpful to compare multiple tools or restart conversations to see if you get different answers.

In all cases, you remain fully accountable and responsible for the content of your project and report. Make sure to carefully check everything you submit.

Remember also that the point of a university education is to learn. If you use AI tools to do the work for you, you will not learn anything.

Caution

The rules in this policy apply only to this course. Other courses or programmes may have different rules.