24.1
What is This Assignment’s Purpose?
This assignment gives you a feel for software development in stages. Think of each stage as a software release. As so often happens in real-world software development, the requirements keep evolving with each release. The cleaner and more flexible your code for an earlier release, the easier it will be to improve for later releases.
In addition, the problem also gives you a chance to explore a small optimization problem.
Theme Song
Time by Pink Floyd
Problem Setup
This assignment is loosely based on the game of 24, but we will define our own rules here, so please pay attention to what is below, rather than following what is on the Web.
To help you with planning, this part of the assignment has three
stages, all of roughly the same complexity as the first stage—
You should not try to peek ahead to the next stages through any means; doing so would be a violation of the Academic Code.
Unlike in previous assignments, you will be given only one chance to submit at each stage (like a company making a code release of a new version: once it’s released, it’s out there). There are no take-backs or redos or undos, so please submit with care.To repeat: you can submit each stage only once. We will grade your earliest submission, not your latest one.
For each stage after the first, after you submit, Gradescope will give you the URL for the problem statement of the next stage.
In the forms you will need to enter numbers. Please don’t use commas, etc. Use one of Pyret’s notations (if you need, you can use decimal or fractional): whatever you write should be machine-readable by Pyret (paste it back into Pyret to make sure it is accepted, before submitting).
You may use any features or libraries you have used on prior homeworks.
Use the filenames 24-code-1.arr, 24-code-2.arr, and so on for each stage.
We will be evaluating your code in part based on how effectively it can be reused in more general contexts.
There are no wheats and chaffs for this assignment. For this reason, use just CPO for this assignment.
Except when indicated otherwise, assume each part of the assignment specification remains unchanged in subsequent stages.
Recall that you cannot use any late days on this assignment.
Once you’ve read these instructions, go to Stage 1.