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:

  1. Students are responsible for ensuring that all their program files, tests, and project build scripts are commited to their GitLab repository on time.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.