Skip to content

Latest commit

 

History

History
68 lines (37 loc) · 5.8 KB

labsubmission.md

File metadata and controls

68 lines (37 loc) · 5.8 KB

Lab Submission Procedure

Summary

  1. Functionality deadline: Code passing all unit tests is committed to github.
  2. Code review: If and only if code is passing all tests, the professor or TA reviews code and outlines required design changes. At the request of instructor or student, an in-person code review may be scheduled.
  3. Revision: Student applies all required design changes.
  4. Resubmission: Student commits revised code to github and creates a new release.
  5. Repeat: At most once per week steps 2-5 will be repeated until the final deadline.

Overview

The goal of the code review process is to allow you to improve your code design skills and it is expected that you will need to revise and resubmit your solution, possibly multiple times. This is a learning process!

Grading

Functionality [85%] - Code passing all provided test cases by the functionality deadline is eligible for a maximum of 85% of the final grade. A solution that does not pass all test cases by the functionality deadline may earn partial credit for functionality but will earn no credit for design.

Design [15%] - The solution submitted at the final deadline will be reviewed and awarded up to 15% of the credit based on the quality of the code and how well the issues identified during code review have been addressed.

Deductions

The following deductions may be applied to any solution. Note, this means that the final grade may be lower than the 85% originally awarded for functionality! Make absolutely certain that you have carefully reviewed a revision before submitting it for the next code review.

Failing test cases - If a resubmitted solution does not pass all test cases a 5-point deduction will be applied.

Failure to address all open issues - If a resubmitted solution fails to address any in-line comments or open issues a 5-point deduction will be applied.

Failure to schedule in-person code review - If the instructor requires an in-person code review for a specific lab failure to schedule in a timely manner may result in a 0 on the assignment.

Failure to explain or reproduce code - At any time, a student may be required to meet with the instructor for an in-person code walkthrough. This is different from a standard code review. During the code walkthrough the instructor will ask the student to explain his/her code or to reproduce part of the solution. Failure to adequately explain or reproduce code will result in a 0 on the assignment.

Functionality Deadline

Each lab will come with several unit tests. Do not modify these tests! By the functionality deadline, the solution committed to github must pass all unit tests provided to be eligible for the Design portion of the grade.

The functionality deadline is a hard deadline. Code that does not pass all test cases by the functionality deadline will not be reviewed.

Code Review

If your solution meets the functionality requirements it will be carefully reviewed by an instructor or TA. During the code review, the reviewer will look for poor design elements and will note all design elements that must be improved for the next revision. Examples of poor design elements include long and confusing methods that should be decomposed into multiple smaller methods, and inefficient algorithms that result in slow execution.

Required revisions will be noted either as inline comments or as open issues.

⚠️ Make sure to fetch changes after code review and before you begin revisions. If you do not you are likely to end up with nasty merge conflicts.

In-Person Code Review

The instructor may require you to have an in-person code review for any of the lab assignments. This is different from the code walkthrough described above and is an opportunity for you to speak with the instructor in-person about your design. Most students find the in-person code review very helpful as you will be able to ask questions about the inline comments and open issues in your solution.

The in-person code review does not mean that you have done something wrong. All students will have at least one in-person code review for one of the three lab assignments, and it is an opportunity for the instructor to get to know you better!

If an in-person code review is required you will be sent a link to a google calendar and asked to sign up for a 15-minute appointment slot. If you do not make a timely appointment you risk a 0 on the assignment.

You may also request an in-person code review for any assignment, for example if you have questions about your design that you would like to discuss with the instructor.

Revise/Resubmit/Repeat

It will normally take approximately one week for the instructor or TA to complete a code review. Please do not expect immediate feedback! Once the code review is complete, you will need to address all open issues and comments before resubmission.

⚠️ Assignments may be resubmitted at most once per week. Make sure you plan for this as you consider the final deadline.

As noted above, deductions will be taken if a resubmitted solution does not pass all test cases or does not address all open issues and inline comments. You need to be certain your solution is worthy of a resubmission before you create a new release. You may always visit office hours with questions, but please do not ask the instructor or TA to pre-grade your assignment to tell you if it is ready for resubmission.

Final Deadline

After the final deadline, the instructor or TA will grade your final solution and your final grade will be recorded. Congratulations -- time to move on to the next assignment!