Math 176 - Data Structures - Fall 2000 - Professor Buss
Academic Integrity for Programming Assignments

The programming assignments for Math 176 are to be carried out individually (not with a partner as is sometimes done in programming courses).  There are several reasons, but the main reason is that programming work in real-world, production environments is almost always performed on an individual basis.  Thus it is valuable for students to learn individual programming skills. 

On the other hand, one of the best ways to learn programming skills is from fellow students and even from looking at other people's code.  So I have prepared the following policy about what is and is not permitted while performing programming assignments.

Programming can often be a very difficult task, since it not only requires careful design and planning, but also requires complete precision and attention to detail.   To learn to program well, there is no substitute for experiece and you must do programming on your own to learn to program well.

Guidelines for academic integrity for Math 176 programming assignents:  The guiding principles are:  (1) you must do your own work, (2) you may consult with other students or with people from outside the class, but must be sure to "internalize" all advice so that you could later recreate the programming work without having to again ask for assistance.   I list below examples of what is and is not permitted in your work on programming assignments.  If you have other questions about what is or is not permitted, please ask me!

Definitely permited:

  1. Asking someone about the general structure of their program.   Asking for a high-level description of how they implemented a routine.  For example, asking "How do you keep track of pointers when doing a rotation?"    or  "What did you do to handle the case where the first element of the tree is being deleted?").

  2. Asking someone, "I can't get rid of this compile bug, would you look at my code and tell why I am getting this compilation error?".

  3. Asking someone: "Can you lend me some test data that you used to test your program?"

  4. Asking someone: "Can you give me suggestions on how to debug my program?"

  5. Getting any help that the T.A.'s and I are able and willing to give you.

Permitted only on an occasional basis:  (If you need help of this type more than very occasionally, it means you are not performing well enough on the programming assignments.)

  1. Asking someone to help you debug your program.  This is permitted if they sit beside you and give you suggestions on what to do, while you type the commands.  But it is not permitted if they do the debugging for you.

  2. Asking someone, "I've been working on my add() function really hard, but cannot get it to work right.  Would you look at it and see if you can see what the problem is?".   BUT: without the precondition that you've already been working hard on it yourself, this would not be permitted.  Further, once the problem is identified, you should fix it yourself.

  3. (This one is definitely very marginal but is permitted on an occasional basis.)  Asking someone if they will show you a small part of their code.  This is permitted only if you do not directly copy the code.   For instance, if you look at their code and then take a 5-10 break and then code your own routine on your own without referring to their code, then this is fine.     However, this is not permitted to do this for a large part of your code!!

Definitely not permitted:

  1. Copying code that you did not write.  This includes the code of fellow students or code found from other books or other sources.

  2. Turning in code that someone else wrote.

  3. Taking credit for work that is not your own.

We are on the honor system.  If I detect academic dishonesty, it will certainly be treated seriously.  However, I do not have any good way to enforce academic honesty on programming assignments besides rather difficult methods of comparing programs.  Thus, academic integrity in this class has to be on the honor system and you, as students, have the principal responsibility for upholding standards of academic integrity.  You are requested, firstly, to not to seek or ask for improper help, and secondly, to not give any improper help on the assignments.  

    Disclaimer: The above guidelines apply only to Professor Buss's Fall 2000 Math 176 programming assignments and may differ from other classes' standards.  The usual academic guidelines apply to the rest of the Math 176 course work, including homeworks and exams.