Programming Assignment Logistics

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 will be used to reinforce the implementation of these projects.

Programming assignments will be done in Java on Linux, MacOS, and/or Windows and will be done individually by each student. Students are assumed to have competence in C++ at the level taught in CS 201. We will present lecture material on C++ early in the course.

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.

The programs will be graded using the following criteria:

Students will commit their initial submissions to their GitLab repository. 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 then responsible for fixing any problems identify (and other problems they identify based on their testing) and resubmitting 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).

This 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, 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(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.

  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(s). 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(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.

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

  6. Please make sure to keep the original "TODO" tags and review comments in your revised submission, along with a brief synopsis of how you address these comments so evaluators will know what you were supposed to correct. 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.

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

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


Back to CS251 home page.