Primary electives:
These programmes related electives. You must select at least 5 of these courses in total. At least 4 courses must be part of the list specific to your chosen track. This must include the core course of that track.
Algorithm Design and Analysis track
- Algorithms for decision support (core course): “Learn algorithms for decision-making under uncertainty, including learning algorithms that act on imperfect predictions, working hands-on with industry-standard optimisation solvers. Apply your knowledge on problems that reflect real scheduling tasks such as those of NS.”
- Advanced algorithms: “Master advanced techniques for hard combinatorial problems, including exact methods, parameterised complexity, and approximation, motivated by real industrial problems. Connect to industry events like the CQM student competition.”
- Geometric algorithms: “Learn algorithms for the spatial and geometric problems underlying GIS, robotics, and computer graphics, using the industry-standard CGAL library.”
- Network science: “Discover how to model and analyse networks, such as social, biological, or technological ones, and their dynamics.”
- Optimization for sustainability: “Apply optimisation methods to energy and mobility systems, tackling a simulation assignment on real data (e.g., from electric vehicle charging). Connect to the Utrecht University’s AI Mobility Lab and its industrial partners.”
- Scheduling and timetabling: “Learn to model and solve scheduling and timetabling problems from Operations Research, using real cases such as train driver scheduling and airport gate planning. Learn how to elicit requirements for these problems and deliver models and solutions that non-technical clients can use.”
Operations Research track
- Statistical Learning and Stochastic Processes: “Combine statistical learning with stochastic process modelling. Cultivate unique modelling thinking skills that enable you to derive a model analytically and evaluate it using Monte-Carlo simulations on real-world datasets.”
- Evolutionary Computing: “Learn evolutionary algorithms and metaheuristics for hard optimisation problems, and ground this in the ability to distinguish which algorithm to apply on which type of problem. Study real cases where these algorithms were applied correctly or incorrectly, and evaluate your work against state-of-the-art scientific standards.”
Programming Technology track
- Advanced functional programming:“Learn advanced functional programming with industrial-level tools such as GHC and Agda. Connect with programming language industry stakeholders such as JetBrains.”
- Language based security: “Learn language-based techniques for building software that is secure by design. Use current memory safety tools, with guest lecturers from the industry and applied research.”
- Probabilistic reasoning: “Study probabilistic graphical models and reasoning under uncertainty, with an emphasis on knowledge engineering and interpretability. Work with established software platforms for building and deploying Bayesian networks, such as HUGIN and BayesFusion, used in professional practice.”
- Program semantics and verification: “Learn formal semantics and verification techniques for proving software correct, build a verification tool, and explore further thesis opportunities at companies such as Info Support and TNO.”
Secondary electives
These electives can be chosen more liberally from other tracks in the programme, or even from other masters like Data Science or Game and Media Technology, as a means of broadening your expertise. You have room for 4 courses or you can also use this elective space to do a profile (see tab below).