Lecture notes for the Introduction to Computer Science I by James Tam Return to the course web page

CPSC 231: Academic Misconduct (Cheating Vs. Collaboration)

Assignments must reflect individual work.  Each student must demonstrate that he or she can complete the assignment on their own so you cannot copy the work of other students nor can students work in groups.  Any suspected cases of cheating must be forwarded by me onto the Department Head, which may be passed on further to the Office of the Dean of Science and Student Services resulting in penalties such as failing the course or even expulsion from the university.

A few questions and answers to help clarify things:

Q: What constitutes cheating in this course? 
A: It is probably similar to what you have seen in other courses.  Cheating has occurred if you hand in someone else's work as if it were your own (without crediting the other person).   Furthermore if a student knowingly provides his or her graded work to another student  then both students are guilty of academic misconduct (the first student helped the second student to cheat).


Q: What happens if you include someone else's code and you do credit the other person properly e.g., You use the code from a text book and you include the following citation:  The function (listed below) for opening and reading from a file was taken in it's entirety from the book "The Tao of file systems" by James Tam
A: This will not constitute cheating because you clearly indicated that the work was not your own. Just make sure that you indicate where you got it from in your program documentation.  Don't just include it in your code without citing the source (even if it's from your instructor or someone working in the Continuous Tutorial) because you will be claiming that this work is yours when it isn't so you will be guilty of academic misconduct. Note: The crediting of other's people work must be very specific and clear because your marker needs to be able to unambiguously determine which parts of your program you  did complete and which parts came from an outside source. It's probably best to specifically document each block of external program code (e.g., function, branching or looping construct) that you've used. Don't be vague e.g., Some parts of the program were written by me and some other parts were written by someone else.
 

Q: What is the difference between getting help from someone vs. cheating?
A: If you describe the process to someone using plain English then you should be okay because then the person still must figure out how to implement your generic ideas in the appropriate programming language used for the course (both of you are handing in separate submissions).   If you simply give (or communicate in some form) your code to a friend then this is NOT okay, even if your friend says that he or she will only use your solution only as a *guide* to figure out the answer and *promises* that he or she won't just copy it into their own program. 

Okay Not okay
To display the contents of a two-dimensional array onscreen you will need two nested loops and two loop controls: one to keep track of the row that is currently being displayed and one to track the current column value.   Start by initializing the outer loop to the value of the lowest row value and the inner loop to the value of the lowest column value and display that array element.  The inner loop will travel along the row from the lowest column value to the highest column value.  After the last column has been reached, the outer loop value increases by one which allows the inner loop to traverse the second  row.  The outer loop will repeat until all the rows have been traversed.  
for r in range (0, MAX_ROWS, 1):
    for c in range (0, MAX_COLUMNS, 1):
        sys.stdout.write(aGrid[r][c])
    print()
 


This list of questions only includes things that I thought up as I writing the assignment specifications, if you ever unsure if a particular situation constitutes cheating or not then it is up to you to ask me.