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
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.
The requirements to earn a grade for a project code review or design milestone differ depending on the milestone.
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.
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:
Collections.sort
instead).ArgumentParser
for handling command-line arguments instead of creating custom code for the project.java.util.concurrent
package.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.
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.
TODO
comment where it appears in your code base.
TODO
comment means, reach out to the reviewer on Piazza with a link directly to the comment in your code.TODO
comment correctly, try your best and request another code review when you are ready. Remember, you will still make mistakes throughout this learning process! You will get feedback in your next review, not in-between reviews.TODO
comment everywhere they appear in your code base, not just where the TODO
comment appears.
TODO
comments from previous project milestones as well. For example, if you are advised to create a new class for Project 2 Search, consider what you learned about encapsulation from your Project 1 Index code reviews.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!