Education Page

DTP

Seminar Dependently typed programming

Website:website containing additional information
Course code:INFOMDTP
Credits:7.5 ECTS
Period:periode 1 (week 36 t/m 45, dwz 9-9-2010 t/m 12-11-2010; herkansing week 1)
Timeslot:D
Participants:up till now 7 subscriptions
Schedule:Note: from now on the schedule is to be found in Osiris
Teachers:Dit is een oud rooster!
formgrouptimeweekroomteacher
college   wo 13.15-17.0037-40 BBL-075
wo 13.15-15.0041 BBL-165
wo 13.15-17.0042-45 BBL-075
wo 15.15-17.0041 BBL-169
seminar          Andres Löh
Doaitse Swierstra
   
Contents:

A dependent type is a type that is parameterized by a value. Simple examples are vectors of a fixed length (i.e., Vec Nat 3 to denote a vector containing exactly three natural numbers), or numbers that are restricted to a certain range (i.e, Range 3 7) to denote a natural number between 3 and 7). By mixing values with types, dependent types are extremely expressive: you can express concepts such as sorted lists, XML documents that adhere to a certain DTD or Schema, or commutative binary operators on the type level. Furthermore, dependent types allow you to express properties of your programs on the type level, and to prove them by writing programs in a programming language.

A programming language with dependent types therefore gives you a unified framework in which you can write, execute and reason about your programs.

Dependent types are a hot topic in programming language research right now, with many experimental programming languages being in development right now.

In this seminar, we will look at the theoretical foundations of programming with dependent types, and also gain practical experience by looking at concrete dependently typed programming languages and developing programs in them.

We will start with the assumption that everyone knows Haskell, and introduce dependent types systematically. For the second half of the seminar, it is possible to adjust the topics to the preferences of the participants.

Literature:Tutorials and research papers, available online. The exact material being discussed will be made available on the course web page.
Course form:Sessions will comprise a mix of presentations by the participants or the lecturer, lively discussions, and problem-solving. Students are expected to prepare for the sessions by reading the given material, by answering specific theoretical questions or by implementing practical assignments in a dependently-typed programming language.
Exam form:The final grade will be computed as follows:
  • 50% theoretical and practical assignments
  • 20% participation in seminar sessions
  • 30% own presentation(s)
Minimum effort to qualify for 2nd chance exam:
wijzigen?


The page above is included from http://www.cs.uu.nl/education/vak.php?vak=mdtp&jaar=2008