Functional programming

The free online course Functional Programming in Haskell: Supercharge Your Coding introduces students to the power, elegance and simplicity of functional programming in Haskell.

Course design: Wim Vanderbauwhede & Jeremy Singer

Learning outcomes:

  • Characterise the differences between imperative and functional programming paradigms.
  • Implement small-scale functional programs in elementary Haskell.
  • Apply standard combinators for operating on lists.
  • Create new algebraic data types and use recursion to define functions that traverse recursive types; and reason in a mathematical manner about data types, functions, recursion and similar functional constructs.

The course is provided on the FutureLearn platform.

Screenshot of the enrolment page for Functional Programming in Haskell

Operating Systems

The undergraduate textbook Operating Systems Foundations with Linux on the Raspberry Pi: Textbook (pubished by Arm Education Media) provides a practical introduction to the foundations of modern operating systems, with a focus on GNU/Linux and the Arm platform. It explains operating systems theory and concepts but grounds them in practical use through illustrative examples of their implementation in GNU/Linux, as well as making the connection with the Arm hardware supporting the OS functionality.

Authors: Wim Vanderbauwhede & Jeremy Singer

Book cover of Operating Systems Foundations with Linux on the Raspberry Pi