|Website:||website containing additional information|
|Period:||periode 1 (week 36 t/m 45, dwz 9-9-2010 t/m 12-11-2010; herkansing week 1)|
|Participants:||up till now 15 subscriptions|
|Schedule:||Note: from now on the schedule is to be found in Osiris|
|Teachers:||Dit is een oud rooster!
|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:
|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. Most of these projects will consist of taking an existing application, and turn it into a generic application. We will take some real-life projects from hackage, analyse them, and (partly) turn them into generic programs.|
|Exam form:||During the course we will hand out a couple of sets of exercises (say n, we expect n to be 3), which you have to solve individually (E1, ..., En, EF=(E1+... = En)/n). You have to hand in solutions to all exercises and correct solutions of fellow students to pass for the course. But the grade for the exercise sets will not be used for the final grade, except as a possible bonus: B = if EF < 6 then 0 elseif EF < 8 then 0.5 else 1. Furthermore, you will receive a grade for the presentation of the research paper (R), for the project that will have to be presented and handed in (P), and for the take home exam at the end of the course (E). Your final grade will be: (B+ (R+2P+2E)/5) min 10. If any of the subgrades is missing you will not receive a final grade.|
|Minimum effort to qualify for 2nd chance exam:||To participate in the resit your grade needs to be at least 4.|
|Description:||We will discuss the following topics. Minor changes might be made before the course starts.