Code-Sharing Policy

Overview

Unacceptable sharing of code is considered cheating and a violation of the University honor code on academic integrity. Submitting the work of others as your own, and sharing your working with others, are equally unacceptable. As stated in the course syllabus, dishonest behavior of this sort is considered cheating and will result in a failing grade in the course.

This page provides some details on what we consider acceptable and unacceptable sharing of code. Keep in mind that this list is neither complete nor rigorous. If you’re unsure whether something is appropriate or not, please contact the instructor.

Details

You may copy code from the textbook, OpenGL books, or lecture slides used for this class. However, we encourage you to read and understand any code before using it in your project. If asked about these algorithms on an exam, these sources will not be there to help you.

You may not copy code from the Web, other books, other students, or any other sources that perform the required functionality of your project.

Similarly, you may not provide copies of your code to other students. It is your responsibility to take reasonable precautions to prevent other students from having unwarranted access to your code.

You may use any GUI toolkits, libraries, or other sources of code that help you perform common functions not directly related to the features you are required to implement. For example, the code necessary to parse input data files or manage GUI dialog boxes would fall into this category. You may also share such code with other students; in fact, we encourage you to do so. However, sources should be cited and credit given properly.

You may discuss general ideas and implementation strategies with other students. Indeed, since the goal of this class is obviously education, we encourage you to help each other. For instance, you might suggest using a hash table instead of a linked list. Or you might see the run-time error of another student’s software, recognize it as similar to one you encountered, and provide a high-level explanation of what you did to fix it.

You may not collaborate with other students in directly developing code, except as allowed above. You should never look at other students code, and you should never allow other students to see your code. This includes pseudo-code as well. Don’t post code on the class newsgroup or leave your code laying around on public machines or in publicly-readable network locations. You are also not allowed to discuss specific code design with other students. For instance, if you are discussing what member variables ought to be defined in a Camera class, you are impermissibly sharing code.