Software is at the heart of nearly every aspect of modern life, from finance and healthcare to government and telecommunications. As the use of software systems continues to expand, so does their complexity. Despite the vast investments made in software development, the end products don’t always meet user expectations or deliver the desired reliability. This specialisation is designed to equip you with the skills needed to develop high-quality software. You'll learn solid, research-based methods, techniques, and tools for modeling, building, analyzing, and verifying software systems.
The primary goal of the specialisation in software foundation and technology is to explore how we can efficiently build high-quality software. How can we safeguard against unintended bugs or potential malicious attacks on our software infrastructure? And how can we ensure and prove the guaranteed correctness of our software? We are a diverse team of researchers/lecturers, covering a wide range from the logical foundations underlying software, to concrete software technologies and tools that boost software development and verification. We are happy to teach you and to supervise your research projects on i.e.:
The logical foundations and formal semantics of programs
Techniques to specify and verify software requirements
Efficient program analysis tools that can boost programmer’s productivity
The design and use of automated reasoning algorithms and tools
The design of new (better, safer and more efficient) programming languages and compilers
Concurrency theory, for the analysis of parallel and distributed systems
Software security, to harden software systems against attacks and protect information flow
Software forms the fabric of the infrastructure of our society, and it pervades both our professional and personal lives. The workings of our democratic society, the operations of most companies, the success of scientific missions, and sometimes even people’s lives depend on the correct functioning of software. We have a strong track record in scientific research, and in applying our research to relevant and critical software systems, in collaborations with companies, including:
Blockchain technology and smart contracts, for instance at Concordium
24/7 availability of cloud infrastructure, for instance at AWS
Security guarantees for hypervisors, with Google
Software analysis for >1 billion lines of code at Uber
Dependency analysis for JavaScript programs in the wild
Developing new programming languages, in particular Flix, Troupe, and Dart with Google
Proving safety of (autonomous) control systems, for instance railway systems, with DB Netz
Quantum software optimization and compilation, for instance with Kvantify
Among the top in the world: 2nd in Cryptography, 5th in Programming Languages, 17th in Human-Computer Interaction (HCI) and 42nd in Algorithms and Complexity.
Computer Science department at Aarhus University is known for its world-class research. The university collaborates with leading tech companies and research institutions.
Aarhus is a vibrant, student-friendly city with a high standard of living, great cultural life, and a strong international community.
Excellent career opportunities for graduates from the department of Computer Science.
During your studies: Each year, Aarhus University hosts Katrinebjerg Karrieredag (Kdag) at the Department of Computer Science, providing students a unique opportunity to connect with top companies and secure their dream job in the tech industry, as our specialisations are highly sought after across industries, from corporate and government sectors to academic research. Other than this, student job service for international students via Tech Hub Aarhus – many student relevant jobs in companies like Danske Bank, Salling Group etc.
After you graduate:
PhD studies: Following the BSc program or after the first year of the MSc program you can apply for admission to the PhD program in computer science.
Industry: Huge demand for CS graduates in the Aarhus region. There are many software companies or general companies with large IT departments in Aarhus and in Denmark, e.g. Google, Lego
Please note that details regarding general programme structures and brief study plans are subject to change and are not legally binding. Only the official regulations and study plans are authoritative.
These courses are designed to equip students with the essential skills and knowledge required for success in the cybersecurity field.
FALL | SPRING |
Advanced Topics in Programming Language Theory (10 ECTS) | Algorithmic Model Checking (10 ECTS) |
Formal Software Verification (10 ECTS) | Language-based Security (10 ECTS) |
Program Analysis (10 ECTS) | Category Theory (10 ECTS)* |
Program Logics (10 ECTS) |
(*) Offered in 2026
Ready to deepen your knowledge? Our supplementary courses offer students the opportunity to broaden their expertise in related fields.
Students may also select elective courses from computer science department or from other departments, provided they are relevant to their area of specialisation.
FALL | SPRING |
Cryptology (10 ECTS) | Systems Security (10 ECTS) |
Quantum Information Processing (10 ECTS) | Modelling and Verification (10 ECTS) |
Theory of Algorithms and Computational Complexity (10 ECTS) | |
Computational Geometry: Theory and Experimentation (10 ECTS) | |
Algorithms, Incentives, and Data (10 ECTS) | |
Indledende Algebra 1+2 (5+5 ECTS)** | |
Mathematical Analysis 1 (10 ECTS)** | |
Graph Theory 2 (10 ECTS) | |
Embedded Real Time Systems (10 ECTS) |
(**) Only offered in Danish
Learn more about the programme structure and the courses offered within the specialisations and course packages.
See more details about the master's degree programme in Danish or English.