Hendrix Computer Science Academic Integrity Policy
Computers, and the Internet in particular, make it easier than ever before to collaborate and to build upon the work of others, leading to an explosion of creativity and productivity. However, it is also easier than ever before to steal the ideas and work of others. In order to ensure that students do the hard work necessary to fully develop their academic potential, and to help them grow into responsible, contributing members of society, the computer science program at Hendrix takes issues of academic integrity and intellectual property very seriously. We strive to instill in all our students the values of diligence, independence, gratitude, and respect for the work of others.
All Hendrix students must abide by the College’s Academic Integrity Policy as well as the College’s Computer Policy, both of which are outlined in the Student Handbook. This document outlines specific ways that the Academic Integrity policy applies to programming assignments in computer science courses.
Plagiarism and its consequences
Plagiarism in computer science classes is easy to detect (yes, we use computer programs!) and is taken very seriously. Major violations (such as submitting an assignment copied, in part or in whole, from another student or from the Internet, or collaborating on an exam) will typically result in a zero on the assignment in addition to a decrease of one letter grade in your final grade for the course. Plagiarism or unauthorized collaboration on a final project or exam will result in failure in the course.
Copying an assignment from another student or from the Internet is not worth it. You will almost certainly be caught, and the penalty will be much worse than getting a low score on an incomplete assignment.
Assistance and code sharing
Your professor may designate some programming assignments as team projects. In such cases, collaboration among team members is unrestricted, and typically the team will produce and submit only a single program.
In all other cases, and among students who are not team members, the following restrictions apply:
You may not look at any other student’s code, whether via an electronic copy, or by looking at their screen.
You may not show your code to another student.
You may neither give nor receive help debugging a program. Requests for debugging help should be directed to a TA or professor.
You may, however, discuss a programming assignment with other students, as long as it does not involve actual code or specific debugging help. For example, you might discuss general approaches to a problem: what sorts of data structures might be best to use, the high-level structure of an algorithm, and so on.
Note: it is not considered a violation if a student happens to glance at another student’s screen, so you need not worry about shielding your eyes (or your screen). The policy is not intended to punish inadvertent viewing, but rather to provide a bright line that helps you determine whether a particular intentional action on your part would constitute a violation or not.
Outside resources and citation
Learning how to find answers to questions by consulting online resources is an important and practical skill in computer science. However, in an environment where learning is the primary goal—rather than just producing a working program—one must be cautious about the type of online resources consulted, and how they are used.
First, as in any course, consulted sources must be cited. Typically, it will suffice to include a program comment giving the URL of the consulted resource, the date you accessed the resource, and the way in which you used it. For example:
http://stackoverflow.com/questions/14379753/what-does-mean-in-python-function-definitions, accessed 12/18/2015. I used this to help interpret some syntax in the example program provided by the professor.
Generally speaking, it is acceptable to consult online resources to answer very specific questions (“How do I use function X?” “What does Y mean?”) or to learn about something which is not a required part of the assignment (for example, if you want to add some extra feature or learn about a concept not yet covered in class). It is generally not acceptable to directly copy any substantial amount of code (more than 2-3 lines) from an online resource.
Beware!! Many students get into trouble because they think they will just use an online resource as a “reference” to help them while they “write their own code”, and deceive themselves into thinking that they are really learning something. The problem is that in this situation it is very difficult to write code which is truly your own: it will almost certainly end up being structured in an identical way to the online code, and this is functionally no different than copying. (If you took someone else’s song, and changed most of the words, it would still be copied!) Even if you try to make the code your own, once you have seen someone else’s code it is very difficult to think about it in a different way. Copying of this sort can still be easily detected, even if you change all the function and variable names and make minor modifications of your own. To be safe—and to maximize your learning—you should avoid looking at any online reference material with more than 2-3 lines of code.
Use of outside code
In some courses, it may be acceptable to incorporate code written by others into your own project, either by using it as an external library, or by using it as a basis and modifying it. Your professor will indicate what sort of outside code use is acceptable on a given assignment. If you are unsure, ask.
When using outside code, whether in whole, in part, or as the basis for further modifications, you still have the following responsibilities:
- You must ensure that you are using the code in a way consistent with its license. If you are unsure about this, ask your professor.
- You must appropriately cite the code and its source (regardless of whether the code’s license requires it).