Summary Problems

Last Date of Submission for Feedback from Professor Checkoway: Friday, November 22 at 23:59

Three common student concerns in classes such as 275 are: (a) how to use feedback from previous assignments to help them grow in the future, (b) that it is hard to see the full picture of the course’s goals and learning objectives, and (c) that they only have one opportunity to complete an assignment.

Summary Problems attempt to address these concerns by providing 9 programming problems that are exemplary of what you should know by the end of the course at the beginning of the semester that you can attempt and resubmit for feedback. The Final Project for this course is based directly on these problems, so working on them and submitting them for feedback is in your best interest. Doing so is not required: it is your responsibility to determine how you will spend your time working on the problems.

Feedback, Not a Grade

You will not receive a grade on Summary Problems—only the related Final Project will be graded. Therefore, any feedback you get from me will be to help guide you towards better solutions: more accurate, better style, etc.

Preliminaries & Special Policies

You cannot work in groups on this assignment and, notably, you should not discuss the problems with another student. While the homeworks in this class can be collaborative, the goal for the Summary Problems is to help you understand your own process, weaknesses, and strengths when it comes to the course material.

You may seek out help from course staff on this assignment, but please do so in a manner that would not share potential solutions with other students. You also must tell course staff that you are working on Summary Problems prior to asking for help.

How to Submit

You will submit all attempts you’d like feedback on via pushing to GitHub and making a private post on Ed indicating which problems you attempted and would like feedback on. (You don’t need to complete all of the problems before getting feedback. You may work on them one at a time, if you wish.)

When you resubmit a problem for another round of feedback, you must submit all past attempts in the same file (labeled with their attempt number) and a short comment describing the changes you made to the resubmission. A top tip is to rename the procedure names (don’t forget recursive calls!) by attempt order (e.g. c-a-1, c-a-2, etc.) Resubmissions missing such information will not be provided with feedback.

Summary Problem Starter Information

There are two starter files for the Summary Problems, which you can download by accepting the assignment.

You are encouraged to write a full test suite for Problems 1, 2, 3, and 4.

The main file is summary.rkt which describes all of the problems inline. The additional file is where you’ll solve Problem 5, which requires Typed Racket. Make sure to not forget Problem 5!

In addition, Problems 6 & 7 extend ideas you will implement on Homeworks 5 & 6

Each Summary Problem has an approximate “timeline.” This means, by that week of the course (see the course schedule for week numbers), you will have most likely learned all the material required to complete the problem. This does not mean the problem will be easy that week, but it is an approximation of when you should try to attempt it.