Lecture 8: Monads and I/O

15 October 2010

Leading on from the slides by Peyton Jones, this lecture sets out how constructor classes and higher-order functions can help to treat effectful computation within a pure functional language; or potentially contain its influence within an imperative one.

Read the rest of this entry »

Lecture 7: Polymorphism from Types to Kinds and Beyond

12 October 2010

Continuing with types, and in particular some uses in the experimental language laboratory that is Haskell. This lecture covers more on polymorphism, in both object-oriented and functional languages.

Read the rest of this entry »

Lecture 6: Types, Classes, Haskell

8 October 2010

The three lectures today and next week are arranged around some features of the Haskell type system. They aren’t just specific to Haskell, though: several appear in other languages too, and they all address general programming issues. Haskell does make a good setting to examine them, as the language development has had a strong connection to programming language research, and it is sufficiently popular that there is a wide array of commentary out there on how well that works for users.

This lecture covered some background on type systems in programming languages and the different things languages do with them.
Read the rest of this entry »

Haskell Resources

6 October 2010

Lectures 6–8 will address some interesting uses of types in programming, with examples specifically from the Haskell language.

If you haven’t programmed in Haskell before — or you have, but Informatics 1 seems but a distant memory — then over the next week you should learn some basics of the language. The rest of this post suggests some resources, updating last year’s list with new material from students.
Read the rest of this entry »

Lecture 4: Coursework Assignment Topics

1 October 2010

Presentation of the five coursework topics. Some good and bad examples of referencing. Requirements of preliminary report; investigation; and final report. Notes on working practices: aims of homework, exercises, coursework; avoiding plagiarism.

You need to commit to a topic choice by next Friday. This involves finding and reading references, as well as downloading, installing and running your chosen system. If you have difficulties with this, post a question below.

Links: Slides; Sheet; Coursework assignment; University marking scheme; Essay grade descriptors.