COMP2209 Programming III
Module Overview
This module aims to introduce students to recursion and to the principles of recursive, applicative and functional programming. In it, they will use various functional abstractions to control the complexity of programming, and will use abstraction mechanisms in programming. They will also study the principles of program evaluation and explore the evaluation mechanism via a meta-circular evaluator.
Aims and Objectives
Module Aims
This module aims to introduce students to recursion and to the principles of recursive, applicative and functional programming.
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- The key mechanisms underpinning the functional programming model
- The principles of evaluation of programming language
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Discuss and perform the decomposition of problems using procedural, data and metalinguistic abstractions
- Understand the concept of functional programming and be able to write programs in this style.
- Reason about evaluation mechanisms
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Program in a functional style
- Evaluate programs step by step
Syllabus
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
Learning and Teaching
Type | Hours |
---|---|
Tutorial | 12 |
Revision | 10 |
Lecture | 36 |
Completion of assessment task | 29 |
Follow-up work | 18 |
Preparation for scheduled sessions | 18 |
Wider reading or practice | 27 |
Total study time | 150 |
Resources & Reading list
Graham Hutton (2016). Programming in Haskell.
Abelson H and Sussman GJ with Sussman J (1996). Structure and Interpretation of Computer Programs.
Assessment
Summative
Method | Percentage contribution |
---|---|
Examination | 35% |
Exercise | 65% |
Referral
Method | Percentage contribution |
---|---|
Examination | 100% |
Repeat Information
Repeat type: Internal & External
Linked modules
Pre-requisites: COMP1202 AND COMP1206