Official course description, subject to change:
Preliminary info last published 31/07-19

Advanced Programming, Master (Professional education)

Course info
Language:
English
ECTS points:
7.5
Course code:
MSADPRO1KU
Offered to guest students:
no
Offered as a single subject:
yes
Price (single subject):
10625 DKK (incl. vat)
Programme
Level:
Master programme
Programme:
Master of IT (Software Engineering)
Staff
Course semester
Semester
Efterår 2020
Start
24 August 2020
End
31 January 2021
Abbreviation
20202
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract

This course addresses advanced programming techniques, with a special attention on functional programming and its applications. The course is a perfect balance of theory and practice, with focus on the Scala programming language.

Description

The student who passes this course will know relevant advanced programming techniques for designing, testing and executing challenging realistic programs in Scala, in a correct and efficient way. Such techniques, although learned in the Scala programming language, are relevant for many other mainstream programming languages used in industry. 

  • Introduction to Scala 
  • Property-based testing 
  • Monads and streams 
  • Call-by-name and lazy programming 
  • Immutable data-structures 
  • Purely functional parallel programming 
  • Finger trees 
  • Lenses and data synchronization

Intended learning outcomes

After the course, the student should be able to:

  • Design, test and execute functional programs in Scala
  • Use expressive types (polymorphism, type functions, higher-kinded types) to document library interfaces
  • Recognize monadic structures in computation, use libraries following monadic structure and design monadic libraries
  • Reason about eager and lazy evaluation, including advantages and disadvantages of either
  • Reason about API designs in pure and stateful style, including exploring various designs and considering advantages and disadvantages of either
  • Use eager and lazy evaluation to design data structures and benefit from existing lazy data structures such as streams
  • Implement solutions based on research-based methods presented in relevant papers in library and language design
Ordinary exam
Exam type:
A: Written exam on premises, external (7-trinsskala)
Exam variation:
A11: Written exam on premises. Open book exam. You are allowed to use all aids (books, notes, software and online resources).
Exam description:

Duration of exam: 4 hours The same set of questions as for bachelor students, plus additional one concerning the ILO: "Implement solutions based on research-based methods presented in relevant papers in library and language design"