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:
- Convince students that they shouldn't copy, that it isn't
in their own long-term interest.
- De-emphasize the importance of producing source listings
and in other ways create an environment where dishonesty
doesn't help.
- Emphasize individual work, hand-tailored to each student.
In the best case one would mentor and tutor students
individually.
- Allow and encourage various kinds of collaborative work
by groups of students.
There are other more negative and aversive methods. The fear
of their application can also deter dishonesty.
- Count programs for a smaller part of the grade.
- Have students submit their source in machine-readable
form. Then
- Compile and execute individual source programs.
(This checks for source programs that
don't produce the claimed output.)
- Test all pairs of submitted source programs for
similarities using plagiarism-detection
software.
- Archive source programs for at least several years
to allow checks for similarities or non-functional
programs.
- Punish offending students.
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:
- 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: ...
- 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.
- For this course I scaled back the scope of the
programming project. I also added written assignments.
- 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.)