Equational Programming

Vrije Universiteit Amsterdam

Course Description

  • Course Name

    Equational Programming

  • Host University

    Vrije Universiteit Amsterdam

  • Location

    Amsterdam, The Netherlands

  • Area of Study

    Computer Programming

  • Language Level

    Taught In English

  • Course Level Recommendations

    Upper

    ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.

    Hours & Credits

  • ECTS Credits

    6
  • Recommended U.S. Semester Credits
    3
  • Recommended U.S. Quarter Units
    4
  • Overview

    COURSE OBJECTIVE
    To obtain basic knowledge of functional programming (using Haskell) and its foundations via lambda calculus and equational reasoning.

    COURSE CONTENT
    In the practical work we use the functional programming language Haskell. We practice with the basics such as lists, recursion, data-types, and a bit of monads.

    The theoretical part is concerned with the foundations of functional programming in the form of lambda calculus and equational reasoning. We study in untyped lambda calculus beta reduction, reduction strategies, confluence, encoding of data-types, fixed point combinators and recursive functions. In addition we study the lambda-calculus with simple types, its typing system and a type inference algorithm, and possibly strong normalization of simply typed lambda-calculus. In equational reasoning we work towards the results that all initial models are equal up to isomorphism, and that the term model is an initial model.

    TEACHING METHODS
    The theoretical part is taught in the lectures and exercise classes. In addition, there is a programming lab for programming in Haskell.

    TYPE OF ASSESSMENT
    Written examination, programming assignments in Haskell, and (possibly obligatory) hand-in theory exercises.

    RECOMMENDED BACKGROUND KNOWLEDGE
    It helps to be familiar with formal reasoning as for example taught in the course Logic and Modeling.

Course Disclaimer

Courses and course hours of instruction are subject to change.

Some courses may require additional fees.