ºÚÁÏÍø

School of Engineering and Informatics (for staff and students)

Comparative Programming (G6021)

Comparative Programming

Module G6021

Module details for 2021/22.

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.

TypeTimingWeighting
Computer Based ExamSemester 1 Assessment100.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.

TermMethodDurationWeek pattern
Autumn SemesterLecture2 hours11111111111
Autumn SemesterLaboratory1 hour11111111111

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.

School of Engineering and Informatics (for staff and students)

School Office:
School of Engineering and Informatics, ºÚÁÏÍø, Chichester 1 Room 002, Falmer, Brighton, BN1 9QJ
ei@sussex.ac.uk
T 01273 (67) 8195

School Office opening hours: School Office open Monday – Friday 09:00-15:00, phone lines open Monday-Friday 09:00-17:00
School Office location [PDF 1.74MB]