Aims
Knowledge and Understanding
Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:
A1. The key mechanisms underpinning the functional programming model
A2. The principles of evaluation of programming language
Intellectual Skills
Having successfully completed the module, you will be able to:
B1. Discuss and perform the decomposition of problems using procedural, data and metalinguistic abstractions.
B2. Understand the concept of functional programming and be able to write programs in this style in the context of Scheme.
B3. Reason about evaluation mechanisms.
Subject Specific Skills
Having successfully completed the module, you will be able to:
C1. Program in a functional style
C2. Evaluate programs step by step.
Recursive Techniques recursion on numbers, lists, trees, graphs.
- Procedural Abstraction
- procedures as arguments
- procedures as return values
- Objects
- structures
- closures
- streams and delayed evaluation
- Metalinguistic Abstraction
- Environment model
- evaluation
- metacircular evaluators
- Functional programming techniques in object oriented languages
Assessment methods
| Method | Hours | Percentage contribution |
| Programming Exercises | - | 65% |
| Exam | 0 hours | 35% |
Referral Method: By examination