Syllabuses - UG

CS260 - Functional Thinking

TIMETABLETEACHING MATERIAL
Credits10
Level2
SemesterSemester 2
AvailabilityCore: BSc Hons Computer Science & BSc Hons Software Engineering
PrerequisitesNone
Learning Activities BreakdownLectures: 10 of 1 hour each - 10 hours total

Practical / Lab: 10 of 2 hours each - 20 hours total

Homework / Private Study: 70 hours

Total hours activity: 100 hours

AssessmentThe class will be assessed by coursework which will consist of weekly multiple choice questions, an assessed programming exercise and a class test. The coursework will be set using a modern functional programming language, such as Haskell.

Feedback will be delivered to students both electronically and in person during labs. Assignments will be assessed electronically and feedback delivered quickly to aid learning.

LecturerAlasdair Lambert, Jules Hedges

Aims and Objectives

To introduce the core concepts and methods of modern functional programming, serving as an introduction to our third year class on this topic.

Learning Obj 1 : to understand basic functional programming concepts: inductive datatypes, pattern matching, structural recursion

Learning Obj 2 : to understand how to transform and interpret languages of expressions

Learning Obj 3 : to understand functional data structures, e.g. search trees

Learning Obj 4 : to understand abstraction of type parameters and common interfaces

Learning Outcomes

Syllabus

- functions and types; functional composition

- inductive datatypes, pattern matching, structural recursion

- transforming and interpreting languages of expressions

- functional data structures, e.g., search trees

- representation of simple computational effects, e.g. failure by Maybe and choice by lists

- abstraction of type parameters (parametric polymorphism)

- abstraction of common interfaces, e.g., Eq, Ord, Monoid

Recommended Reading

This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

There are a variety of books that support this material: Learn You a Haskell for Great Good! by Miran Lipovaca Programming in Haskell by Graham Hutton Thinking Functionally with Haskell by Richard Bird.  This is not a core text and is available in the University Library.

Last updated: 2023-03-13 17:37:59