Student Integrity Requirements and Policy for Dr. Jaffe's Classes,
with Particular Regard to Programming Assignments

The University Academic Regulation and Procedures contains a statement of the university's policy on academic integrity and the sanctions that can be imposed for a violation. I'm pretty easygoing about most things, but not cheating. I won't just warn you gently the first time; I don't believe in "every dog gets one bite" in this regard. If I catch you cheating, I will propose one of the heavier of the available sanctions then and there. Count on it.

Collaboration on programming assignments is somewhat of a gray area, however, since we all need help from time to time debugging our programs (even me). Here's how I see it: It's OK to get minor assistance from a colleague to get the logic down and/or debug particularly troublesome code or compilation problems (that's certainly what we do in the real world, too).    But ultimately, I want you to write your own source code and then compile and debug it yourself. Don't copy someone else's code. Making an electronic copy is cheating even if you edit it a bit afterwards; so is composing your own version based on a copy of someone elese's code that you're reading while you type your own. I don't care how it was reproduced (printed, handwritten, electronic, etc); the mechanism is not the point: I regard all forms of copying as cheating. Don't even have a colleague do too much of the hard work for you on one of your files that you typed in initially yourself.  If your colleague needs to write or rewrite a big chunk of your code for you to help you understand, fine: Watch closely and learn from it. Then delete that file and go off and try it again yourself. Get help if you need it (and remember that I myself am always available to help you); but write, compile, and debug your own programs yourself.   If you are unsure of where to draw the line, come talk to me before turning in work that I may later decide violates these (I hope) rather reasonable rules. Note:

  1. There are programs written for CS professors that compare student programs and report when they look too similar from a variety of structural standpoints having nothing to do with variable names. I don't particularly want to be a cop, but I don't want to waste my time grading stuff that doesn't reflect real student work.  If I think you've gone too far and abused my good nature here, I'll get really irritated.  Some of the sanctions I can propose are pretty severe.  See to it that I don't get that irritated.
      
  2. If you really put your mind to it, I'm sure you can cheat and still fool me on the homework; but if you do, you'll still leave yourself too ignorant to do well on the exams.  That's partially why each class is graded as it is:  No individual homework assignment counts enough to make it really worth your while to try to plagiarize someone else's work.   And if you waste your time cheating on the homework well enough to fool me, you won't learn what you'll need to know for the exams.  Trust me; I've been through all this before.
      
  3. I sometimes get asked about students working in a group on a programming assignment.  I don't encourage this practice (the more you figure out how to do these programs on your own, the better you'll understand what I want you to understand); but, if done in accordance with the guidelines, above, I think it's acceptable:  Namely, once the group has a working program, throw it out.  Then go off and do it again on your own, completely — i.e., start over again from scratch based on what you learned in the group; do not make a copy of any sort of the group's work, not even a handwritten one.

This page last changed 4 Oct 2012 by M.S. Jaffe