PROGRAMMING ASSIGNMENTS AND THE HONOR CODE

     Programming assignments are pledged work and as such are bound by the
honor code.  With respect to programming assignments the pledge covers three
general categories:  unethical aid, false work and false representation.

     Unethical Aid.  Programming assignments must be your own work.  Unless
the course instructor explicitly states otherwise, the following guideines
apply.

     1 Books.  Copying or paraphrasing program fragments without citation is
       plagiarism (William and Mary Student Hanbook, page 114-115).  A student
       may only copy or paraphrase from their own personal textbook required
       for the course.

     2 Fellow Students.  A student should never show another student with the
       same assignment his or her own work, whether in seeking aid or giving
       it.  A student may ask a fellow student general questions which do not
       pertain to a particular programming assignment.  For example, one
       student may ask another, "What does SUBSCRIPTRANGE error mean?"  but
       not "Why did I get a SUBSCRIPTRANGE error in this procedure when I ran
       my program with these data?"  More precisely, the kinds of questions
       which may be asked of fellow students are those that can be looked up
       in manuals.  Never may a student ask another about the logic of a
       programming function (that is, how to accomplish a programming aim).
       Thus questions like "How can I sort numbers as I read them in?"  are
       strictly forbidden.  Complementing the rules on asking questions about
       program assignments are similar rules for answering questions.
            When in doubt about what questions may be asked or answered, a
       student should confer with the instructor of the course or a computer
       science department teaching assistant.

     3 Computer Center Consultants.  The computer center consultant's role is
       to assist the students with the mechanical aspects of getting a program
       to run.

       In particular a computer center consultant may discuss with a student:
       3.1 The basic requirements for an assignment, such as the specific
           task to be accomplished, the specific output required, and special
           programming language features to be employed.
       3.2 The interpretation of both compile-time and run-time error
           messages.
       3.3 How incorrect program output occurred by helping to trace
           execution of the program.
       3.4 Debugging aids, such as useful tracing features of the language
           and where to place additional print statements.

       A computer center consultant may not:
       3.1 Provide specific algorithms.
       3.2 Repair a student's algorithm.
       3.3 Write any code for the student, other than print statements used
           for debugging purposes (or language-dependent debugging aids).

       False work.  A student can not claim someone else's work as their own.
  A student is prohibited from obtaining someone else's work by accessing any
  files that is not their own.  Students cannot copy, examine, or take anyone
  else's printouts or other representations of programs.  This prohibition
  includes, but is not limited to, files left on a floppy or hard disk,
  misplaced or discarded listings or storage media, and the like.  To avoid
  tempting others, students should maintain normal security standards, for
  example, a student should remove all personal files created on the PC hard
  drive, and not allow others to use personal diskettes where coursework is
  kept.

       False Representation.  Forgery is an act of lying.  Material handed in
  (say, a computer listing) must be the actual consequence of completing the
  assignment and cannot be a forgery.  Editing a file so that it appears to be
  the result of the successful execution of a program is a violation of
  pledged work, as is editing a listing banner to change its date.