Academic Integrity Policy

Academic integrity is important for the individual student, for the institution, and for the discipline. It is the foundation upon which the validity of a degree from an institute of higher education rests. As such, I treat it very seriously. This policy is the basic policy from which all of my course policies are derived. The course syllabus will outline the specifics of policy for a given course, which may have departures from this policy for practical reasons.


I participate in the education process here at UB because I wish to help educate students. I have little interest in negotiating technicalities and absolutely no interest in punishing students. In a perfect world, students would use any resource they could acquire in order to further their learning, and the only metric of merit for a student’s progress through a course would be the knowledge gained therein.

However, for practical reasons, it is necessary to evaluate students’ progress in an objective manner. The State of New York and the University at Buffalo require me to assign grades to students that reflect the quality of their course work and their qualitative understanding of the course material. This necessitates that certain activities are not undertaken wholly for the pursuit of knowledge, but also in order to assess student progress. Thus this policy.

Department and University Policies

All departmental and university policies must be followed. For your convenience, here are links to the relevant documents:

Allowable Resources

Each course syllabus will outline the allowable resources for the assignments in that course. In some cases the resources allowed for consultation on conceptual content may differ from those allowed for programming assignments. In general, any assigned texts or reading materials are allowable resources for any assignments (although they may not be permitted for immediate consultation on exams).

Any resource that is not explicitly allowed for the course in the syllabus should be checked with me before it is used in any assignment for the course. You will never be sanctioned for asking if a resource can be used, but using a resource that is not allowed may result in an academic integrity (AI) violation leading to sanction. Ask first!

External Resources

As the Allowable Resources section describes, the only allowable resources are those which are explicitly allowed by the course syllabus or individual assignment handouts. This section provides some examples of resources which are not allowed.

External resources such as Stack Overflow and other Stack Exchange websites are generally not permitted for any programming assignment unless explicitly specified otherwise. The use of code snippets from these or similar sites in submitted code will be considered a violation of academic integrity. Likewise, the use of code or reference to code on GitHub, BitBucket, or other similar sites without explicit permission is an a violation of academic integrity.

Generative artificial intelligence, large language models (LLM), and other artificial-intelligence-related technologies are generally not permitted. This includes examples such as OpenAI’s ChatGPT, Google Bard, Google or Bing AI models in the search interface, etc. Using these tools to produce content for a course, to assist with debugging for a course, to generate ideas for implementation, or other such purposes, is a violation of academic integrity.

Obtaining the solution to any assignment, programming or otherwise, for any course from a third party is an AI violation. This includes the purchase of new, never-before-submitted solutions. All work submitted for evaluation in any course must be your own.


Any material submitted for evaluation that is taken from any third-party resource, including resources explicitly allowed in the course syllabus, must be clearly attributed. Failure to attribute the source of any such material is an AI violation.

For example, assume that a course uses the Java programming language for a programming assignment implementation, and the course syllabus allows the Oracle Java tutorials as a resource for programming assignments. It would therefore be permitted to use code from an Oracle Java tutorial if a comment were placed alongside the copied code clearly stating the tutorial from which it was taken and indicating which code was copied. On the contrary, the same code submitted without such a comment is effectively plagiarism, and therefore an academic integrity violation.


Unless explicitly allowed for a project or in the course syllabus, direct collaboration between students on any assignment is a violation of the course academic integrity policy. For group assignments, unless explicitly allowed, collaboration with students outside of the group is a violation of the course academic integrity policy.

In addition to the obvious, collaboration includes:

  • Discussion of specific implementation strategies, even if students aren’t looking at source code or assignment text at the time of discussion.
  • Sharing source code for any reason. This includes sharing source code for testing purposes.
  • Viewing another student’s source code related to a course project for any reason.

Information Security

As outlined in the department academic integrity policy, students are individually responsible for the security of their own assignments and assignment materials. If a student’s assignment is copied due to carelessness in information security practices (e.g., leaving source code available on a shared computer or checking source code into a cloud platform with insufficient restrictions), both the student whose code was copied and the student copying that code are guilty of violations of the academic integrity policy.

For testing and development on shared machines, ensure that your home directory or source code directory permissions are sufficiently tight that other students cannot access your code. For example, you might set your project directory (or, better yet, its parent directory) to mode 0700 on a Unix machine.

When using cloud version control platforms (such as GitHub or BitBucket), ensure that your course projects are marked “private” and that other students do not have permission to access them. Both of the aforementioned providers offer student accounts which allow unlimited private repositories upon request.

Violation Amnesty

A student who has committed a violation of this academic integrity policy may receive limited amnesty for the violation by notifying me, in writing, of the violation before I have begun to assess the violating assignment. This notification must include the student’s name, person number, UBITname, and state the assignment in question and the nature of the violation. Upon submitting such a statement, the student will receive no credit for the violating assignment, but no further sanctions will be taken, and the violation will not be reported. Once I have begun assessing the assignment in question, no such statements will be permitted. Since it may not be obvious to students when assessment begins, such statements should be submitted as soon as possible after the violation occurs. While assessment may begin at any time, in general I will not look at student submissions until a project deadline has passed.

As an example, suppose that J. Q. Student copied some code from Stack Overflow for an assignment and submitted it. Upon rising the next morning, J realizes that this was a terrible mistake and wishes to relieve their conscience. J sends me the following email:

Dear Dr. Blanton,

I wish to inform you that I used some code from Stack Overflow on my submission for Assignment N. The functions foo() and bar() are not entirely of my own authorship. I wish to withdraw my submission to preserve academic integrity.

J. Q. Student
Person #12345678
UBITname jqstuden


Upon receipt of this email, I would award J a zero for Assignment N, but disregard any AI issues with the problematic submission.

Academic Integrity After Completion

You are responsible for keeping your course materials, projects, labs, quizzes, tests, and other information private even after you have completed the course. This means that you may not share this information with anyone, including other UB students, after completing the course or after graduating from UB. In particular, uploading your course projects to a public GitHub repository is a violation of this academic integrity policy, and this violation will be pursued. Note that this means that your successful completion of the course can be put in jeopardy even semesters after you have completed it, which may cause you to be unable to graduate or take courses for which it is a prerequisite until you repeat. Make sure you course information remains private!


The sanction for an AI violation will vary according to the severity of the violation. As a point of reference, the department policy, and my policy, is that submission of copied or plagiarized code or written assignments will result in an automatic failure of the course. If department records show that such an incident is not the first such incident committed by a student, I will recommend that further sanctions are taken, such as a permanent mark of academic dishonesty on the student’s transcript or expulsion from the University.