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:
-
Must be submitted electronically using
Web-CAT.
-
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.