# Department of Information and Computing Sciences

## Onderwijs Informatica en Informatiekunde

Vak-informatie Informatica en Informatiekunde

# Generic programming

 Onderwijs: Het vak INFOGP wordt in 2020/2021 niet aangeboden. Nota bene: Er is geen recente vakbeschrijving beschikbaar.Onderstaande tekst is een oude vakbeschrijving uit collegejaar 2012/2013 Inhoud: Software usually works with structured information; think of Web-browsers and HTML-documents. This structure can be represented by a data type, a DTD (Document Type Definition), or a model. If such a type changes, all programs that work on that type have to be changed too, although often the central problem does not change. In the course on generic programming we will discuss methods with which problems can be formulated and solved for arbitrary data types, DTDs, or models. In a sense, this is a course on model-driven development, but the model is a type. The result is a generic program. The intended learning outcomes for the course on generic programming are: Explain the role datatypes and generic programming (GP) play in programming Solve programming problems and improve programs using GP Evaluate GP methods/approaches, and describe their merits and problems Critically analyse GP research articles Perform research on a GP-related problem, and present your results both verbally and on paper Literatuur: Kan veranderen! AFP 2008 lecture notes and published research articles Werkvorm: There are 3 main components: Lectures, exercises, and quizzes relevant to generic programming: datatypes, advanced types, and libraries Student presentations on research papers Course project Toetsvorm: Quizzes = q = (q1 + q2 + q3) / 3 Research paper presentation + two exercises: p Research project: r Final exercise set: e Subgrade: s = (2*q + 2*p + 4*r + 2*e) / 10 Final grade: g = min s 10 Inspanningsverplichting voor aanvullende toets: Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn. Beschrijving: We will discuss the following topics. Minor changes might be made before the course starts. Interpretations of `generic' Datatypes and kinds Type-indexed functions Kind-indexed types Type-indexed types Fixed-points, folds, maps, zips Libraries for generic programming: EMGM, SYB, Multirec Applications of generic programming: XML tools, Model-driven development, Exercise assistants
wijzigen?