On this page, the structure of the Master’s curriculum in Computer Science (version 2022) is described in general terms. Please note that not all details are covered here.
| Graduation | Master of Science (MSc) |
|---|---|
| Usual duration | 4 semesters (2 years) |
| Amount | 120 ECTS credits |
| Language | Englisch |
| Current version | 1. Oktober 2022 |
| Degree Programme Code | UA 066 921 |
| Curriculum | Konsolidierte Fassung (PDF, Deutsch), English Version (PDF, informal) |
| Semester plan | see here |
The Master’s program in Computer Science is characterized by a relatively large elective component and only a small number of conventional compulsory courses. Depending on the chosen specialization, students select their courses from different groups of courses, known as “Clusters.” The third major component of the programme is the Master’s thesis, including the preparatory projects P1 and P2.
In the following, we attempt to explain these areas and the structure. Nevertheless, it is definitely still worthwhile to take a look at the curriculum!
Admission
If you are already studying here, please simply skip this section :-)
The main prerequisite for admission to the program is a “relevant prior degree.” Relevant prior degrees are, in any case, the Bachelor’s programs in Computer Science or Business Informatics at the University of Vienna. Alternatively, another relevant Bachelor’s degree or an equivalent university-level degree from a recognized domestic or foreign post-secondary educational institution (e.g., a university or Fachhochschule) may be accepted.
Specifically, this means:
- If you have completed the Bachelor’s program in Computer Science or the Bachelor’s program in Business Informatics at the University of Vienna, you will definitely be admitted and do not have to take the entrance exam. If you continue directly from your Bachelor’s program to the Master’s program, you may even enroll outside the regular admission periods (as part of the current-day admission process). In other words: once you have completed your Bachelor’s degree at the University of Vienna, you can immediately continue with the Master’s program.
- If you come from another (domestic or foreign) educational institution, the content of your prior studies must not differ substantially. In other words, too many subjects that are compulsory in our Bachelor’s program must not be missing. If the differences amount to more than 30 ECTS, admission will not be granted. If 30 ECTS or fewer of the required prior knowledge are missing, additional requirements may be imposed; that is, in this case you must complete courses from our Bachelor’s program amounting to a maximum of one semester (and you have two semesters to do so).
As a rule of thumb, we would say: if you have previously completed a degree called “Computer Science” or “Informatics,” admission should not be a problem.
You need proof of English proficiency at least at level B2 (e.g., Austrian "Matura", IELTS/Cambridge certificate, etc.; for all options see here). Since currently a maximum of 80 students from other universities are admitted per year, you must take an on-site ranking test. This test covers core competencies from (almost) all areas of the Bachelor’s program.
Note: The questions are very challenging. However, it is not expected that you know everything or achieve full points—you simply need to be among the top 80 participants!
The requirements under this bullet point apply analogously to students who have completed a degree at the University of Vienna other than the Bachelor’s in Computer Science or Business Informatics (e.g., Bachelor’s/Master’s programs in Teacher Education in Computer Science, Master’s in Data Science) but can demonstrate sufficient subject-specific Computer Science ECTS through elective components or their "Interessensmodul". These are absolute exceptional cases, but they are mentioned here for the sake of completeness.
Compulsory Courses
The compulsory block of lectures is relatively small:
- In the first (winter) semester, students should complete the lecture VU Parallel Architectures and Programming Models (PAP, 6 ECTS). This course covers, among other topics, program parallelization using OpenMP and OpenMPI as well as computation on a GPU.
- In the first summer semester, students should then complete the course VU Advanced Software Engineering.
- In addition, there is the course VU Scientific Writing (module MSE). Currently, there are two different groups with rather different formats. Ultimately, students learn correct citation practices, how to write peer reviews, and how to present a scientific paper.
All other courses in the Master’s program are counted either toward the elective component or the final phase.
Clusters
Before we describe the specializations and the elective component in more detail, we will first explain the general system here:
Our elective courses are structured into so-called Clusters (formerly called elective module groups or Wahlmodulgruppen). A cluster is essentially a group of thematically related courses. Each of these clusters has an introductory course, called a gatekeeper course, or simply gatekeeper; this course is a prerequisite for all advanced courses within the respective cluster (exception: the Algorithms cluster has two courses, both of which together count as the gatekeeper!).
Example:
You may be interested in how language models such as ChatGPT work. Therefore, you might want to take the courses Natural Language Processing and Deep Learning for Natural Language Processing.
These courses belong to the Data Analysis cluster. In order to be able to take advanced courses (such as NLP), you must first complete the gatekeeper course for the Data Analysis cluster, called VU Foundations of Data Analysis. After that, you can take the courses you are interested in.
Which clusters you may or must choose courses from, and to what extent, depends on your chosen field of specialization. This will only be explained in the next section. Nevertheless, the clusters and their contents are briefly explained here already.
Currently, the following clusters exist:
- Cluster Algorithms
Gatekeeper: VU Algorithms and Data Structures 2 (3 ECTS) in combination with VU Numerical Algorithms (3 ECTS)This cluster focuses on understanding and developing (efficient) algorithms, i.e., systematic procedures for solving problems. You will learn how to design and evaluate algorithms and computational methods efficiently, as well as how to verify their correctness and determine their asymptotic runtime—for example for search and sorting algorithms or numerical computations.
The cluster is essentially divided into two parts: on the one hand, there are several courses oriented toward formal methods (mathematical proofs of runtime or correctness of algorithms, abstract concepts, etc.); on the other hand, there are also courses in the area of classical Scientific Computing, where the focus is, for example, on estimating and minimizing computational errors in numerical methods.
- Cluster Computer Graphics
Gatekeeper: VU Foundations of Computer Graphics (6 ECTS)This cluster is also essentially divided into two parts:
On the one hand, there are several courses related to computer graphics (creating 3D models or animations on a computer, for example for games or simulations); on the other hand, there are courses focused on the creation of visualizations. - Cluster Data Analysis
Gatekeeper: VU Foundations of Data Analysis (6 ECTS)Here you will learn methods for analyzing data and identifying patterns—such as fundamentals of statistics, data mining, or visualization of large data sets. These skills help you transform raw data into usable knowledge.
Topics include, for example, supervised vs. unsupervised learning, clustering algorithms, neural networks, large language models (LLMs), and much more.
- Cluster Information Management & Systems Engineering
Gatekeeper: VU Information Management & Systems Engineering (6 ECTS)This cluster focuses on data management, knowledge engineering, and process mining. Topics include databases (including NoSQL systems), as well as rule-based systems, first-order logic, and fuzzy logic.
- Cluster Internet Computing & Software Technologies
Gatekeeper: VU Distributed Systems Engineering (6 ECTS)This area covers concepts and technologies for distributed systems, web technologies (REST vs. SOAP, and much more), and modern software development. You will learn software engineering patterns, how distributed software (e.g., microservices) works, how to compute in the cloud, and much more.
- Cluster Digital Media Technologies (formerly called: Multimedia)
Gatekeeper: VU Signal and Image Processing (6 ECTS)This cluster covers topics such as audio/video/image encodings and compression algorithms. However, web crawling, indexing, link analysis, and image processing (image pattern recognition, edge detection, etc.) are also included.
- Cluster Networks
Gatekeeper: VU Foundations of Networked Systems (6 ECTS)This cluster focuses on networks and communication, i.e., how computers are connected, how data is transmitted, and how networks operate securely and efficiently. Another topic covered here includes, for example, the structures of social networks and cooperative systems.
- Cluster Parallel Computing
Gatekeeper: VU Parallel Computing (6 ECTS)Here you will learn how to design programs and systems that use multiple processing cores or computers simultaneously, for example in high-performance computing or large-scale simulations. At its core, this is about designing programs in such a way that they run faster on multiple CPU cores or CPUs than on a single one. There is also, among other things, a course related to compiler construction.
- Cluster Security
Gatekeeper: VU Information Security Management (6 ECTS)This cluster focuses on IT security and the protection of data and systems. You will deal with authentication, encryption, and general principles of secure software and system design. Course contents include, for example, fundamentals of cryptography, symmetric and asymmetric encryption, code obfuscation (protection of programs against analysis and reverse engineering), software fingerprinting (protection against unauthorized distribution/copying of software), software tamper-proofing (protection against modification of software), blockchain, network security, and much more.
In addition to courses offered at the University of Vienna, this cluster also includes a list of courses at TU Wien that are generally considered pre-approved, which can also be completed as part of this cluster. However, this requires co-registration at TU Wien, meaning that the administrative process is somewhat more complex and special deadlines must be observed. Nevertheless, the range of courses in this cluster is somewhat larger than it might appear at first glance.
The Medical Informatics cluster, which exists in the Bachelor’s program, unfortunately cannot currently be chosen in the Master’s program in Computer Science. Extension curricula or alternative extensions also cannot be completed in the Master’s program (or only within the interest module, in which case the ECTS do not count for graduation).
Specializations
In the Master’s program in Computer Science, there are several fields of specialization. Depending on which one you choose, you must fulfill different requirements within the elective component. This means that, depending on the field of specialization, you have a different range of courses to choose from within the clusters described above.
The following specializations are offered in the Master’s program:
- Scientific Computing
- Data Science
- General Computer Science (= no specialization)
The specialization must be selected in u:space before you register for your first elective course. After selecting it, you may change it only once. Tip: Inform yourself thoroughly about which specialization you want to pursue. If you realize that it is not the right one for you, it is best to first register for courses of another specialization without changing the specialization yet, and only change the specialization shortly before graduation (or when you are really sure that the new specialization is the right one for you).
Specialization: Scientific Computing
Scientific Computing, according to the definition by Michael T. Heath, is another term for numerical analysis and “is concerned with the design and analysis of algorithms for solving mathematical problems that arise in many fields, especially science and engineering.” It therefore deals, among other things, with solving mathematical problems, computing theoretical models, analyzing data from experiments, and carrying out computer experiments and simulations—always with an eye on possible errors or inaccuracies as well as performance.
From a student perspective, you can expect, among other things, the following topics (selection!):
- Numerical Algorithms (mainly cluster Algorithms):
- How can I efficiently solve a system of linear equations on a computer, and how accurate is my result?
- How can I efficiently compute eigenvalues and eigenvectors on a computer, and how accurate are my results?
- An exact solution is too expensive; is there a method that yields a solution that can be computed in an acceptable amount of time and is sufficiently accurate for my purposes? How accurate is this solution, and what is the maximum error?
- Which algorithm is best suited for my matrix structure (sparse vs. dense matrices, diagonal matrices, block-diagonal matrices, …)?
- How various factorizations (QR, Cholesky, …) work, with and without pivoting/preconditioners, various iterative methods, solving differential equations on a computer, and much more.
- Introduction to various libraries, such as BLAS/OpenBLAS, LAPACK, GSL, NumPy, SciPy, mlpack, PETSc, and many more.
- Theory of Algorithms:
- Which evaluation/sorting method or data structure should I use under the given circumstances? What are the respective advantages and disadvantages?
- Is my algorithm correct? (Correctness proofs of algorithms)
- What is the runtime of my algorithm? (Runtime proofs of algorithms)
- An exact solution is too expensive; is there a method that yields a solution that can be computed in an acceptable amount of time and is sufficiently accurate for my purposes? How accurate is this solution?
- Parallel Computing:
- I have the following problem and could solve it sequentially in a certain way. How can it be solved faster in parallel on multiple CPU cores or even multiple computers than on a single one? What is the ideal number of CPU cores to solve the problem as fast as possible?
- How can a program be optimized so that it works well in parallel or runs as fast as possible? (memory hierarchy, caches, etc.)
- What is the maximum speedup that could in theory be achieved?
- How can computations be performed on a graphics card?
- Introduction to various libraries such as OpenMP, OpenMPI, OpenCL, and others.
- Data Science component:
- How can knowledge be extracted from data?
- Various clustering methods, the functioning of neural networks, classification, and much more.
If you choose this field of specialization, you must select courses as follows:
- (at least) 24 ECTS from the Parallel Computing cluster
- (at least) 18 ECTS from the Algorithms cluster
- (at least) 6 ECTS from the Data Science cluster, and
- (at least) 6 ECTS from the Networks cluster.
Please note that each of these clusters has a gatekeeper (see above) that you must complete before you are allowed to take advanced courses. However, if you have already completed the gatekeeper during your Bachelor’s studies, you may not take it again; it is then simply considered completed, and you can start directly with advanced courses. Furthermore, no courses may be selected that have already been successfully completed in the Bachelor’s program („Verbot der Doppelverwendung“).
The recommended semester plan for this field of specialization can be found here.
Specialization: Data Science
This specialization focuses on extracting knowledge from data.
To graduate with this specialization, you must select courses as follows:
- (at least) 24 ECTS from the Data Analysis cluster
- (at least) 12 ECTS from the module Application Subject: Data Science
- (at least) 12 ECTS from the Algorithms cluster
- (at least) 6 ECTS from the Parallel Computing cluster
Please note that each of these clusters has a gatekeeper (see above) that you must complete before you are allowed to take advanced courses. However, if you have already completed the gatekeeper during your Bachelor’s studies, you may not take it again; it is then simply considered completed, and you can start directly with advanced courses. Furthermore, no courses may be selected that have already been successfully completed in the Bachelor’s program („Verbot der Doppelverwendung“).
The recommended semester plan for this field of specialization can be found here.
Please note that this section describes the Data Science specialization within the Master’s program in Computer Science. We also offer a separate, interdisciplinary Master’s program in Data Science, which functions in a completely different way!
General Computer Science (= no specialization)
If you do not want to choose one of the specializations mentioned above, you can take “General Computer Science.” This is essentially “no specialization.” You may choose more or less any courses from all the 9 clusters.
Important:
- For students who graduate after October 1, 2026, the following will most likely apply (planned change!):
Courses must be selected from at least 3 and at most 6 different clusters, and you may complete at most 4 gatekeeper courses. Which courses or clusters you choose is up to you, as long as you follow this rule.
- For students who graduate before October 1, 2026, the following applies:
Courses must be selected from exactly 6 different clusters, and at most 4 gatekeeper courses may be chosen.
Please note that each of these clusters has a gatekeeper (see above) that you must complete before you are allowed to take advanced courses. However, if you have already completed the gatekeeper during your Bachelor’s studies, you may not take it again; it is then simply considered completed, and you can start directly with advanced courses. Furthermore, no courses may be selected that have already been successfully completed in the Bachelor’s program („Verbot der Doppelverwendung“).
Attentive readers may have noticed that under the current regulation (until October 1, 2026), you are only allowed to complete 4 gatekeeper courses, but must choose courses from 6 different clusters. This is, of course, a problem … therefore, the following applies:
- If you have already completed your Bachelor’s degree at the University of Vienna, you have definitely already completed at least 2 gatekeeper courses. You therefore need to complete up to 4 new ones and will not have any problems in this regard (unless you want to choose entirely new clusters).
- However, if your prior degree was not the Bachelor’s program in Computer Science at the University of Vienna, it could be the case that you do not yet have 2 gatekeeper courses. Nevertheless, you are still only allowed to complete 4 new gatekeeper courses. You therefore have two options to still attend courses from 6 different clusters:
- Option 1 (not recommended):
Some courses are listed in multiple clusters. For example, VU Scientific Data Management is currently listed in two clusters, Data Analysis and Parallel Computing. In cases like this, the prerequisites are always “either gatekeeper A or gatekeeper B.”
By carefully choosing courses, you can therefore complete courses from 6 clusters thanks to these double listings, even though you have only 4 gatekeepers. However, this severely restricts your choice of courses. - Option 2:
You can, of course, complete an additional gatekeeper outside the curriculum (in the so-called „Interessensmodul“) in order to “unlock” the desired cluster. This means that you would then graduate with, for example, 126 ECTS instead of 120 ECTS. In other words, you must complete an additional course that is “voluntarily mandatory.” In return, you are not restricted in your choice of the remaining courses and can choose courses (more) according to your interests.
- Option 1 (not recommended):
Attention, important: If you have already completed a course with the same or similar content in your prior studies, the gatekeeper is of course still considered completed, and you are actually not allowed to take it again (this often goes unnoticed, or, if it does, sometimes only at the time of graduation, which can be very annoying). Therefore, be sure to read the course contents carefully and consider whether everything already seems familiar to you—if so, contact us or the study program director (SPL).
The recommended semester plan can be found here.
Final Phase
At the end of the Master, you will have to write a Master’s thesis (worth 30 ECTS) and do a public defensio. This means you will spend approximately six months (and often much more) working more or less independently on your own research project. This only works well if the topic you like the topic you chose. In order to find a topic that fits you, there are two preparatory projects beforehand, worth 6 and 12 ECTS respectively, called Praktikum 1 and Praktikum 2.
The idea:
- Around your 2nd semester (according to the recommended semester plan), you complete Praktikum 1. This will be a small (6 ECTS), well-defined, rather practical project that allows you to get a first taste of a specific reearch area. Depending on the supervisor, this can look very different. Some will give you a topic and essentially say “play around with it and see what comes out,” while others have much higher expectations (up to the wish for a “publication-worthy result”); there are no strict central guidelines.
- If you liked the topic of your Praktikum 1, you can continue or extend the topic, or work on a very similar one, in the following semester as part of Praktikum 2. You will thus have found an area that you like enough to want to write your Master’s thesis in a related topic afterward.
If, however, you find that you did not like the topic of your Praktikum 1 that much, that is no problem at all. You can choose a completely different topic or even a different supervisor for Praktikum 2 and see whether that works better for you.
- If the topic and supervision of Praktikum 2 worked well for you, you may eventually already use the results of Praktikum 1 and/or Praktikum 2 as a starting point for your Master’s thesis. Ideally, you can therefore continue or extend the topic of Praktikum 1/Praktikum 2 for your Master’s thesis.
If, however, you were not happy with how Praktikum 2 went, you can of course look for a completely new topic and/or a new supervisor for the Master’s thesis. That is also no problem!
Ultimately, the goal is for you to be happy with both the topic and the supervisor for your Master’s thesis. Depending on the supervisor (and possibly even on the topic), the structure of the Praktika and the supervision of the Master’s thesis can vary greatly. There are (almost) no central regulations. However, you will probably meet with your supervisor more or less regularly to discuss your progress.
In theory, it is also permitted to complete Praktikum 1 and Praktikum 2 in the same semester. It is better not to do this (or only if you are really sure that you like both the topic and the supervisor)!
Some research groups or potential supervisors publish topic proposals or past topics on their websites. These can be a good point of reference. However, your own proposals and ideas are always welcome as well!
Topic proposals:
- Research Group Theory and Applications of Algorithms
Potential supervisors: Wilfried Gansterer, Kathrin Hanauer, Gramoz Goranci, and others
Area: Algorithms, Scientific Computing, and more - Research Group Cooperative Systems
Potential supervisors: Peter Reichl, and others
Area: Networks, Human–Computer Interaction, Internet of Things, and more - Research Group Data Mining
Potential supervisors: Claudia Plant, Nils Kriege, Benjamin Roth, Sebastian Schuster, Sebastian Tschiatschek, Yllka Velaj, among others
Area: Data Mining, Machine Learning, Natural Language Processing, and more - Research Group EDEN – Education, Didactics and Entertainment Computing
Potential supervisor: Helmut Hlavacs
Area: Entertainment Computing, rendering, graphics, game engines, and more - Research Group Multimedia Information Systems
Potential supervisors: Wolfgang Klas, Gerald Quirchmayr
Area: Multimedia, multimedia content, multimedia systems, blockchain technologies, and more - Research Group Scientific Computing
Potential supervisors: Siegfried Benkner, Atakan Aral, Enes Bajrovic, Eduard Mehofer, and others
Area: Programming models, languages and concepts, parallel computing, programming of heterogeneous parallel systems, cloud computing, edge computing, edge AI, and more - Research Group Security and Privacy
Potential supervisors: Edgar Weippl, Sebastian Schrittwieser, and others
Area: Security, especially software protection and blockchain - Research Group Software Architectures
Potential supervisor: Uwe Zdun
Area: Software engineering, microservices, … - Research Group Visualization and Data Analysis
Potential supervisors: Torsten Möller, Daniel Pahr, and others
Area: Data visualization, human-computer interaction, human-data interaction, data physicalization, and more - Research Group Workflow Systems and Technologies
Potential supervisors: Han van der Aa, and others
Area: Process mining, and more
For the remaining groups (including Communication Technologies and Neuroinformatics) or individual researchers, we are not aware of any publicly accessible websites. Please check the slides of the introductory lecture or contact potential supervisors directly by email (as early as possible) with your ideas.
The Master’s Seminar should be taken at the beginning of the Master’s thesis. Until 2024, students could choose whether to write an exposé or a related work chapter as part of the seminar, which then had to be presented to the other students. Currently, however, the structure of the Master’s seminar also depends on the supervisor and is not centrally regulated.
Further Information
- Consolidated version of the curriculum (PDF, German)
- English version of the curriculum (PDF, informal)
- Rectorate regulation on proof of English proficiency for admission to degree programs
- Master’s program in Computer Science on the Faculty website
- Master’s program in Computer Science on the University of Vienna’s central website