Master of Science in
Computer Science

The programme

The 2-year MSc in Computer Science is a programme designed for students with an IT-related undergraduate degree wishing to develop their skills and knowledge in computer science in a top-notch academic setting.

The programme focuses on business needs, and you will work on projects concerning software development and maintenance of software. You will also learn about the organizational and managerial part of a development process.

When you study Computer Science, you will gain in-depth knowledge of modern programming languages, databases, distributed systems, IT security, algorithms and data structures, software development processes, requirements, organisation, and management. The programme gives you the opportunity to work with all phases of the development process – analysis, design, development, test, and launch.

The programme is taught in English, so all teaching, exams, assignments, etc. will be in English. Cases and examples from both Danish and international organisations will be used.

Non-curricular events at the university may be held in Danish.


Meet a student from Computer Science

Meet Rebecca, who studies Computer Science, and learn more about the programme and study life at the IT University.

Who studies Computer Science?

As a student of Computer Science, you want to get access to cutting edge knowledge within computer science. You are not afraid to be challenged while you obtain strong professional

competencies and technical know-how, and you are curious about areas related to the software development process – e.g. working in teams, planning, organising, creating, and implementing
complex software concepts and how to cooperate with people with different professional backgrounds.

You hold a university bachelor’s degree or a professional bachelor’s degree in Computer Science or in a related area, e.g. software development or computer engineering and want to develop your skills more in-depth. There is a great deal of group work on this programme, so you should be motivated to collaborate with other students. 

Programme structure

This programme prepares you to work in the core of the computer science or software development industry, to contribute to development of new software technologies and tools.

The programme assumes that you, when enrolling, have a rich tapestry of knowledge of computing from your previous degree.

Combined with previous experience in programming and software development, you have the opportunity to design your own study programme to best fit you and your qualifications.

See the curriculum for the MSc programme in Computer Science.


Course of study for MSc in Computer Science 
1st semester Algorithm Design
7.5 ECTS
Practical Concurrent and Parallel Programming
7.5 ECTS
Advanced Programming
7.5 ECTS
Introduction to Machine Learning
7.5 ECTS
2nd semester
7.5 ECTS
7.5 ECTS 
7.5 ECTS
Specialisation Course 1 
7.5 ECTS
3rd semester
7.5 ECTS
Research Project
7.5 ECTS
Specialisation Course 2  
15 ECTS credits
4th semester
Master Thesis


Mandatory courses

The mandatory study activities (30 ECTS) aim at giving you highly relevant skills in problem solving and designing software using modern methods and technological platforms. The mandatory study activities consist of the following courses:

  • Algorithm Design (7.5 ECTS) focuses on advanced techniques for identifying and solving computationally hard problems and on how to adapt such techniques to real-world scenarios.
  • Practical Concurrent and Parallel Programming (7.5 ECTS). This course is about that part of programming that focuses on parallelism and concurrency. The Java programming language is the language used for practically addressing such aspects.
  • Advanced Programming (7.5 ECTS) 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.
  • Introduction to Machine Learning (7.5 ECTS). The course is an introductory course to the basics of computer vision and machine learning.
  • Research Project (7.5 ECTS): The research project is intended as the bridge between your specialisation and/or your electives and your thesis. It allows you to focus very narrowly and in great detail on the particular sub-topics of your specialisation or elective courses that will then be used in your thesis.

See a description of all courses.


Specialisations and electives

The programme offers several specialisations, and you must choose one during your studies. A specialisation is a well organised collection of two courses (22.5 ECTS) that allows you to reach advanced level in a specific area, and prepare you to write your Master’s Thesis.

You also have an excellent opportunity to shape your own profile through electives. You can choose between courses offered at the IT University at master’s level or follow electives offered at other universities in Denmark or abroad.

See all courses offered in the course list.




The programme offers several specialisations and you must choose one during your studies. Specialisations are well-organised collections of two courses (22.5 ECTS) that allow you to reach advanced level in a specific area and prepare you to write your Master’s Thesis.

Specialisations offered on the Computer Science Programme:

The specialisation in Algorithms teaches you to formulate practical problems with algorithmic terms and find new computational solutions. Algorithmic skills are typically desired by large multinational IT brands, and by small innovative start-ups developing new technologies. 


  1. Linear Algebra and Probability (7.5 ECTS): The course will focus on linear algebra and probability/statistics. 
  2. Advanced Algorithms (15 ECTS): The course teaches advanced algorithm design methods, with special emphasis on randomized and algebraic approaches, and parallel algorithms. These approaches are used e.g. in many state-of-the-art algorithms and data structures for handling large data sets, in machine learning, in addressing communication bottlenecks, and in algorithms for computationally hard problems.

The specialisation in Data Systems gives you a thorough understanding of design, analysis, implementation and evaluation of computer systems.


  1. Computer Systems Performance (7.5 ECTS): This course covers advanced topics in modern hardware and operating systems to give you a thorough understanding of the potential root causes of performance problems, as well as instrumentation techniques and benchmarking to give you the tools to evaluate system performance in practice.
  2. Advanced Data Systems (15 ECTS): This course gives you a thorough understanding of the principles, techniques and algorithms involved in building, maintaining and improving a data system. The course covers in depth issues related to storage management, query processing, and transaction management. You build an open-source data system in the context of this course.

The specialisation in Security teaches you to analyse the security of an IT-system and it gives you a thorough understanding of the construction of ‘secure’ software.


  1. Cryptography (7.5 ECTS): This course brings you up to the cutting edge in applied information security, i.e., the technologies currently defining information security in industry. The course comprises both hands-on and foundational learning activities.
  2. Advanced Security (15 ECTS): This course studies advanced topics in computer security, principally methods for construction of secure software and systems, generally in the intersection between research topics and applications. The course comprises both practical and foundational work.

The specialisation in Machine Learning gives you both a practical and theoretical understanding of the current field of machine learning as well as a survey of some main areas of application. You will learn to use methods from artificial intelligence and machine learning while working with big data.


  1. Linear Algebra and Probability (7.5 ECTS): The course will focus on linear algebra and probability/statistics.
  2. Advanced Machine Learning (15 ECTS): In this course, you will learn to derive, analyse and compare the most central machine learning algorithms and, in doing so, their appropriate application to real datasets. You will both carry out the implementation of algorithms and integrate standard packages into their model development. You will apply the learned techniques across an array of applications; possible applications include robotics, image analysis, finance, natural language processing, bioinformations, and business.

The specialisation in Robotics gives you an understanding of the construction of software for robots and you will learn to construct small physical and mechanical artefacts.


  1. How to make almost anything (7.5 ECTS): The course is a hands-on introduction to the tools that are necessary to design and develop physical artefacts. The course gives an overview of the most important manufacturing methods like 3D printing, NC milling, laser cutting or moulding. In addition, you will learn how to design simple electric circuits to handle sensors and actuators and how to design printed circuit boards. These techniques will allow you to design physical prototypes on your own at the end of the course.
  2. Advanced Robotics (15 ECTS): This course teaches the predominant paradigms in artificial intelligence in the context of robotics: deliberative, behaviour-based, and embodied. The course will introduce a number of advanced topics, e.g. robot learning, evolutionary robotics, swarm robotics, multi-robot coordination, modular robots, simultaneous localisation and mapping. These topics are useful in the context of service robotics, self-driving cars, drones, and other developing robot technologies.

The specialisation in Software Analysis teaches you to use functional programming techniques.


  1. Modelling Systems and Languages (7.5 ECTS): This course introduces modeling languages and models as first class artifacts that are designed, manipulated, transformed and translated to code in an automatic fashion.
  2. Advanced Software Analysis (15 ECTS): This course concerns advanced software verification techniques.

The specialisation in Software Engineering enables you to work as a software engineer and, after gaining industrial experience, provide the base to take over roles as project manager or technical lead. The specialisation will not only introduce you to current software engineering methods and practices, but also enable you to relate to future technical as well as to methodological developments.


  1. Software Architecture (7.5 ECTS): The design, development, and implementation of software system requires the evaluation of several, often conflicting, aspects of the system. The aim of this course is to provide you with knowledge on how to develop software systems in a structured and systematic way that addresses the required functionality and supports the necessary system qualities. This requires a technical toolbox with concepts, methods, and principles to support the software design, implementation, and evaluation as much as a wider understanding of the context and domain of the system.
  2. Advanced Software Engineering (15 ECTS): The purpose of this course is to give you a thorough understanding of innovative processes, methods, and tools for software engineering as well as an introduction to a number of theoretical concepts that allow you to reflect on how methods, processes, and tools support software engineering as a cooperative activity. This way the course enables you to embrace future methodological developments. The course combines theoretical reflection of software engineering and hands-on development of tooling and development of infrastructures, as they e.g. are necessary for continuous software engineering.


The teaching methods for Computer Science include lectures, group projects and exercises. Furthermore, you must be prepared to study literature including books and research papers. Through research-based teaching you will be exposed to contemporary computer science research.

The IT University has a close collaboration with the business community and the computer science industry, and the programme is designed to give you the opportunity to collaborate with private companies. This means you will be able to work with current real-world challenges, and you will have an opportunity to make a network in the industry even before you graduate.

Thesis example

Daniel Varab.


Human language is largely about interpretation, and this is one of the reasons why teaching it to computers is so difficult.

Daniel Varab, MSc in Software Development (the programme has since been renamed Computer Science)



You have the opportunity to complete of your programme at a university abroad. The third semester is especially suited for an exchange. This is a chance for you to further specialise your education and have the experience of working in a new environment in a new country. The IT University has exchange agreements around the world. For students with computer science as their core competence we recommend:

  • Australia – Queensland University of Technology
  • Australia – University of Technology Sydney
  • Czech Republic – Charles University
  • Germany – Technical University of Munich
  • Iceland – Reykjavik University
  • Italy – Polytechnic University of Milan
  • Japan – Kyoto University
  • Netherlands – Maastricht University
  • New Zealand – Auckland University of Technology
  • Spain – Polytechnic University of Catalonia – Barcelona School of Informatics
  • Spain – Universidad Politécnica de Madrid
  • Switzerland – Università della Svizzera italiana
  • Taiwan – Taipei Technology University
  • Turkey – Koç University

Career opportunities

The competencies you acquire on the Computer Science programme and the global perspective of the programme prepares you for a career in both a Danish and a global context. During your studies, you will be specialised in a particular area.Computer Science graduates work as:

  • System Developer
  • Programmer
  • Software Architect
  • IT Expert 
  • Database manager
  • Software Engineer
  • Quality Engineer
  • Project manager
  • System consultant 

If you want to explore the possibility for a PhD at the IT University, please read more here.

Meet a PhD student

Meet Nina, who is a PhD student at the IT University. She is doing research within algorithms and data structures and is working on making statistics on data that contains personally sensitive information.

Are you interested in studying at the IT University of Copenhagen, and do you have questions about programmes, student life or the like, please contact the Study and Career Guidance.