Software Hygiene for Introductory Computer Science

June 19th, 1998, minor changes 1/2/00 

Introduction

Because electronic information can be moved around and replicated so easily, there is always the danger that someone may get hold of your homework solution and use it to cheat.  Software Hygiene is a set of rules and procedures you can follow that will minimize the risk that you get implicated in a case of cheating.  This document will hopefully eliminate most of the ambiguity about what constitutes cheating in this course.

Even if you know with all your heart that you would never deliberately cheat, it is still possible for someone to get hold of your source code if you're not careful.  You are responsible for the security of your own documents.  What this means is that if your submission is found to correlate too strongly with some other submission, YOU BOTH MAY BE CONSIDERED RESPONSIBLE, even if the other party copied off of you.  So be careful, and follow the rules outlined here.  They should ensure that you avoid these sorts of entanglements.

1. Use of Lab Facilities

The lab is a potentially unhygenic place to work.  You are sharing a resource (the computer and network) with many other students, some of whom may attempt to take advantage of you.  Here are some tips to follow:

2. Use of Mailing Lists and Newsgroups

The course mailing lists and newsgroups are an excellent way for you to help each other out.  You are encouraged to share ideas and tips with each other, and discuss (in general terms) possible solutions to the homework problems.  Here's what to remember when using the mailing lists: Of course, there will be times when you have some sort of C++ question and you would like to put source code in a message.  Instead of cutting and pasting directly from your homework, consider one of the following:

3. Working With Others

Despite all this paranoia, you are still encouraged to work together on the assignments to a limited extent.  You just have to be careful about what "working together" means. Occasionally, assignments will allow small groups (2 or 3) of students to work together.  In these cases, the rules presented above simply expand to encompass the group.  IF the assignment calls for group submission, you may collaborate on all aspects of the design and implementation of the homework, but you may NOT share your work with other groups.