Comparative Programming (G6021)
Comparative Programming
Module G6021
Module details for 2022/23.
15 credits
FHEQ Level 6
Module Outline
This module introduces the basic techniques of functional programming, using a language such as Haskell as a practical basis. Additional paradigms, such as declarative programming, are briefly introduced. The suitability of these paradigms, and those already learnt in the degree programme, in addressing various problems - in data processing, mathematical reasoning, etc. are considered. Issues including data representation, algorithm design, efficiency, clarity and tool support are considered in comparisons between the declarative, functional and imperative paradigms. The process of learning a new language and paradigm allows an exploration of the process of choosing a language based on its fit to issues and of the learning of languages.
Alongside the particular issues in Haskell more general issues in programming languages are discussed through illustrations of various languages including Java, C, assembler, Haskell, PHP and SQL.
Library
Graham Hutton "Programming in Haskell".
Module learning outcomes
Apply the core language features and conventions of a functional programming language to solve problems.
Describe the principles of functional programming more generally, including the behaviour and application of concepts including functions, types, choice, lists, recursion, higher order functions, side effects, schemas and lazy evaluation.
Compare the styles and techniques in functional, imperative, object-oriented and other programming paradigms; and critically analyse their suitability in solving given problems.
Discuss the differences and merits of various features of languages, illustrate their use and explain their implementation. Such features include: subroutine and larger structures; pointers and literals; explicit memory management; strong and weak typing; documentation in code; lazy and eager evaluation; side effects.
Type | Timing | Weighting |
---|---|---|
Computer Based Exam | Semester 1 Assessment | 100.00% |
Timing
Submission deadlines may vary for different types of assignment/groups of students.
Weighting
Coursework components (if listed) total 100% of the overall coursework weighting value.
Term | Method | Duration | Week pattern |
---|---|---|---|
Autumn Semester | Lecture | 2 hours | 11111111111 |
Autumn Semester | Laboratory | 1 hour | 11111111111 |
How to read the week pattern
The numbers indicate the weeks of the term and how many events take place each week.
Dr Vincent van Oostrom
Assess convenor
/profiles/624321
Please note that the University will use all reasonable endeavours to deliver courses and modules in accordance with the descriptions set out here. However, the University keeps its courses and modules under review with the aim of enhancing quality. Some changes may therefore be made to the form or content of courses or modules shown as part of the normal process of curriculum management.
The University reserves the right to make changes to the contents or methods of delivery of, or to discontinue, merge or combine modules, if such action is reasonably considered necessary by the University. If there are not sufficient student numbers to make a module viable, the University reserves the right to cancel such a module. If the University withdraws or discontinues a module, it will use its reasonable endeavours to provide a suitable alternative module.