The goal of this term project is to give you a chance to reflect on what you have been exposed to in this course, conceptually, practically, and methodologically.
You are expected:
Halcyon: To solve and to program.Vigfus: It doesn’t get old, does it.
“Mad Eye” Moody (nostalgically): Where is our capslock key when we need it?
In a constantly vigilant sort of way, your report should include
Pages should be numbered, and the narrative should be spell checked.
An inspiring (and not necessarily humorous, just on topic) quote or three would be welcome.
Throughout, remember to embrace the structure where the computation is described informally (textually), where it is accounted for with a unit-test function, where it is specified inductively, where this inductive specification is mirrored into a structurally recursive function, and where the implementation is verified to pass the unit tests – unit tests whose significance and limitations should be scrutinized.
About describing your programs: of course you should not paraphrase the code, because what is the point of that. If you have added something personal to the common code, be it extra tests, an independent solution, or the solution to an optional exercise, please add it as separate files (to be loaded after the common files), and identify them as such in the .ml files and in your report.
Finally, there will be bonus points for brevity and conciseness, because the measure of your understanding is the clarity of your discourse.
Time permitting, you are welcome to consider either of the following optional mini-projects.
If time does not permit, consider them as summer mini-projects, for they will consolidate your knowledge as well as expand it, to say nothing about sharpening your mind.
Updated with the optional mini-project about the knapsack problem [16 Apr 2021]
Created [03 Apr 2021]