Software Design
Briefly describe the design of your coursework software and the strategy you took for solving it. – e.g. did you choose either recursion or high-order programming and why…
Code Listing
Provide a complete listing of the entire Scheme code you developed. Make sure your code is well commented, specially stressing informally the contracts for parameters on every symbol you may define. The code listed here must match that uploaded to Moodle. Please copy and paste the actual code – no screenshots please! Make it easy for the tutor to read. Marks WILL BE DEDUCTED if screenshots are included. Add explanatory narrative if necessary – though your in-code comments should be clear enough.
Function 0 …
Function1 …
…
…
Results – Output Obtained
Provide screenshots that demonstrate the results generated by running your code. That is show the output obtained in the REPL when calling your functions. Alternatively, you may simply cut and paste from the REPL.
TASK-1
TASK-2
…
TESTING
Provide a test plan covering all of your functions and the results of applying the tests.
Evaluation
Evaluate your implementation and discuss what you would do if you had more time to work on the code. Critically reflect on the following point and write 100-200 words overall.
Points for reflection:
what is hard about functional programming?
what did you learn from your experience? (not just about Scheme, but about functional programming in general)
how would a similar task be completed differently?
which are the benefits and drawbacks of programming in a pure functional way?
which are the benefits and drawbacks of programming in an imperative way?