Types for Programs and Proofs
About
The development of powerful type systems is an important aspect of modern programming language design. This course provides an introduction to this area.
In particular it introduces the notion of dependent type, a type which can depend on (is indexed by) values of another type, for example, the type of vectors indexed by its length. Dependent types are versatile.
Through the Curry-Howard identification of proposition and types virtually any property of a program can be expressed using dependent types.
The aim of the course is to give a solid and broad foundation in type systems for programming languages, and also give examples of type-based technologies in computer science.
Prerequisites and selection
Requirements
To be eligible to the course, the student should have successfully completed 120 credits of studies in computer science or mathematics, or equivalent. Specifically, a successfully completed 7.5 credit course in discrete mathematics (e.g., DIT980 Discrete Mathematics for Computer Scientists, or equivalent) and a successfully completed 7,5 credit course in functional programming (e.g. DIT143 Functional Programming, or equivalent is required. Applicants must prove knowledge of English: English 6/English B or the equivalent level of an internationally recognized test, for example TOEFL, IELTS.
Selection
Selection is based upon the number of credits from previous university studies, maximum 225 credits.
For admission to the summer 2021 and onward the following selection applies: selection is based upon the number of credits from previous university studies, maximum 165 credits.