Master of Science in
Computer Science

The programme

The 2-year MSc in Computer Science is a programme for you who have an IT-related undergraduate degree and wish to develop your skills and knowledge in computer science on a high, academic level based on international research.

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 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 ITU.

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 knowhow, and you are curious to connected areas to the software development process – e.g. work in teams, plan, organise, create and implement 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
Security 1
7.5 ECTS
2nd semester
7.5 ECTS
7.5 ECTS 
7.5 ECTS
Specialisation Course 1 
7.5 ECTS
3rd semester
Cross Disciplinary Team Work
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)
  • Practical Concurrent and Parallel Programming (7.5 ECTS)
  • Advanced Programming (7.5 ECTS)
  • Security 1 (7.5 ECTS)
  • Research Project (7.5 ECTS)
  • Cross Disciplinary Team Work (7.5 ECTS)


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. Security 2 (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.

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)



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.

Meet a PhD student

Career prospects

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. After graduation, you can be working as e.g.:

  • 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 see here.

Impressions of #lifeatITU

Are you interested in studying at the IT University of Copenhagen, please contact The Study and Career Guidance.