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 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.
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) 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. Moreover, students who
do not submit their assignments for review on time will receive a 0
for their final grade on 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. 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 for review must
compile correctly "out-of-the-box" and 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 receive a 0 as the final grade.
- Likewise, the code submitted to the course instructor for review
my be thoroughly commented and you must run the auto-grader prior to
submitting your initial solution and push the resulting GRADE file to
your GitLab repo or your program will not be reviewed.
- Students are responsible for addressing comments from the course
instructor 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 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 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.