F28PL - Programming Languages

Ian Tan
To be announced
Mahmoud Mousa
Swaraj Dash

Course leader(s):

Aims

Syllabus

1. Functions and pairs (1.1 1. variable binding, 1.2 2. let-expressions, 1.3 3. tail recursion, 1.4 4. product types)

2. Lists and recursion (2.1 1. constructing and deconstructing lists, 2.2 2. recursion over lists, 2.3 3. intro to polymorphism; parametric vs. ad-hoc polymorphism, 2.4 4. lists and tail recursion)

3. Higher-order functions (3.1 1. list processing with higher-order functions, 3.2 2. using predicates for testing: property-based testing with qcheck)

4. Algebraic datatypes (4.1 1. fundamentals of type inference and polymorphism, 4.2 2. creating enumeration types, 4.3 3. writing functions on enumeration types, 4.4 4. adding parameters to our constructors , 4.5 5. recursive algebraic datatypes)

5. Exceptions and exception handling (5.1 1. built-in exceptions and evaluation model, 5.2 2. exception handling, 5.3 3. declaring your own exceptions: the extensible exn type)

Learning outcomes

By the end of the course, students should be able to do the following:

Further details

Curriculum explorer: Click here

SCQF Level: 8

Credits: 15