Velkommen til Københavns Universitets kursuskatalog
NDAA09013U Advanced Programming
Full Degree Master
A (Tues 8-12 + Thurs 8-17)
Continuing and further
Study Board of Mathematics and Computer
Department of Computer Science
Ken Friis Larsen (8-6f6a70657677697244686d326f7932686f)
Saved on the
MSc Programme in Computer
The purpose of this course is to provide practical experience
with sophisticated programming techniques and paradigms from a
language-based perspective. The focus is on high-level programming
and systematic construction of well-behaved programs.
The selection of the topics covered will be informed by current and
emerging trends. The possible topics covered may include, but
are not limited to:
applicative (functional) programming
declarative (logic) programming
The actual contents of this course may vary in different
instantiations, based on the composition of the course team.
At course completion, the successful student will have:
Higher-level programmings structure patterns for seperating
The basis of message-passing concurrent. And perhaps how
concurrent programming can be used for parallel programming.
Programming structuring principles and design patterns for
dealing with software errors.
Use programming structuring principles and design patterns,
such as monads, to structure the code so that there is a clear
separation of concerns.
Use a parser combinator library to write a parser for
medium-sized language with a given grammar, including changing the
grammar so that it is on an appropriate form.
Use parallel algorithm skeletons such as map-reduce to write
data exploring programs.
Implement simple concurrent/distributed servers using message
passing, with appropriate use of synchronous and asynchronous
Use programming structuring principles and design patterns for
making reliable distributed systems in the presence of software
Write idiomatic programs in a logic programming
Quickly acquaint themselves with advanced programming
techniques, from academic literature and/or technical
Use those techniques to solve challenging, realistic
Write correct, efficient, and maintainable programs with clear
separation of concerns
Give an assessment of her own code, based on a systematic
evaluation of correctness, selection of algorithms and data
structures, error scenarios, and elegance.
See Absalon when the course is set up.
Teaching and learning methods
Lectures, mandatory homeworks
Programming ability in at least two substantially
different languages. Some basic familiarity with functional
programming is strongly recommended, corresponding to Chapters 2,
4, 5, and 6 of "Learn You a Haskell for Great Good", for
Individual, written take-home exam. Submission in
Exam registration requirements
To participate in the exam, four to six mandatory
assignments must be passed. The exact number of required
assignments will be given at course start.
7-point grading scale
Preferably in the exam week.
Individual written assignment different from the
regular exam, and with an approximately 20 minute oral examination
without preparation, external grading on the 7-point grading scale.
Submission in Absalon.