Programming Assignment Assessment Process
An important goal of the assignments is to teach students about design
alternatives by comparing and contrasting a number of examples of
designs based on different paradigms. Data structures taught in CS
201 and patterns covered in CS 251 will be used to reinforce the
implementation of these projects.
Programming assignments will be done individually by each
student in Java and Android. Students are assumed to be competent in
Java and basic Android. We will provide reference material on Java
and basic Android the first day of class.
Students will commit their initial submissions to their private GitLab
repository by following these
instructions. The course instructor(s) will read all initial
submissions and provide students with detailed comments on what to
fix. Instructor comments may or may not detect all problems with the
code - they are intended to help students address the most comment
problems encountered in the assignment.
Students are responsible for fixing any problems identified by the
instructor review (and other problems they identify based on their
testing). They will then resubmit their solutions to the graders
within a week after they receive the initial comments, along with
responses that outline how they addressed the initial comments from
the course instructor(s).
The graders will review the final submissions and assign the grades.
The bulk of the grading for each programming assignment is based on
the results of the automated unit tests provided with each assignment.
It's also important that later assignment submissions fix any/all
problems identified by the unit tests in previous assignments. In
particular, the goal should be to pass 100% of the unit tests for any
given assignment. To incentivize this ``cumulative quality'' model,
each unit test from a previous assignment that is not fixed in a
current assignment will receive a 5% penalty.
This programming assignment assessment process is more generous (and
thus requires more work by course instructor(s)) than the typical
process used to assess student programs in other CS classes. To make
this process manageable, therefore, here is a summary of the policies
for initial submissions, resubmissions, and final grading:
- Students are responsible for ensuring that all their program
files, tests, and project build scripts are commited to their GitLab
repository on time.
- Initial submissions that aren't turned in by the due date/time
will not be reviewed by the course instructor(s). Moreover, students
who do not submit their assignments for review on time will receive a
50% deduction on their final grade for the assignment.
- Students who do not attend class on a regular basis will receive
a warning and will not have their submissions reviewed by the course
instructor(s). Students who persist in not attending class on a
regular basis without a legitimate excuse will not have their
assignments graded.
- The code submitted to the course instructor(s) must compile
correctly "out-of-the-box" and it must make a "good faith" effort to
address all the "TODO" comments and follow the specification.
Submissions that do not meet these criteria will not be reviewed and
will be subject to the 50% deduction described above.
- Students are responsible for addressing comments from the course
instructor(s) within a week after receiving these comments. If the
comments are not addressed within this time period the final grade
will be based on the original submission using the version of the code
in GitLab.
- Please make sure to keep the original "TODO" tags in your initial
and revised submissions. Note that the initial evaluation may not
identify every problem in your code, so make sure to also carefully
examine the "frequently made mistakes" synopsis that's posted after
all the assignments have been initially reviewed to ensure you have
fixed many problems.
- The code submitted to the graders after addressing the initial
comments from the course instructor(s) must build and pass all of
the regression tests. If not, points will be deducted, based on the
grading criteria summarized above.
- The code should also be well-written and well-commented. If not,
points will be deducted, based on the grading criteria summarized
above.
Students are expected to submit programs that meet these criteria,
i.e., it's not the instructor(s) or graders responsibility to fix
these problems for the students and engage in an iterative
resubmission process. Moreover, because we carefully inspect,
compile, and run all submissions, we quickly identify students who do
copy each others' programs. Please make sure to do your own work,
therefore, to avoid violating the Vanderbilt University Honor
Code.
Finally, to encourage you to write well-designed software, we reserve
the right to change the assignment specifications at any point before
the due date. Expect this to happen several times during the
semester. If you have written your program in a modular fashion the
changes will be trivial to implement.
Back to CS *253 home
page.