We use cookies to collect statistics

We start using cookies when you continue to another page. You can decline data collection by clicking here. We will use a cookie to remember your choice.

If you wish to avoid cookies altogether, you must disable cookies in your browser settings. However, rejecting all cookies will result in losing some of the functionalities of the website.

Read more about the IT University's use of cookies.

Accept cookies


Master of Science in
Software Development: Design Track

The programme

The Design Track of the 2-year MSc in Software Development (Cand.IT, Design Track) is a programme for you who do not have an IT-related undergraduate degree, but wish to develop skills and knowledge within IT, which you can combine with your undergraduate degree. Whether you hold a bachelor in literature, music, or in business and marketing, we help you to grow research level expertise in software science.

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

When you study the Design Track of Software Development, you will gain in-depth knowledge of software design, programming languages, distributed systems, algorithms, software development processes, requirements as well as organization and management. The programme gives you opportunity to work with all phases of the development process – analysis, design, development, test and launch.

All teaching, exams, assignments, etc. will be in English.

Software Development - Design Track

Programme structure: Design track

The Design track is aimed at ambitious students who do not have an IT-related educational background. You enter the Design track to supplement your excellent existing experience from your bachelor’s degree with software development skills in order to create a unique interdisciplinary mix. 

This is a technical program, so you will learn to apply mathematical modeling and logical reasoning in your studies.

This track prepares you to work on application specific software development for end users in public sector and in private enterprises. Your broad experience in software and in your bachelor field of study will make you very well positioned to work with non-technical project members as well as with more specialized programmers.

See the curriculum for the MSc programme in Software Development.

Course of study for MSc in Software Development - Design Track
1st semester Programming Foundations Software Engineering
Introductory Programming
7,5 ECTS credits
Programming Workshop
7,5 ECTS credits
Foundations of Computing: Discrete Mathematics
7,5 ECTS credits
Software Engineering and Software Qualities
7,5 ECTS credits
2nd semester Programming Foundations Elective Module Specialisation Part 1

Introduction to Database Design
7,5 ECTS credits

Foundations of Computing: Algorithms and Data Structures
7,5 ECTS credits
Course or Project
7,5 ECTS credits
Course 1
7,5 ECTS credits
3rd semester Elective modules Specialisation Part 2
Course or Project** 7,5 ECTS credits Thesis Preparation
7,5 ECTS credits
Specialisation Course 2 (and 3)
15 ECTS credits
4th semester Master Thesis 30 ECTS credits


The mandatory modules (45 ECTS) of this track form an intensive crash course in the basics of software creation, which allows you to explore deeper topics already in the second semester:

  • Programming (22.5 ECTS): Introductory concepts in programming and practical experience, including imperative object oriented programming and database design.
  • Foundations (15 ECTS): The most fundamental structures and behaviours in computer programs, such as algorithms, data structures, models of computation and discrete mathematics.
  • Software Engineering (7.5 ECTS): The module focuses on software development methods for assuring quality.

These mandatory modules are supplemented with a specialisation and two elective courses.  If you are interested in combining your non-IT education with your specialisation, you can do this by creating your own individual specialisation.  You can also spend elective course credits on courses or individual projects to create synergy with your prior background (for example from other programmes at the IT University).




The programme offers several specialisations, and you must choose at least one during your studies.  Specialisations are well organised collections of courses that allow you to reach advanced level in a specific area, and prepare you to write an MSc thesis.

You also have an excellent opportunity of shaping your own profile through electives. You can choose between all the courses offered at the IT University at master’s level, and even take electives at a different university. See all courses offered in the course list.

Specialisations offered on the Software Development Programme, Design Track:

Specialisation: Business Analytics

This specialisation enables you to:

  • Design database systems for analysis of big data. Perform data mining using classification and prediction algorithms as well as clustering and rule association approaches 
  • Model and optimise business decisions using AI techniques, mathematical programming, constraint programming and meta heuristics 
Courses: Big Data Management, Data Mining & Intelligent Systems Programming 
Prerequisites: Basic programming skills (for example by having followed Introductory programming and Programming Workshop), Discrete mathematics.
Available on both tracks. Starts every semester (courses can be taken out of order)

Specialisation: Algorithms

The specialisation in Scalable Computing enables you to:

  • Deal with computational problems where efficiency and scalability is crucial 
  • Formulate real-world problems as algorithmic ones, analyze the time complexity of algorithms, and predict their performance in a large scale setting 
  • Recognize computationally hard problems and apply techniques for dealing with them in practice 
  • Devise and implement new, efficient data structures and algorithms for problems based on known algorithms for related problems and on general techniques for designing algorithms 
  • Suggest suitable computing architectures for large-scale computations 
  • Algorithmic skills are typically sought by large multinational IT brands, and by small innovative start-ups developing new technologies. 

Courses: Design track: Intelligent Systems Programming, Algorithm Design, and Applied Algorithms
Prerequisites: Intermediate Programming Skills, Discrete mathematics, and basic algorithms and data structures (Introductory Programming, Programming Workshop, Foundations of Computing) 

Courses: Advanced Computing track: Intelligent Systems Programming, Algorithm Design Project & Algorithms Seminar. 
Prerequisites: Programming Skills, Discrete mathematics, and basic algorithms and data structures (Introductory Programming, Programming Workshop, Foundations of Computing, Algorithm Design) Available on both tracks (different courses). Starts every semester (courses can be taken out of order).

Specialisation: Software Engineering

This specialisation enables you to:

  • evaluate and select software engineering methods and processes based on current research to address software engineering challenges encountered in practice. 
  • systematically evaluate the application of methods, tools and techniques. 
  • design and implement the architecture of software applications answering both functional and non-functional requirements. 
  • relate the individual project to the overall IT strategy of an organisation. 
  • develop and implement an IT governance structure for an organisation. 

The specialisation is designed to enable 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. You will read the courses together with students studying our part time Master in Software Engineering who already now work in these areas.

Courses: Software Architecture, Advanced Software Engineering and Enterprise Architecture. 
Prerequisites: Introductory Software Engineering, intermediate programming skills (note that you may need to take the introdcutory software engineering as an elective to satisfy these prerequisites).

Available on both tracks. Starts every semester (courses can be taken out of order). 



Specialisation: Programming Languages

The specialisation in Programming Languages will enable you to: 

  • Work with software in an abstract and semi-automated fashion, when the program code itself is subject to manipulation by development tools 
  • Use formal and semi-formal modeling notations such as UML, automata, abstract syntax and grammars; and tools for automatic processing such as lexing and parsing tools, simple code generators and verification 
  • Understand the concepts of byte code, abstract machines, interpretation, compilation, and simple static checking of programs, in order to design domain specific interpreters, develop software productivity tools or debug problems in projects using these technologies

  • Utilize at least one declarative programming notation besides SQL 
  • Design domain specific languages and efficiently prototype, editors, code generators and interpreters for them in order to manipulate structured data 
  • Architect software following the model-driven software development paradigm 
  • Implement end-user interfaces using the Eclipse platform 

This specialisation aims to prepare you to take software developer and software architect jobs in mainstream software houses and consultancies (business software, administrative software, etc).

Courses: Programming Language Concepts and Implementation,  Domain Specific Languages and Automated Software Analysis
Prerequisites: Fluent programming in Java, UML class diagrams (can be obtained by following Introductory Programming, Programming Workshop, and Introduction to Database design). Foundations of Computing. In general the specialization requires willingness to work with mathematical concepts. 

Available only on Design Track. Starts every Spring.



Specialisation: Pervasive Computing

This specialisation enables you to:

  • Design mobile applications on the Android Platform, including use of basic distributed service architecture 
  • Design pervasive computing systemsusing state of the art design principles 

Courses: Mobile App Development, Pervasive Computing & Pervasive Computing Project 

Pre-requisites: Basic Programming skills in Java and object-oriented programming in general (e.g. by having followed Introductory Programming and Programming Workshop and OOP). 

Available on both tracks. Starts every Spring semester.

Specialisation: Web Systems

The specialization in Web Systems enables you to:

  • Understand and apply various web programming concepts, tools and techniques to develop Web systems 
  • Be conversant of the principles of user interface design in developing dynamic web applications 
  • Develop and design Web user interfaces from existing server-side resources 
  • Learn about sketching, wire-framing, layout principles, composition and the process of web site design and prototyping 
  • Develop an understanding of the practice of the use of HTML5 and CSS3 
  • Develop competency in Javascript and server-side programming for the Web 
  • To work and develop Web sites in inter-disciplinary teams 

The specialization provides students with a practical knowledge of web systems concepts and techniques and user interface design techniques used in the creation of dynamic web systems. The specialization will provide students with an opportunity to develop an understanding of the principles of client and server-side programming as well as user-interface and Web services constructs. Students will also be excepted to apply these principles and to develop their own Web systems resourced. 

The specialisation provides an in-depth look at the object-oriented features of programming for web systems. Students will have exposure to the practice of using appropriate software development tools to complete a development cycle of web systems.

On successful completion of this specialization students will be able to: (i) understand and apply various web system programming concepts, tools and techniques as well as the principles of user interface design in developing dynamic web systems; (ii) develop and design user interaces from existing server-side web systems resources; (iii) use object oriented features of web systems programming; and (iv) create dynamic web sites that are effective in interacting with the visitors on the Web and are able to validate and process input data; (v) be competent themselves to develop server side web services for web systems; (vi) understand and apply web security and privacy protocols effectively (vii) develop an appreciation of the value of inter-disciplinary team work for the process of web system delivery.

Courses: System Architecture and Security (spring), Frameworks and Architectures for the Web (spring), Scalability of Web Systems (fall).

Available only on Design Track. Starts every Spring.



Career prospects

The competencies of Software Development and the global perspective of the programme prepares you for a career in both Danish and global context, working as e.g.:

  • System Developer
  • Programmer
  • Software Architect
  • Database manager
  • Quality Engineer
  • Project manager
  • System consultant in a broader sense

If you want to explore the possibility for a PhD at the IT University see here.

After Graduation


It can be a professional boost and an advantage on your CV to do part of your studies at a foreign university. The IT University has exchange agreements with universities around the world, and to students with software development as their core competence, we recommend:


The teaching method for Software Development includes project work, which demands independent effort, collaborative skills and project management as well as ordinary lectures as you will find at any other university. Furthermore, you have to be prepared to study literature including books and research papers. Your teachers are the best in their field - therefore they will also make demands on your abilities and commitment.

Software Development is developed in close cooperation with the business community, and the programme is designed to give you the opportunity to collaborate with private companies.

This means you will always be working with current challenges, and you will have an opportunity to make a network in the business community even before you graduate.

ITU integrates research projects in the study programme, so the best candidates have the opportunity to try make their first steps into a research career and continue into a PhD programme.


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

Room 3D05 and 3D07
Rued Langgaards Vej 7
DK-2300 København S

Phone: +45 7218 5240

Email: studievejledningen@itu.dk