NDAA09013U Advanced Programming
Volume 2013/2014
Education
MSc Programme in Computer
Science
Content
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:
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
- concurrent programming
- declarative (logic) programming
- distributed programming
- generic programming
- parallel programming
- reactive programming
Learning Outcome
At course completion,
the successful student will have:
Knowledge of:
Skills in:
Competences of:
Knowledge of:
- Higher-level programmings structure patterns for seperating conerns.
- 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.
Skills in:
- 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 message passing.
- Use programming structuring principles and design patterns for making reliable distributed systems in the presence of software errors.
- Write idiomatic programs in a logic programming language.
Competences of:
- Quickly acquaint themselves with advanced programming techniques, from academic literature and/or technical documentation
- Use those techniques to solve challenging, realistic problems
- 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.
Literature
See Absalon when the course
is set up.
Academic qualifications
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 example.
Teaching and learning methods
Lectures, mandatory
homeworks
Workload
- Category
- Hours
- Exam
- 20
- Lectures
- 29
- Practical exercises
- 14
- Preparation
- 143
- Total
- 206
Sign up
Self Service at KUnet
As an exchange, guest and credit student - click here!
Continuing Education - click here!
As an exchange, guest and credit student - click here!
Continuing Education - click here!
Exam
- Credit
- 7,5 ECTS
- Type of assessment
- Written assignment, 1 weekIndividual, written take-home exam, external grading on the 7-point grading scale. Submission in Absalon.
- Exam registration requirements
- To participate in the exam, three to six mandatory assignments must be passed. The exact number of required assignments will be given at course start.
- Marking scale
- 7-point grading scale
- Censorship form
- External censorship
- Exam period
- Preferably in the exam week.
- Re-exam
- 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.
Criteria for exam assesment
See learning outcome.
Course information
- Language
- English
- Course code
- NDAA09013U
- Credit
- 7,5 ECTS
- Level
- Full Degree Master
- Duration
- 1 block
- Placement
- Block 1
- Schedule
- A
- Continuing and further education
- Study board
- Study Board of Mathematics and Computer Science
Contracting department
- Department of Computer Science
Course responsibles
- Ken Friis Larsen (kflarsen@di.ku.dk)
Saved on the
30-04-2013