As before, you are encouraged to do this assignment in a two-student team, following the principles of Pair Programming. If you've worked with the same partner for the last several assignments, see if you can find somebody different to work with: you'll both learn more that way.
"For Practice": I originally marked a bunch of the simpler problems as "for practice", not to be turned in. I've changed my mind: they are all "to be turned in," so if the only ones you figure out are the simpler ones, you still get credit for them. I've also reduced the total number of problems from what I had originally planned.
Still, there are fifteen problems, and you have twelve days to do them. Once you get the hang of them, they should take only a few minutes each, but the first problem on any new topic may take you a while. Start early!
is-nintendo?
,
empty-string?
, in-first-half?
)under-a-dollar?
,
is-17?
)much-older?
)any-two-same-pics?
)choose-picture
)count-votes-4
)smallest-of-3
)carpet-price
)who-won
)4-votes->winner
)All of these are programming problems. I want to see all the steps of the recipe, except that in the course of writing a function body, you normally replace the "..." that was in the function skeleton. I recommend putting all of the programming problems in one big Definitions pane, because some of them depend on others.
For the two animation problems (modifying problems from chapter
10), please include a
check-with
clause (see section 14.3 of the textbook).
It's difficult for me to grade your testing of these functions, but be assured that I will test them, and if they don't work, it'll hurt your grade, so it's to your advantage to test them before turning them in.
Send me an e-mail, attaching the file containing your saved Definitions pane. (Make sure to save it, then test it, then e-mail it to me, or I may end up grading an out-of-date version.) Make sure to put your name in the Subject line!
If there's a particular function that you can't get working, turn in as many steps of the recipe as you've managed to do, commented out (so they don't mess up the other functions).
Also turn in a log of how many errors of different kinds you encountered in the assignment, with brief comments describing each one ("mismatched parentheses" is self-explanatory, but more complex errors might need more description). Note that "errors" means not only error messages from DrScheme, but also wrong answers. You may do this using the PSP forms, or simply by keeping track in a text file or on paper and turning it in.
In order to get you feedback quickly, I won't actually grade all of these problems; I haven't decided yet which ones I'll grade, but it'll include some easy ones and some hard ones.
Error log: 25 points
(I'm not grading on how many or how few errors you encountered,
only on whether you recorded them correctly.)
The table below has columns for each step in the design recipe, and a row for each function that I decide to grade. You won't turn in a separate skeleton, inventory, and body, but rather write a skeleton and then add inventory and body to turn it into a complete definition. However, if you don't get the definition working, you'll still get partial credit for a correct contract, skeleton, and/or inventory.
Function | Contract | Examples | Skeleton | Inventory | Body |
---|---|---|---|---|---|
whatever |
/5 | /5 | /5 | /5 | /15 |
Following directions | /10 |
Writing contracts from word problems | /10 |
Choosing examples | /10 |
Choosing names, indentation, white space... | /10 |
Coding | /10 |
Code re-use and function composition | /10 |