Aims/Description: This module will be based around Functional Programming (FP) and Abstract Data Types (ADTs). FP leads to simple, elegant programs that are provably correct, expressing problems declaratively and recursively. Topics covered include: values, types, expressions, functions, pattern matching, recursive function design, partial application and higher-order functions. An ADT is a computational data structure, such as a list or tree, that can be defined abstractly in terms of the formal properties of its operations. The course will encourage program design from an abstract viewpoint, as a collection of interacting ADTs, and will also cover complexity analysis for algorithms and proof of correctness.

Staff Contact: Prof P Green & Dr M Stannett
Teaching Methods: Lectures, Problem solving, Independent Study
Assessment: Formal Exam, Course work

Notes: This unit forms part of an accredited degree programme

Information on the department responsible for this unit (Computer Science):

Departmental Home Page
Teaching timetable


The content of our courses is reviewed annually to make sure it's up-to-date and relevant. Individual modules are occasionally updated or withdrawn. This is in response to discoveries through our world-leading research; funding changes; professional accreditation requirements; student or employer feedback; outcomes of reviews; and variations in staff or student numbers. In the event of any change we'll consult and inform students in good time and take reasonable steps to minimise disruption.

URLs used in these pages are subject to year-on-year change. For this reason we recommend that you do not bookmark these pages or set them as favourites.

Teaching methods and assessment displayed on this page are indicative for 2021-22. Students will be informed by the academic department of any changes made necessary by the ongoing pandemic.

Western Bank, Sheffield, S10 2TN, UK