Honor Code

All students in CS classes must adhere to the GMU Honor Code. In addition to this honor code, the computer science department has further honor code policies detailed below regarding ALL kinds of work for classes in the CS major, including programming projects, written text and reports, diagrams, pseudocode, and so on.

Your instructor may state further policies for his or her class and on individual assignments as well. For any area you are unsure about, you must request clarification from your course instructor.

Unless otherwise stated, at the time that an assignment or project is given, all work handed in for credit is to be the result of individual effort. (Note that in some classes group work is encouraged; if so, that will be made explicit when the assignment is given.) Unless explicitly stated, permission to do something on one assignment, in one class, or by one instructor does not automatically give permission in any other context.

You (or your group, if a group assignment) may:
  • seek assistance in learning to use the computing facilities;
  • use code, algorithms, and techniques provided to you by your instructor as part of the course material (textbooks, lectures, etc.);
  • seek assistance from official language documentation (e.g. Python.org for Python, Oracle for Java, Linux man-pages for C) to assist in learning syntax and understanding error messages;
  • seek assistance in understanding information from the official language documentation (e.g. the definition of an error message);
Unless permission to do so is granted by the instructor, you (or your group, if a group assignment) may not seek assistance from anyone else, other than your instructor or teaching assistant:
  • in designing the data structures used in your solution to a problem;
  • in designing the algorithm to solve a problem;
  • in modifying the design of an algorithm determined to be faulty;
  • in implementing your algorithm in a programming language;
  • in correcting a faulty implementation of your algorithm
  • in determining the semantic correctness of your algorithm.
Unless permission to do so is granted by the instructor, you (or your group, if a group assignment) may not:
  • give a copy of your work in any form to another student during or after the semester;
  • receive a copy of someone else's work in any form;
  • attempt to gain access to any files other than your own or those authorized by the instructor or computer center;
  • inspect or retain in your possession another student's work, whether it was given to you by another student, it was found after other student has discarded his/her work, or it accidentally came into your possession;
  • in any way collaborate with someone else in the design or implementation or logical revision of an algorithm;
  • present as your own, any algorithmic procedure which is not of your own or of the instructor's design, or which is not part of the course's required reading (if you modify any procedure which is presented in the course's texts but which is not specifically mentioned in class or covered in reading assignments, then a citation with page number must be given);
  • incorporate code written by others (such as can be found on the Internet); note that permission to view one article on a given website does not automatically provide permission to view other articles on the same website (or other websites)
  • use assistive technology, artificial intelligence, or other tools to complete assignments which can generate, translate, or otherwise create/correct code or answers (many types of assistive technology may be permitted, but you must ask permission)
You must:
  • report any violations of the University or CS honor code that you become aware of;
  • if part of a group assignment, be an equal "partner" in your group's activities and productions, and represent accurately the level of your participation in your group's activities and productions;
  • protect your work using reasonable security, this includes locking computers with a password, guarding USB drives and computers, not leaving files on public computers, not uploading work publicly on the internet, not posting your work on private websites with group access (e.g. a discussion forum);
  • use the internet responsibly, and research what information is shared publicly before uploading your work to a website or server;
  • take equal responsibility for any access gained to your work which could have been prevented by the above two statements both during and after the semester in which you take the class;

If you need help interpreting any of the above information, or you are unsure if permission has been granted to do something, you must request clarification from your course instructor.

Honor Code Examples

Disclaimer

Any specific websites, tools, hardware, or software listed below are EXAMPLES. This is not a comprehensive list of all possible violations.

CS-Freshman Example

Sam receives a homework assignment in CS211 that asks him to write a “merge sort” in Java.

The following are/aren’t ok for Sam to do:

  • Just Fine:
    • Use the algorithm explained in the textbook for his class.
    • Use the pseudocode given in the lecture slides by his professor.
    • Read Oracle’s Java Tutorials to remember how to write a loop. (Oracle maintains Java’s official language documentation.)
    • Visit a TA during office hours to get help with his implementation.
    • Ask a classmate “what is a NullPointerException?” – a topic discussed in class

 

  • Not OK (and why not):
    • Google “merge sort in Java” and read a tutorial website to “get inspiration” – Sam is cheating by getting additional help with his implementation.
    • Take code from the tutorial website and use it as the “model” for his work – Sam is claiming someone else’s work as his own.
    • Take his work and put it on Pastebin (a website that gives public access to anything uploaded) – Sam has just given the homework answers to anyone searching that site.
    • Post his code to the class discussion forum in a “public” post for the whole class to view – Same as above.
    • Leave his computer on and unlocked in his dorm which he shares with another student – Sam is allowing anyone who enters the room to take his work.

CS-Senior Example

Sam wants to share her school work with a potential employer.

The following are/aren’t ok for Sam to do:

    • Just Fine:
      • Email her work privately to the employer.
      • Post her code on a private GitHub repo and add the employer as a contributor.

     

    • Not OK (and why not):
      • Post the code on a public GitHub repo – Sam has just given the answer to a project to anyone on the internet, and if the project (or a similar one) is used again, she will be liable for access gained to her work.