DD2443 Parallel and Distributed Computing 7.5 credits

Advanced course in computer science on the theory, algorithms, and techniques of parallel and distributed computing systems. Also available as a postgraduate course FDD3008.

DD2391 Cybersecurity Overview 7.5 credits

Overview of cybersecurity. Cross listed with DD2395 Computer security and DD2394 Cybersecurity project. This means that their content overlaps: DD2391 (7.5 ECTS) is equivalent to DD2395 (6 ECTS) plus DD2394 (1.5 ECTS). DD2391 therefore cannot be combined with DD2394 or DD2395. One can only combine DD2394 with DD2395 and receive credits for both.

DD2395 Computer Security 6.0 credits

Overview of computer/cybersecurity (6 ECTS). Taught together with DD2391 Cybersecurity overview, with overlapping content. The courses can thus not be combined, i.e., one cannot receive credits for both courses.

DD2481 Principles of Programming Languages 7.5 credits

Formal languages, finite automata, context free grammars. State, scope, extent, static and dynamic information, effects, mutability. Basic operational semantics. Abstraction mechanisms, modularity, contracts. Types, invariants, program equivalence. Tools for program analysis. Examples of advanced features of programming languages.

DD2394 Cybersecurity Project 1.5 credits

Project work in cybersecurity. Cross listed with DD2391 Cybersecurity overview (DD2391 corresponds to DD2395 plus DD2394)

DD2497 Project course in System Security 7.5 credits

A project course that will conclude a track in computer security.

DD2520 Applied Cryptography 7.5 credits

This course serves as an introduction to cryptography from a computer security and privacy perspective.

Past Courses

FDD3023 Interactive Theorem Proving and Program Verification 7.5 credits

As software systems become more complex, ensuring that they adhere to given requirements for safety and reliability becomes more difficult. At the same time, individuals, organisations, and societies increasingly depend on such complex systems. Interactive theorem provers (ITPs) are powerful, flexible, and reliable tools for system modeling and formal verification. A growing use of ITPs is for specification and construction of practical and trustworthy large-scale software systems. This course gives an overview of the foundations and technologies for ITPs and how they can be applied to model, specify, and formally verify software systems, including both abstract system models and executable programs.

Teaching Material

  • HOL4 tutorial slides…