Jump to content

DAT159 Selected topics in ICT

Course description for academic year 2019/2020

Contents and structure

The evolution in the field of software development, data processing, information and communication technology is rapid, and it is not possible at all times to have established courses that cover the most interesting trends. To remedy the situation we offer this subject. The subject is an elective, and will consist of 4 standalone modules, which can be replaced from year to year. Each module provides a brief introduction to an exciting topic not covered by our other courses.

Module1 autumn 2019 - Basic cryptography

General cryptography and cryptographic mechanisms used in blockchains. Symmetric and asymmetric cryptography. Block and stream chiffres. Digital signatures and authentication. Hash and MAC algorithms.

Module2 autumn 2019 - Blockchain technology

Construction and structure of blockchains. Distributed trust and consensus. Proof of Work. Block content and transactions. Examples of blockchains (e.g. Bitcoin and Ethereum). Smart contracts. Ecosystems and infrastructure. Application areas.

Module3 autumn 2019 - Basic interaction design

The main goal of this module is to provide an overall understanding of issues needed to consider for designing the interaction between users and products, enabling the users to achieve their objectives in the best way with their new products. The focus, here, is on software products, like apps or websites.

Module4 autumn 2019 - Refactoring

Foundations of refactoring: origins, mode of operation and application i current IDEs. Relation to software quality metrics, design patterns, and how they are affected by refactorings. Implementation of refactorings in Java, the JastAdd framework, or the Rascal metaprogramming language.

Learning Outcome

The learning outcomes are general and apply to all modules.

After completing this subject the student should (within every module/topic) be able to:


  • Render definitions and describe the theoretical foundation
  • Discuss the correlations and mechanisms
  • Point to uses for the technology/techniques


  • Translate theory into practical demonstrable solutions
  • Implement/program parts of solutions
  • Evaluate and choose between a selection of solutions

General competence

  • Discuss ethical issues of the application of the technology/techniques

Entry requirements


Recommended previous knowledge

Recommended prerequisites: Basic knowledge of programming and mathematics as covered by the first two years of studies in the computing and information technology programs.

Teaching methods

Lectures and practical exercises.

Compulsory learning activities

To get access to the exam, four obligatory assignments (one for each module) must be completed and approved by set deadlines. Graded as pass/fail.

Approved exercises also give access to postponed examination the following semester. However, before a new exam can be taken (the next time the subject is taught), new exercises must be delivered.


Oral examination.

Grading scale is A-F where F is fail.

If more than 20 students are registered to take the exam, we will organize a written examination.

Examination support material


More about examination support material