Generic programming

Website:website containing additional information
Course code:INFOGP
Credits:7.5 ECTS
Period:periode 1 (week 36 t/m 45, dwz 8-9-2011 t/m 11-11-2011; herkansing week 1)
Timeslot:A
Participants:up till now 16 subscriptions
Schedule:Note: from now on the schedule is to be found in Osiris
Teachers:Dit is een oud rooster!
formgrouptimeweekroomteacher
college   ma 9.00-10.4537-44 BBL-075 Sean Leather
 
wo 9.00-10.4537-44 BBL-075
Contents: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

Literature:The literature consists of a number of articles that will be distributed during the course.
Course form:In the first part of the course we will discuss what generic programming is about, we will revisit datatypes and kinds, and you will learn how to write generic programs in a couple of generic programming libraries for Haskell. After the introductory lectures, you will present a research article about generic programming, and in small groups you will perform a small research project. You will work on compressing structured documents, such as XML documents.
Exam form:
  • Exercise sets: e = (e1 + e2 + e3) / 3
  • Research paper presentation: p
  • Exercise on paper presentations: ep
  • Research project: r
  • Subgrade: s = (p + r * 2 + e * 2) / 5 + ep / 10
  • Final grade: g = min s 10
Minimum effort to qualify for 2nd chance exam:Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn.
Description: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?