NWI-I00032
Advanced Programming
Course infoSchedule
Course moduleNWI-I00032
Credits (ECTS)6
CategoryMA (Master)
Language of instructionEnglish
Offered byRadboud University; Faculty of Science; Informatica en Informatiekunde;
Lecturer(s)
PreviousNext 1
Coordinator
dr. P.W.M. Koopman
Other course modules lecturer
Examiner
dr. P.W.M. Koopman
Other course modules lecturer
Contactperson for the course
dr. P.W.M. Koopman
Other course modules lecturer
Lecturer
dr. P.W.M. Koopman
Other course modules lecturer
Lecturer
prof. dr. S.B. Scholz
Other course modules lecturer
Academic year2019
Period
KW1-KW2  (02/09/2019 to 02/02/2020)
Starting block
KW1
Course mode
full-time
Remarks-
Registration using OSIRISYes
Course open to students from other facultiesYes
Pre-registrationNo
Waiting listNo
Placement procedure-
Aims
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.
Content
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, EDSL. 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.
Level

Presumed foreknowledge
Bachelor Computer Science.
Test information
Written exam, closed book.
Specifics
The course is part of the theme "Software Construction". For practical experience we use the state-of-the-art functional language Clean.
Additional comments
The course is part of the theme "Software Construction". For practical experience we use the state-of-the-art functional language Clean.

Topics
• 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).

Test information
Written exam, closed book.

Prerequisites
Bachelor Computer Science.

Required materials
Articles
Scientific papers on the topics treated. These papers will be made available during the course.

Instructional modes
Course occurrence

Lecture

Tutorial

Zelfstudie

Tests
Digital Exam
Test weight1
Test typeExam
OpportunitiesBlock KW2, Block KW3