Requirements | ECTS |
1: Imperative/Object-Oriented/Functional Programming (you must meet this requirement) | 30 |
You must have a medium level of ability to program in an imperative/OOP programming language. Additionally, you must have been exposed to a mainstream functional programming language. These requirements are usually met by taking an introductory course on programming and working on a medium-sized project. Course example: Introduction to Programming BSGRPRO1KU (15 ECTS) + First Year Project: Map of Denmark. Visualization, Navigation, Searching and Route Planning BSFDVNS1KU (15 ECTS) + Functional Programming BSFUPRO1KU (7.5 ECTS) | |
2: Discrete Mathematics (you must meet this requirement) | 5 |
You must have taken an introductory course on discrete math. The course must include most of the following: propositional and predicate logics, induction principles, basic counting, discrete probability, sets, functions, graphs, trees. Course example: Foundations of Computing: Discrete Mathematics BSFOCDM1KU (7.5 ECTS) | |
3: Algorithms and Data Structures (you must meet this requirement) | 5 |
You must have taken an introductory course on algorithms, which includes most of the following: big-O notation, basic analysis of algorithm correctness and complexity, hashing, basic data structures, quicksort, mergesort, DFS, BFS, Dijkstra, Kruskal, Prims (MST), priority queues, binary search trees, red-black trees, tries, union-find. Course example: Algorithms and Data Structures 1408001U (7.5 ECTS) | |
4: Databases (you must meet this requirement) | 5 |
Basic concepts of databases, relational databases, basic data analytics. Course example: Introduction to Database Systems BSINDBS1KU (7.5 ECTS) | |
5: Software Engineering (you must meet this requirement) | 5 |
Introductory course on software engineering. The course must include most of the following: software processes, requirements, software architecture, testing, version control, development tools. Course example: Software Development and Software Engineering BSSODSE1KU (7.5 ECTS) | |
6: Computer Security (you must meet two of requirements 6 to 8) | 5 |
You must have some basic knowledge of computer security. This must include most of the following: adversarial environments, security principles, basic methods for preventing cyberattacks, including cryptography, authentication, authorization. Course example: Security 1 BSSECU11KU (7.5 ECTS) | |
7: Programming Language Design and Implementation (you must meet two of requirements 6 to 8) | 5 |
The prerequisite includes most of the following: regular expressions, finite state machines, parsing techniques, type checking and inference, garbage collection techniques. Course example: Programs as Data BSPRDAT1KU (7.5 ECTS) | |
8: Operating Systems (you must meet two of requirements 6 to 8) | 5 |
You must have some knowledge of how operating systems work. This includes most of the following: some knowledge of a low level programming language such as C, basic system programming concepts (I/Os, network programming, concurrent programming), reflect on the impact of hardware, operating system and compilation process on application programs. Course example: Operating Systems and C BSOPSYC1KU (7.5 ECTS) | |