SluitenHelpPrint
Switch to English
Cursus: NWI-I00032
NWI-I00032
Advanced Programming
Cursus informatieRooster
CursusNWI-I00032
Studiepunten (ECTS)6
CategorieMA (Master)
VoertaalEngels
Aangeboden doorRadboud Universiteit; Faculteit der Natuurwetenschappen, Wiskunde en Informatica; Informatica en Informatiekunde;
Docenten
Docent
dr. P.W.M. Koopman
Overige cursussen docent
Docent
prof. dr. ir. M.J. Plasmeijer
Overige cursussen docent
Coördinator
prof. dr. ir. M.J. Plasmeijer
Overige cursussen docent
Contactpersoon van de cursus
prof. dr. ir. M.J. Plasmeijer
Overige cursussen docent
Collegejaar2016
Periode
KW1-KW2  (29-08-2016 t/m 29-01-2017)
Aanvangsblok
KW1
Onderwijsvorm
voltijd
Opmerking-
Inschrijven via OSIRISJa
Inschrijven voor bijvakkersJa
VoorinschrijvingNee
WachtlijstNee
Plaatsingsprocedure-
Cursusdoelen

Insight in some state-of-the-art advanced programming concepts, their theoretical background and their practical applicability. Insight in the tradeoffs in the construction of an embedded domain specific language and their application.

Inhoud
In this course advanced programming concepts will be taught. In this course we focus on the use of a functional programming language for the construction of an embedded domain specific language, a DSL. In DSL terms we will address shallow and deep embedded DSLs and their advantages and disadvantages. We will address the following advanced (functional) programming topics:
  • generic programming;
  • combinatorical programming;
  • task oriented programming;
  • executable semantics;
  • state handling in pure functional languages;
  • advanced data structures.
Bijzonderheden
The course is part of the theme "Software Construction". For practical experience we use the state-of-the-art functional language Clean.
Onderwerpen
• Domain Specific Languages
• generic programming: theoretical background, overloading, type constructor classes, kind indexing;practical applications: common generic functions, web-applications, workflow applications;
• combinatorical programming (monadic programming);
• advanced concurrency concepts (Software Transactional Memory);
• advanced data structures (Generalized Algebraic Datatypes).
Toetsinformatie
Written exam, closed book.
Voorkennis
Bachelor Computer Science.
Literatuur
Scientific papers on the topics treated. These papers will be made available during the course.
Werkvormen

• 32 hours lecture
• 32 hours problem session
• 104 hours individual study period
Extra information teaching methods: There will be lectures introducing the topics and programming exercises where you will use these techniques.
Verplicht materiaal
Artikelen
Scientific papers on the topics treated. These papers will be made available during the course.
Werkvormen
Cursusgebeurtenis

Hoorcollege

Werkcollege

Zelfstudie

Toetsen
Tentamen
Weging1
ToetsvormDigitale toets met TAO
GelegenhedenBlok KW2, Blok KW3

SluitenHelpPrint
Switch to English