/CS316-19

The 2019/2020 edition of Strathclyde's CS316 Functional Programming course

Primary LanguageHaskell

CS316 Functional Programming 2019/2020

Welcome to the page for the University of Strathclyde's “Functional Programming” class (CS316).

This course has a Twitter account.

Assessment: this course is entirely assessed by coursework. There are three exercises that you will complete (details below). You will do roughly 60% of the exercise at home or in the labs, and the 40% is done in exam conditions in the lab.

See the schedule.

Contact

The course lecturer is Bob Atkey. Office LT1305 robert.atkey@strath.ac.uk.

Lectures

Lectures are at 13:00 Tuesdays in RC540 and 11am Fridays in RC447.

Most of the lectures involve me doing live coding with explanations of what I am doing. This repository contains cleaned up versions of the live coding, interspersed with commentary.

Evaluation Game

The Evaluation Game.

Tutorial Questions

Coursework

This course is entirely assessed by coursework. The split between the three exercises is shown below:

After each of the exercises has been marked, we will email you your marks

Uses of Haskell in Industry

The following are some links to uses of Haskell in industry. These kinds of experience reports are often useful to see what engineers find useful in Haskell, and what they don't. Many of the features of Haskell (higher order functions, algebraic datatypes, pattern matching, immutability, type classes) are making their way into other languages because they have proved their worth in Haskell.

Other functional languages are also used at extremely large scale. For example:

  • WhatsApp uses the functional programming language Erlang for all its backend services.
  • Jane Street is a proprietary trading firm that almost exclusively uses the functional language OCaml. They also offer internships for undergraduates.