This guide highlights concepts related to code review for project assignments. See the Homework Review guide for the eligibility requirements and signup process, which is the same for projects.

TABLE OF CONTENTS


Review Requests

The process for requesting a project code review is the same as the Homework Review process. Please see the Homework Review guide for the eligibility requirements, details on the automatic and manual style checks, and signup process.

Review Requirements

The requirements to earn a grade for a project code review or design milestone differ depending on the milestone.

Project Reviews (all)

Clean up your code before requesting a code review. If there are major cleanup issues with code, you will be required to resubmit the code review request and will not receive a grade for the current milestone.

For example, suppose you request a code review for v1.2.0 of your project but did not clean up your code first. During your appointment, you will be told that your code is not ready for review and asked to resubmit. You will receive no additional feedback during that appointment. You will need to create a cleaned up v1.2.1 release and re-request a code review before receiving a grade for Project v1.2 Review.

Initial Review (v1.2, v2.2, and v3.2)

This includes Project v1.2 Review, Project v2.2 Review, and Project v3.2 Review.

Your initial goal should be on simplicity first, since simple code is easier to debug and maintain. This gives us a baseline to compare against, making sure that we are only adding additional complexity to the code base for well-motivated reasons.

You can achieve this by using existing functionality as much as possible (and approved). Specifically:

You will then receive advice during your code review appointment on where it makes sense to add additional complexity for the sake of generalization, reusability, encapsulation, or efficiency.

If your code is too complex, you may be asked to simplify the code base and resubmit the code review. This is true even if you have a design that might pass later code reviews, since we need the baseline first before making other design considerations.

Otherwise, as long as your code is not overly complex, you will earn a grade for these milestones by attending your code review appointment on-time.

Followup Review (v1.3, v2.3, and v3.3)

This includes Project v1.3 Review, Project v2.3 Review, and Project v3.2 Review.

Your goal with your followup review is demonstrate how you addressed the TODO comments from the initial code review.

You will receive additional advice on the design of your code during your appointment, with an emphasis on generalization, reusability, encapsulation, and efficiency.

If you have too many unresolved TODO comments, you may be asked to resubmit the code review.

Otherwise, as long as you attempted to address the TODO comments from the previous review, you will earn a grade for these milestones by attending your code review appointment on-time. This is true even if you made a mistake in how you addressed a TODO comment!

Design Review (v1.4, v2.4, v3.4, and v4.2)