Core Assignment Values
The following are core values for all assignments in CS 3110. Think of these as the driving factors behind many of the decisions the course staff makes about assessing your work.
Honesty is crucial to programmers and scholars. You must be honest about your work, as discussed in the page about Academic Integrity.
Scope is negotiable; quality and timeliness are not. When a programmer can’t deliver everything the client wants, there are three control knobs that can be turned: delivering fewer features, delivering worse code, or delivering late. In 3110, we expect all students to produce high-quality code that is delivered on time. But we do not expect all students to deliver all features of a programming assignment. For that reason, each assignment will usually identify satisfactory, good, and excellent levels of scope. Think of those levels of scope as corresponding to letter grades of C, B, or A, respectively.
“Don’t break the build” is a mantra among professional programmers. It means never publishing code that fails to compile, or that fails to pass a test suite. In the context of 3110, the grader needs to compile your code against a test suite. But unlike in a professional setting, we can’t release the entire test suite to you in advance. So instead, we ship 3110 assignments with a makefile that helps you ensure that your code will compile against the grading test suite. The details of that makefile differ from assignment to assignment, but there is usually a
make checkcommand that will check the types of any required names. It is your responsibility to ensure that your solution passes
make check. If it doesn’t, the grader probably won’t be able to grade any of your solution at all, which will have serious consequences for your grade—usually, it results in a score of zero on the assignment. It is not the grader’s responsibility to fix your code if it fails to pass
make check. Likewise, we often provide some public test cases, and it is your responsibility to ensure that your code compiles against those (unmodified) test cases.