Skip to content

Academic Integrity Guidelines for Computer Science

The purpose of this document is to interpret Charleston Southern University's definitions of academic dishonesty and plagiarism in the context of computer science courses. These guidelines clarify these policies but do not supersede them. Many of these principles are also drawn from professional codes of ethics in computing, such as the ACM Code of Ethics and Professional Conduct, which apply general ethics to all computing activities.

Goals differ between professional and educational settings. In a professional setting, the primary goal is often to produce working code or other artifacts with integrity. In an educational setting, the primary goal is learning with integrity.

Collaboration

Computer science is a collaborative discipline. Teams can accomplish more than individuals. However, your professor may require that you work individually to better serve or assess your learning. In your computer science classes, many assignments will permit or require collaboration. Collaboration may be an explicit learning goal of the assignment, or collaboration may be used in service of other learning goals.

When you turn in collaborative work, all contributors must be clearly identified. All contributors are accountable for all parts of jointly authored work. All contributors are responsible for learning from each part of the assignment.

Assistance

Whether working as a team or individually, you may seek assistance on most assignments from many sources, including professors, mentors, tutors, and lab aides. Sometimes, you may also seek assistance from classmates or other students.

Assistance with programming exercises may serve one of three purposes:

  1. To help you get started,

  2. to correct a syntax error, or

  3. to debug code that does not work as intended.

In all cases, those assisting should ask questions instead of providing answers. Never write code for another student or show them your solutions. Moving away from the computer, for example, to draw on a whiteboard, will help to emphasize concepts. Whether giving or receiving such assistance, your goal should be learning. Remember that the responsibility for completing the assignment belongs to the learner.

Websites such as stackoverflow.com assist both professionals and learners. If your professor encourages their use, these sources may suggest approaches or help you debug your code. In using such sites, again, your goal should be learning.

Others' intellectual contributions to your work must be explicitly acknowledged (e.g., by a comment in your code). Such acknowledgments credit others for their contributions, and allow readers of your code to consult the resources you used. People should be thanked by name; written information should be identified by URL or bibliographic citation.

Like proofreading, help with syntax errors is not considered an intellectual contribution (even though you might learn from it!) and does not require explicit acknowledgment.

Different courses have different learning goals. Your professor will state policies regarding appropriate collaboration and assistance in the course syllabus or individual assignments. If you are unsure if assistance is appropriate on an assignment, ask your professor!

Academic Integrity and Professionalism

Representing one's work honestly is critical to the academic pursuit of truth. In an educational setting, assigned work is intended to help you learn. Academic dishonesty undermines your learning opportunities and results in unfair and inaccurate assessment of your learning.

Beyond the academic setting, honesty is a key aspect of professionalism. We do not wish to graduate professionals who would put their employers or the public at risk by copying code without permission or attribution, using code they do not understand, taking false credit, or pretending that code works correctly when it does not.

Academic Dishonesty in Computer Science

Academic dishonesty in computer science courses may include:

  • Falsification of program output;

  • Seeking inappropriate collaboration or assistance;

  • Failure to acknowledge collaboration or assistance;

  • Plagiarism of code.

It is always dishonest to present code as your own when obtained from another student or a public source, whether you understand that code or not.

You are also committing academic dishonesty if you knowingly help others to misrepresent their work (e.g., by providing inappropriate assistance or by publishing solutions to homework problems).

Plagiarism in Computer Science

For many simple problems, code must follow a particular structure or pattern to solve the problem correctly and efficiently. Such patterns may be developed by your textbook or in class or may be inferred by reading many programs that solve similar problems. Using these common patterns is not plagiarism and does not require citation.

As problems grow in complexity, so do programs. The programmer must exercise creativity to identify alternative approaches and wisdom to choose the best approach. Many further choices are required to translate an approach into code. Programs are copyrighted works, just like books, paintings, and musical compositions. Programmers have distinctive voices that vary in their maturity. An experienced programmer, such as your professor, can often tell when one programmer has copied the work of another.

Any code copied or adapted from another source must be cited with a comment. In your comment, provide a URL or other bibliographic information as required to find the original source. If you use a module that has an explicit license agreement, that license must be preserved along with the module.

If you are using an idea from a published program or another source beyond the textbook, cite that source and explain what idea you are using.

Like written English, programming languages do not explicitly distinguish between quotation and paraphrase. Your comments should explain whether you have copied code, adapted code, or used the ideas of others to inspire your own code.

Citation Examples

It is more important to follow the spirit of these guidelines than to use a specific citation format. These examples are provided as suggestions only.

Citing a person: Morgan helped me understand how to use a dictionary to map from names to locations.

Citing an online source: I was having trouble opening files from the web. StackOverflow showed me how to use the encoding parameter of the open() method: https://stackoverflow.com/questions/28104377/how-to-convert-utf-8-code-to-symbol-characters-in-python

Using a licensed module: John Zelle's graphics.py module is licensed under the GNU Public License (GPL). When you download this module and use it in your code, you may not delete the preamble that identifies the author and the license agreement.

Artificial Intelligence (AI)

While proper AI use is an essential skill, misuse of AI will be a constant concern. AI misuse in an academic setting short-circuits the learning process to give the illusion of proficiency without the necessary depth. This is not a new problem. The advent of the pocket calculator posed a similar problem in that students could arrive at an answer without understanding it. The proper purpose of AI use in academics focuses on developing personal problem-solving skills.

Before AI assistance, check with your instructor to determine if it is (1) prohibited, (2) permitted, or (3) required for a given course or assignment.

  1. AI use may be prohibited to ensure that you have the basic concepts, just as children should be comfortable performing division in mathematics before being allowed to divide using a calculator.

  2. AI use may be permitted but not required. Understand the limitations of AI and that you are responsible for the output whether it is AI-generated. Be prepared to explain how you used AI to accomplish the task and ensure that you cite it properly. Your professor may have specific instructions for your course such as saving prompts.

  3. Your professor may require the use of AI for certain assignments. All the aspects mentioned for permitted use apply. Because the AI aspect is part of the learning experience, expect detailed instruction on reporting requirements, such as saving prompts, how you validated the results, and how useful AI was in accomplishing the task.

Acknowledgments

This document was adapted from Whitman College's Guidelines, which is licensed under a Creative Commons License. The authors draw upon ideas in the Grinnell College Computer Science Academic Honesty Policy, particularly in our discussion of academic honesty and professionalism, as well as the ACM Code of Ethics and Professional Practice. Also, they draw upon Tips for Tutors provided by csteachingtips.org in our discussion of assistance with programming exercises.

Last updated: