CS 3723 Programming Languages


Dishonesty Policy, Fall 2000

Dishonesty in computer science courses has been a problem world-wide for decades, since computer science has such an emphasis on producing machine-readable assignments. The most common form of dishonesty is for a student to produce program source code with help from others. He or she can get help from someone not in the class, from someone in the class, or two students in a course can collaborate, producing essentially the same program. A student can simply copy another student's program, often with reformatting, recommenting, and with changes to identifier names and other changes. If listings with output are handed in, a student can edit the output so that it is correct. There are also all the normal ways to improve exam scores, but they are not specific to computer science. No completely satisfactory ways of coping with this dishonesty have ever been devised. Here are possible strategies:

As always, the best approaches are positive ones:

There are other more negative and aversive methods. The fear of their application can also deter dishonesty.

Unfortunately, dishonesty remains a problem here at UTSA. The trick is to institute measures to limit dishonesty without producing undesirable side effects. For a more complete discussion of these issues, refer to my report Plagiarism by Student Programmers and to references cited there.

Measures to be adopted to limit academic dishonesty, CS 3723, Spring 2000:

  1. In the header comments of each program source (after comments identifying the student, the course, and the assignment), each student must include a "Sources and Collaboration" section. Here the student must identify any sources for program code that he or she did not write individually and personally. The student must also identify any help or collaboration that partly produced the program. It is important to note that there is no penalty for the use of outside sources or for collaboration, except that if major portions of the program are not the student's own work, he or she may not receive full credit. If someone helps you debug your own code, there is no need to even mention this. (You can get similar help from the instructor.) Sample section:

          Name: Joe R. Utsastudent
          Course: CS 3723, Programming Languages
          Assignment: Project, Part II. Initial Parser
          Sources and Collaboration:
             All the code is my own work except for:
             1. I found the function "computePrimes" in
                the algorithms textbook.
             2. Mr. Otherstudent allowed me to use his
                routine for handling the priority queue,
                since I couldn't get my code to work.
          Overview: ...
    

  2. The programming for this course consists of a single interesting (at least to me) extended project. The skills gained in completing the project should be useful later in a student's career, and they are directly related to understanding the course material. I hope that the interest and usefulness will limit plagiarism. Also a single copied program does not solve the need to extend it with more functionality at the next step of the project.

  3. For this course I scaled back the scope of the programming project. I also added written assignments.

  4. In case you could not get part of the project to work, I encourage you to hand in your best effort for partial credit. Then for later parts you may use someone else's earlier program for the previous parts, with no penalty (but the borrowed code must be identified, as mentioned above).


Revision date: 2000-08-25.
    (Also known as 25 August 2000, or 8/25/00.
      Please use ISO 8601, the International Standard Date and Time Notation.)