RPM Project: Milestone 3 (Summer 2022)

First, make sure to read the full project overview. It contains instructions for the project as a whole and getting started with the code. This page describes only what you should do for Milestone 3 within the broader context of that project overview.

For Milestone 3, your goal is to demonstrate that you have generalized your approach out to cover the types of 3x3 problems present in Set C. 50% of your grade on Milestone 3 is earned by meeting the minimum performance requirement; 50% of your grade is earned by completing the milestone journal.

Performance Requirement

For Milestone 3, you will earn 5% of your Milestone grade for each Basic C problem you get right up to a maximum of 25%. You will also earn 5% of your Milestone grade for each Test C problem you get right up to a maximum of 25%.

In other words: if your agent answers at least 5 Basic C and 5 Test C problems correctly, you earn full credit for the Performance Requirement of Milestone 3. Each problem fewer than that that your agent can answer results in a deduction of 5% from your Milestone grade.

Remember that when submitting answers to Gradescope, the answer choices are shuffled: the content of the correct answer to each problem will be the same every time, but it will be assigned a different number on each submission as a guard against hardcoding and overfitting.

Submission Instructions

To fulfill the Performance Requirement, follow the directions on the full project overview for submitting to Gradescope, and then submit your agent to the Milestone 3 assignment.

You may submit up to 40 times. The large majority of students do not need nearly that many submissions, so do not feel like you should use all 40; this cap is in place primarily to prevent brute force methods for farming information about patterns in hidden test cases or submitting highly random agents hoping for a lucky submission. Note that Gradescope has no way for us to increase your individual number of submissions, so we cannot return submissions to you in the case of errors or other issues, but you should have more than enough submissions to handle errors if they arise.

After submitting to the Milestone 3 assignment in Gradescope, make sure to select which submission you want to have count for your graded submission. By default, Gradescope will use your latest submission, but you may want to use an earlier one. After the deadline, this will be exported to Canvas to calculate your final Milestone grade.

This is an individual assignment. All work you submit should be your own. Make sure to cite any sources you reference or code you use (in accordance with the broader class policy on code reuse).

Milestone Journal

In addition to submitting an agent to Gradescope, you will also submit a brief milestone journal to the Milestone 1 assignment in Canvas. Your Milestone Journal must be written in JDF format. There is no maximum length; we expect most submissions to be around 5 pages, but you may write more if you would like. Writing the journal is intended to be a useful exercise for you first and foremost: it should let you externalize and formalize your ideas, it should let you get feedback from your classmates, and it should let your classmates learn from you. Your journal need should not include actual code; it should just include a description of your agent’s approach.

Note that your Milestone 3 should be all original content; if there is content that you wrote for a previous Milestone that is still pertinent, you may refer back to that content again (including quoting yourself), and then go on to discuss what has changed or what is new (or, why the same content you wrote previously is still so applicable).

For example, you might write:

In Milestone 1, I wrote that my agent works by “calculating a percentage change in the number of black pixels between each pair of frames, and checking for mathematical patterns in the changing ratio of black pixels. Then, I checked each answer option to see if it maintained the observed mathematical pattern.” For Set C, that continued to work, and in fact the patterns were easier to find because they were fit to 28 possible pairs instead of just 3.

If you need to quote large portions of your prior writing, you can use a blockquote, or include your prior Milestone in an appendix that you refer to. The important element is for TAs and classmates to be able to identify the new content.

For Milestone 3, you should answer the following questions:

  • How does your agent currently function? Depending on the inner workings of your agent, there may be a lot of different ways to describe this. For example, does it select from multiple problem-solving approaches depending on what it sees in the problem? Does it perform shape recognition or direct pixel comparison? Does it generate a candidate solution and compare it to the options, or does it take each potential answer and assess its likelihood? You need not answer these specific questions, but they are examples of ways you might describe your agent’s performance.
  • How well does your agent currently perform? How many problems does it get right on the Set C problems?
  • What problems does your agent perform well on? What problems (if any) does it struggle on? Why does it struggle?
  • How efficient is your agent? Does it take a long time to run? Does it slow down significantly on certain kinds of problems?
  • How do you plan to improve your agent’s performance on these problems before the final project submission?
  • Looking ahead to Sets D and E, which problems do you think your agent will be able to solve at present? Which problems will it struggle on?
  • What feedback would you hope to get from classmates about how your agent could do better? What challenges do you think could benefit from someone else’s feedback?

Tip: Remember, we want to see how you put the content of this class into action when designing your agent. You don’t need to use the principles and methods from the lectures precisely, but we want to see your knowledge of the content reflected in your terminology and your reflection.

Submission Instructions

Complete your project journal using JDF, then save your submission as a PDF. Journals should be submitted to the corresponding assignment submission page in Canvas. You should submit a single PDF for this  assignment. This PDF will be ported over to Peer Feedback for peer review by your classmates. If your assignment involves things (like videos, working prototypes, etc.) that cannot be provided in PDF, you should provide them separately (through OneDrive, Google Drive, Dropbox, etc.) and submit a PDF that links to or otherwise describes how to access that material.

This is an individual assignment. All work you submit should be your own. Make sure to cite any sources you reference, and use quotes and in-line citations to mark any direct quotes.

Peer Review

After submission, your journal will be ported to Peer Feedback for review by your classmates. Grading is not the primary function of this peer review process; the primary function is simply to give you the opportunity to read and comment on your classmates’ ideas, and receive additional feedback on your own. All grades will come from the graders alone.

You receive 1.5 participation points for completing a peer review by the end of the day Thursday; 1.0 for completing a peer review by the end of the day Sunday; and 0.5 for completing it after Sunday but before the end of the semester. For more details, see the participation policy.