Vi samler statistik ved hjælp af cookies

Vi begynder at bruge cookies, når du klikker dig videre til næste side. Du kan sige Nej tak til statistik ved at klikke her. Vi bruger en cookie, så systemet kan huske, at du har svaret "Nej tak".

Hvis du helt ønsker at undgå cookies, skal du slå dem fra i din browser. Du skal dog være opmærksom på, at hvis du slår cookies fra, kan du ikke bruge de funktioner, som forudsætter, at hjemmesiden kan huske dine valg.

Læs mere om IT-Universitetets brug af cookies.

Acceptér cookies

ITU

Kandidat i
Softwareudvikling

Om Uddannelsen

Den 2-årige kandidatuddannelse (MSc) i Softwareudvikling har fokus på erhvervslivets behov. Du kommer til at arbejde projektorienteret med design, udvikling og vedligeholdelse af software, men du lærer også om den organisatoriske og ledelsesmæssige del af en udviklingsproces. Uddannelsen er derfor også til dig, der vil være andet og mere end hardcore programmør.

Uddannelsen er tilrettelagt sådan, at den både henvender sig til studerende med en it-relateret bachelor og til studerende med andre faglige baggrunde. Uanset om du har en uddannelsesbaggrund inden for datalogi, softwareudvikling, business eller marketing, får du mulighed for at udvikle dine evner og viden inden for softwareudvikling på et højt, fagligt niveau. 

Når du læser Softwareudvikling får du indgående viden om softwaredesign, programmeringssprog, databaser, distribuerede systemer, kunstig intelligens (AI), algoritmer, softwareudviklingsprocesser, kravspecifikation samt organisation og ledelse.

Studerende på uddannelsen kommer til at arbejde med alle dele af softwareudviklingsprocessen – analyse, design, udvikling, test og idriftsættelse.

Undervisningen, eksamener, opgaveskrivning m.m. foregår på engelsk. Du kan vælge mellem to forskellige spor, som afhænger af, om du har en it-relateret baggrund: 

  • Design-spor 
  • Advanced Computing-spor

Softwareudvikling: Advanced Computing-spor

Softwareudvikling: Design-spor

Studiets opbygning: Advanced Computing

Advanced Computing-sporet er udviklet til at give studerende med en it-faglig baggrund inden for programmering og softwareudvikling mulighed for at designe deres egen studiestruktur, så det passer til den enkelte studerendes kvalifikationer og ønsker til faglig udvikling.

Dette spor forbereder og målretter kandidater til softwareindustrien til f.eks. at udvikle ny software, nye teknologier og nye værktøjer.

Se studieordning for Software Development.


Advanced Computing (Efterår)
1. semester Software Design
 Elective Modules
Practical Concurrent and Parallel Programming
7,5 ECTS credits
Algorithm 
Design I
7,5 ECTS credits
Course or Project**
7,5 ECTS credits
Course or Project**
7,5 ECTS credits
2. semester Software Design Elective Modules Specialisation Part 1
Advanced Programming
7,5 ECTS credits
Software Architecture 
and Security 

7,5 ECTS credits
Course or Project** 
7,5 ECTS credits
Specialisation 
Course 1 
7,5 ECTS credits
3. 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
4. semester Master Thesis
30 ECTS credits

Bemærk: På denne linje optages nye studerende til både forårs- og efterårssemesteret. Der er en lille variation i studieforløbet afhængigt af, om du starter i efterårs- eller forårssemesteret.  

Sporets obligatoriske indhold (30 ECTS) sigter mod at give dig relevante kvalifikationer ud i problemløsning, levering af softwareløsninger og samarbejde – kvalifikationer, der vil adskille dig fra størstedelen af andre softwareudviklere. Det obligatoriske indhold er kategoriseret i et overordnet modul:

  • Software Design (30 ECTS):  Modulet fokuserer på avancerede automatiske teknikker  og metoder fra forskning i både computer science og software engineering, hvilket omfatter problemløsningsteknikker, programmeringssprog, projektorganisering, softwarearkitektur og modeldrevet udvikling.

Kurserne på Advanced Computing-sporet er baseret på viden indenfor områder som grundlæggende diskret matematik, algoritmer og datastrukturer samt programmeringssprog. Læs mere om kurserne her.

Du bør have kendskab til følgende emner:

  • Propositions- og prædikat-logik
  • Kombinatorik og sansynlighed 
  • Sandsynligheder
  • Mængder og funktioner
  • Regulære udtryk, grammatikker og automat teori
  • Algoritmisk problem løsningsteknikker
  • Sortering
  • Træer og grafer
  • Hasing
  • Algoritmer til korteste rute 
  • Big-O notation 
  • Kompleksitetsanalyse
  • Syntaks og parsing teknikker for programmeringssprog 
  • Objektorienteret programmering (Java foretrækkes)
  • Indre klasser
  • Generiske typer
  • Kendskab til tråde og synkronisering

Specialiseringer og valgfrie kurser 
Uddannelsen tilbyder flere specialiseringer, og du skal mindst vælge en i løbet af dit studie. En specialisering er en organiseret samling af kurser, der giver dig mulighed for at arbejde med avancerede emner inden for et specifikt område, og forbereder dig til at skrive dit speciale. 

Derudover har du god mulighed for at skabe din egen profil gennem valgfrie kurser. Du kan vælge mellem alle IT-Universitetets udbudte kurser på kandidatniveau, samt tage valgfrie kurser på et andet universitet. Se alle udbudte kurser i kursusoversigten.

Mere

Skjul

Studiets Opbygning: Design

Design-sporet er specielt udviklet til at give ambitiøse studerende uden en forudgående it-faglig uddannelsesbaggrund mulighed for at skabe et unikt tværfagligt mix ved at kombinere deres fx samfundsvidenskabelige, humanistiske eller forretningsorienterede bachelor med en overbygning i softwareudvikling. Det er en teknisk uddannelse, så du lærer at anvende matematiske modeller og logik indenfor softwareområdet. 

Design-sporet forbereder dig på at arbejde med udvikling af applikationssoftware for slutbrugere i både den offentlige sektor og i det private erhvervsliv. Kombinationen af den brede erfaring inden for software og den faglige ballast, du har med fra din bachelorgrad, giver dig god mulighed for at arbejde med projektmedlemmer uden teknisk baggrund såvel som specialiserede programmører.

Se studieordning for Software Development.

Design (Efterår)
1.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
2.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
Specialisation
Course 1
7,5 ECTS credits
3.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
4.semester

Master Thesis 30 ECTS credits

 Bemærk: På denne linje optages kun nye studerende til efterårssemesteret.

De obligatoriske moduler (45 ECTS) på dette faglige spor danner tilsammen et intensivt lynkursus i grundlæggende softwareudvikling, som klæder dig på til at dykke ned i mere avancerede emner allerede i 2. semester:

  • Programming (22,5 ECTS): Fokuserer på introducerende begreber inden for programmering og praktisk erfaring, herunder imperativ objektorienteret programmering og introducerende databasedesign.
  • Foundations (15 ECTS): Fokuserer på de grundlæggende strukturer for softwareudvikling, såsom algoritmer, datastrukturer og diskret matematik.
  • Software Engineering (7,5 ECTS): Fokuserer på softwareudviklingsteknikker og processer til kvalitetssikring.

De obligatoriske moduler suppleres med en specialisering og to valgfri kurser. Hvis du ønsker at kombinere din specialisering med et emne inden for din bachelors fagområde, kan du lave din egen specialisering eller bruge dine valgfri kurser til at skabe synergi mellem dine to fagligheder. Læs mere om kurserne her.

Mere

Skjul

Specialiseringer

Uddannelsen tilbyder flere specialiseringer, og du skal mindst vælge en i løbet af dit studie. En specialisering er en organiseret samling af kurser, der giver dig mulighed for at arbejde med avancerede emner inden for et specifikt område, og forbereder dig til at skrive dit speciale. Se oversigt og beskrivelse af de forskellige specialiseringer.

Se beskrivelser af de enkelte specialiseringer nedenfor. Vær opmærksom på, at ikke alle kurser og specialiseringer udbydes både forår og efterår, og at der kan være specialiseringer, der kun udbydes til Design-studerende eller Advanced Computing-studerende.

Specialisering: 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)

Specialisering: Databases

The specialisation in Databases enables you to:

  • Structure and model data in order to design databases 
  • Implement database designs, and program complex database queries, triggers, and stored procedures, in widely used relational DBMSs 
  • Perform database tuning for improving the efficiency of large-scale databases 
  • Understand the concept of non-relational data (XML, geographic, textual) and use of simple indexing techniques and query languages for such data 
  • Architecting large scale distributed database systems  Perform large-scale data analysis and data mining 

These skills are desirably for main stream jobs like software developer and database architect, in domains like business software, administrative software and web applications. 

Courses: Big Data Management, Database Tuning & Database Tuning Project
Prerequistes: Requires foundational programming skills (Introductory Programming and Programming Workshop, Foundations of Computing). 

Available on Advanced Computing. Starts every semester (courses can be taken out of order)

Specialisering: 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 & Algorithm Design Project 
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).

Specialisering: 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). 

Mere

Skjul

Specialisering: Programming Languages, Design track

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.

Mere

Skjul

Specialisering: Programming Languages, Advanced Computing

By following this specialisation you will learn to:

  • Use formal and semi-formal modelling notations such as 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 
  • Discuss and evaluate new technologies and tools in programming languages 
  • Compare and discuss programming languages. Efficiently learn new languages 

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), as well as it serves as a potential entry point to research in programming languages.

Courses: Domain Specific Languages and Automated Software Analysis & Programming Language Seminar
Prerequisites: Intermediate level programming in Java, basics of discrete mathematics (Foundations of Computing). In general the specialization requires willingness to work with mathematical concepts.

Available only on Advanced Computing Track. Starts every Autumn.

Mere

Skjul

Specialisering: 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.

Specialisering: Critical Systems

The specialisation in Critical Systems enables you to:

  • Formally model, design and implement correct complex process-aware distributed systems 
  • Specify compliance rules (e.g. for security policies) formally using temporal logic and graphical formalisms 
  • Explain the principles of formal verification (model-checking) and apply model-checking tools 
  • Explain the principles of behavioural types and their application for robust implementation of complex distributed systems 

This specialisation aims to prepare you to take software developer and software architect jobs in software houses and consultancies taking part in development of distributed, service-oriented and process-aware information systems for which correctness and security plays a critical role (such as electronic patient records and other healthcare software, financial software, e-voting, aministrative systems, embedded software in safety-critical devices such transportation etc), as well as it serves as a potential entry point to research in model-based design, process-aware information systems, formal methods, programming, logic and semantics.

Courses: Business Process Modelling and Analysis (Spring), Critical Systems Seminar (Autumn), Critical Systems Project (Autumn) 
Prerequisites: Discrete Mathematics and Distributed Systems in Java (the latter only for the Critical Systems Seminar and Project)

Available only on Advanced Computing track. Starts every semester (courses can be taken out of order).

Mere

Skjul

Specialisering: 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.

Mere

Skjul

cand.it

Anna Kato Ipsen
»

Jeg elsker succesoplevelserne, man får, når man sidder og koder, og det hele virker. Så er der virkelig adrenalin og spænding. Man kan slet ikke slippe det, når man er i gang. Men programmering kom ikke specielt nemt til mig, så det var nødvendigt at finde et sted, hvor jeg kunne snakke med andre om kode. Dét fandt jeg på ITU.

Anna Kato Ipsen, IT-arkitekt hos Linkfire
«

Morten Hyllekilde Andersen
»

Jeg valgte at skifte til ITU, mest fordi jeg ville have noget mere praktisk viden. På ITU var der mange projekter, og det kunne jeg bedre relatere til end hård teori. Allerede i slutningen af første semester skulle vi programmere et biludlejningssystem med brugergrænseflade, database og det hele. Det gav blod på tanden at få det til at spille sammen, og at det var noget, man kunne relatere til sin hverdag.

Morten Hyllekilde Andersen, Junior Consultant hos NNIT
«

Karrieremuligheder

Kompetenceområderne i Softwareudvikling og softwareteknologi og uddannelsens globale perspektiv ruster dig til karrieremuligheder i både danske og globale sammenhænge, hvor du bl.a. kan få job som:

  • Systemudvikler 
  • Programmør 
  • Software-arkitekt 
  • Database Manager 
  • Softwareingeniør 
  • Kvalitetsingeniør 
  • Projektleder/-chef 
  • Systemkonsulent i bredere forstand

Er du interesseret i at læse en PhD på IT-Universitetet, kan du læse mere om forskningsområderne her.

Udveksling

Det kan være både fagligt udviklende og se godt ud på CV’et at læse en del af sin uddannelse på et udenlandsk universitet. IT-Universitetet har udvekslingsaftaler med universiteter rundt omkring i verden, og for studerende med faglighed inden for softwareudvikling vil vi fremhæve:

EPITA, Paris
ETH, Swiss Federal Institute of Technology, Zurich
Technische Universität, München

Undervisningen

Undervisningsformen på Softwareudvikling og -teknologi veksler mellem projektarbejde, hvor der stilles krav til selvstændighed, samarbejdsevne og projektledelse, og almindelig auditorieundervisning, som man kender det fra andre universiteter samt at studere litteratur inkl. bøger og forskningsartikler. Dine undervisere er de bedste inden for faget, og der bliver derfor også stillet krav til dine evner og dit engagement.

Softwareudvikling og -teknologi er udviklet i tæt samarbejde med erhvervslivet, og uddannelsen er tilrettelagt, så du får mulighed for at samarbejde med private virksomheder. På den måde arbejder du altid med aktuelle udfordringer, og du kan skabe kontakt til erhvervslivet allerede under studierne. Vi integrerer desuden vores forskningsprojekter i undervisningen, hvilket giver uddannelsens bedste kandidater mulighed for at tage de første skridt ud i en karriere inden for forskning og fortsætte på Ph.d.-uddannelsen.

#lifeatitu

Studievejledning

Er du interesseret i at læse på en af IT-Universitetets uddannelser, er du velkommen til at kontakte Studie- og Karrierevejledningen.

Lokale 3D05 og 3D07
Rued Langgaards Vej 7
DK-2300 København S

Tlf: +45 7218 5240

Email: studievejledningen@itu.dk