JMU JMU - Department of Computer Science
Help Tools
Programming Assignment Policies


Unless you are specifically instructed otherwise, you must comply with the following policies regarding programming assignments.

1 Collaboration

The source code you submit must be entirely your work [with, perhaps, assistance from the instructor(s) and/or lab assistant(s)]; no part of it may be the work of anyone but you. If the source code contains work that is based on help you received from an instructor or lab assistant then you must make note of it in the documentation for the relevant class(es).

One way to ensure this is quite straightforward -- when talking to other students or friends, never refer to code written for the programming assignment, either directly or indirectly. In other words, you can ensure that the source code that you submit is entirely your work by not talking to anyone else about source code written for the assignment, errors generated by compiling or running source code written for the assignment, or the output generated by executing code written for the assignment. (It is possible to have very detailed conversations about the topics covered in the programming assignments, and the rest of the course, without ever referring to the source code.)

Automated tools (like, for example, Moss) may be used on any submission (including "early" submissions), at any time, to detect inappropriate collaboration and to determine the originality of submissions.

2 Multi-Part Assignments

Some programming assignments will have multiple parts. Multi-part programming assignments must be completed in order. That is, before starting Part \(i+1\) you must first successfully submit Part \(i\). If you do not successfully submit Part \(i\) you will receive a grade of 0 on all parts after \(i\). (Note: The definition of "successfully" may depend on the assignment. For example, on a Web-CAT submission, your code must satisfy all of the essential qualities described below. On a Canvas submission, you must earn the minimum score needed to proceed.)

Some multi-part assignments may have different due dates for different parts (to force you to start early and, hopefully, learn the benefits of starting early). Other multi-part assignments may have one due date for all of the parts (to give you more flexibility; hopefully you will still start early and submit the different parts as you complete them).

Make sure you understand the "late submission" rules for multi-part assignments.

3 Submission

Obviously, all of the programming assignments will involve the creation of code. All code:
  1. Must be submitted electronically using Web-CAT.
  2. Must be attested to using Canvas.

In addition, parts of some programming assignments may require you to answer questions of various kinds. These parts must be submitted using Canvas.

4 Number of Web-CAT Submissions

Web-CAT is a submission tool, not a testing tool. That is, it tests your code for purposes of assessment, not to verify the correctness of your code and not to assist in debugging. Testing and debugging are an important part of the software engineering process, and you must be able to test and debug software in order to succeed in this course (not to mention subsequent courses and as a practicing programmer/software engineer).

To prevent you from relying on Web-CAT too heavily, individual assignments may have a maximum number of submissions (perhaps after a certain date) and/or points may be deducted for each submission.

You are responsible for knowing the submission rules for each assignment.

5 Grading

Solutions to programming assignments will be graded on a 100-point scale (i.e., the minimum possible grade is 0 and the maximum possible grade is 100). Points will be deducted for a variety of reasons, including: failing the tests conducted as part of the electronic submission process, failing to conform to the course style guide, failing to be properly documented, poor design, poor implementation, and inelegance.

5.1 Late Penalties

No assignment (or part thereof) may be submitted late. In other words, you will receive a grade of 0 on any part of an assignment that is submitted after the due date/time.

This rule applies to both single-part assignments and multi-part assignments (regardless of whether the parts are due on different days/times or the same day/time).

5.2 Essential Qualitites of Code

There are several other particularly important grading policies that you should be aware of:
  • You will receive a grade of 0 on any code that does not satisfy all of the correctness tests.
  • You will receive a grade of 0 on any code that does not satisfy all of the static analysis checks (i.e., does not satisfy the style checker).

In other words, you will receive a grade of 0 if Web-CAT identifies any "deductions" using either its correctness/testing tools or its static analysis/style tools.

Hence, it is incumbent on you to test your code and ensure that it executes correctly before you submit it. In addition, it is incumbent on you to use a style checker to ensure that your code conforms to the course style guide before you submit it.

5.3 Honor Code

If you violate the University's Honor Code (at any time) you will receive a grade of F for the course, other penalties may be imposed, and the violation will be reported to the Honor Council.

6 Due Dates and Times

You are responsible for ensuring that your assignments are submitted on time. You should be aware that electronic submission systems may only be able to process a few submissions per minute. This means that, when there are hundreds of students in different courses submitting at the same time, it might take an hour or more for a submission to be processed.

Your submission must be processed/checked by Web-CAT before the time that it is due. It is not enough to have it "in the queue" before the deadline.

In other words, you must recognize that the system might be severely congested and submit yout code early enough that the processing time will not be a problem. (This is not unlike a situation in which you need to be someplace at a specific time and you know that the roads might be congested. You are responsible for departing early enough; you must select a departure time that accounts for the congestion.)

7 Hardship Exceptions

Situations may arise during the course of the semester that make it difficult or impossible for you to complete an assignment on time (e.g., illness, hardware failures, travel problems). To accommodate these situations, each student has one "excused submission" that may be applied to any assignment.

If you want to use your "excused submission", you must inform the instructor, by email, within 24 hours of the relevant due date/time.

In general, you should not use your "excused submission" early in the semester for non-emergency situations, since you may need it to deal with a more important situation later. That is, in general, it is better to end the semester with an unused "excused submission" than to not have it for a real emergency.

Note that this policy is not equivalent to dropping the lowest programming assignment grade. You must request the "excused submission" at the time it is needed.

8 Definitions

Terms, equations, concepts, etc... often have multiple definitions. Whenever there is any ambiguity, you must use the definitions that are provided with the assignment.

9 Going Further

Programming assignments often give you an opportunity to "Go Further". The questions/problems/tasks in the "Going Further" section are neither required nor for extra credit. They are an optional way for you to either: challenge yourself, gain a deeper understanding of the material in the programming assignment, or gain experience with material that was not covered in the programming assignment. You may choose to complete all, some, or none of them; it is entirely up to you.

Copyright 2019