Programme

The first year will cover the following core fundamentals:
– Basic Mathematical Methods and Statistics
– Software Engineering
– Parallel Programming
– Computer Architecture
After the fundamental courses, students will follow up on a specialisation.
Academic Contents
Course offer for Semestre 1 (2025-2026 Winter)
-
Details
- Course title: Intelligent Systems – Machine learning
- Number of ECTS: 3
- Course code: MICS2-62
- Module(s): 1.1 Mathematics and statistics
- Language: EN
- Mandatory: Yes
-
Objectives
This course introduces Machine Learning (ML) fundamental principles and its three main learning paradigms (supervised, unsupervised, and reinforcement learning).
For each learning paradigm, it presents some of its most typical foundational models and discuss them from the perspective of representation, evaluation, and optimization.
A special attention is given to a basic introduction into deep learning techniques and learning theory.
The course mixes theoretical concepts with practical experience in implementing various ML models. -
Course learning outcomes
At the end of the course the student will be able to:
differentiate the terms of Artificial Intelligence, Machine Learning, and Deep Learning.
describe the differences among all three main Machine Learning paradigms: supervised, unsupervised, and reinforcement learning.- determine which of the three ML paradigms is appropriate to a particular problem domain.
derive, implement, and evaluate some of the most typical Machine Learning models.
derive, implement, and evaluate some simple deep learning models and their learning algorithms.
apply Machine Learning models to real-world problems.- evaluate the performance of a simple learning system on a real-world dataset.
- characterize the state of the art in learning theory, including its achievements and its shortcomings.
-
Description
The following topics are covered in the course:- Basics – ML Introduction & Data preparation
- Supervised Learning – Regression
- Supervised Learning – Classification
- Unsupervised Learning – Dimensionality reduction & Clustering
- Reinforcement Learning – Fundamentals
- Deep Learning – Learning Deep Representations
- Deep Learning – Models
- Learning Theory
- Research – Glimpse on state-of-the-art research
- Engineering – ML and the real-world
-
Assessment
Combined assessment
-
Note
Bishop, C.: Pattern Recognition and Machine Learning, 2006
Goodfellow, I., Bengio, Y. Courville, A.: Deep Learning, 2016
Sutton, R., Barto, A.: Reinforcement Learning: An Introduction, second edition, 2018
Hastie, T, Tibshirani, R. Friedman, J.: The Elements of Statistical Learning, 2009
Zhang, A., Smola, A.J., Lipton, Z., Li, M.: Dive into Deep Learning, 2023
-
Details
- Course title: Intelligent Systems – Problem Solving
- Number of ECTS: 3
- Course code: MICS2-38
- Module(s): 1.1 Mathematics and statistics
- Language: EN
- Mandatory: No
-
Objectives
The objective of this lecture first consists in providing a structured approach to students in terms of optimization problem modeling. Next various solving techniques based on exact methods (A*, BB, LP), approximated ones (heuristics, meta-heuristics, problem relaxation) and hybrids are described. Students are also taught how to validate the proposed solution by having a scientific approach
-
Description
Introduction to optimisation and decision problems
Linear programming, graphical interpretation and primal simplex
Branch&Bound, A*
The scheduling problem
List algorithms, greedies, heuristics
Meta-Heuristics and Evolutionary computation -
Assessment
Final Exam: 100%
-
Details
- Course title: Intelligent Systems – Agents and Reasoning
- Number of ECTS: 3
- Course code: MICS2-36
- Module(s): 1.1 Mathematics and statistics
- Language: EN
- Mandatory: No
-
Objectives
The objective of this course is to provide a solid foundation in intelligent systems, with a focus on symbolic techniques for structured knowledge representation and agent reasoning.
-
Course learning outcomes
By the end of the course, students will be able to:
Understand the central role of logical formalisms in knowledge-based systems.
Differentiate between syntactical and semantical concepts of logical systems.
Understand key model-theoretic concepts, e.g., interpretations, validity, and satisfiability.
Understand proof-theoretic concepts such as proof calculi, soundness, and completeness.
Define and use classical propositional logic (PL) and classical first-order logic (FOL) to represent facts and properties.
Apply software to model reasoning problems, e.g., model generation using IDP3.
-
Description
The topics of the course are as follows:
– Semantics vs. proofs
– Propositional logic: Syntax and semantics
– First-order logic: Syntax and semantics
– Proof calculi, soundness and completeness
– Modelling natural language in formal logic
The exact lecture plan is as provided on the Moodle system and updated continuously. -
Assessment
Mid-term Exam (40%): Focuses on L1-L5
Project (20%): Focuses on applying FOL to practical reasoning problems using tools like IDP3.
Final Exam (40%): Covers the entire course, with an emphasis on L6 and L7
-
Note
Learning material such as the exercise sheets and literature will be provided in the Moodle system.
Students are asked to read/prepare the indicated literature for each lecture.
-
Details
- Course title: Parallel Computing
- Number of ECTS: 6
- Course code: F1_MA_HPC_1-19
- Module(s): 1.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Details
- Course title: Distributed Systems
- Number of ECTS: 3
- Course code: MICS2-2
- Module(s): 1.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Objectives
The objective of the course is to provide an overview of the area of distributed systems with a focus on distributed algorithms. After successful completion of this course the student should be able to:
Identify and explain the following concepts related to distributed systems: network topology, communication models, operation mode, failure model, scalability, complexity
Explain the role and importance of distribution in a selection of related domains, e.g., mutual exclusion, fault tolerance Can list the relevant assumptions and requirements for each of these domains
Understands the operation of the basic algorithms in each of these domains
Can reason about the basic properties of these algorithms -
Course learning outcomes
* Identify and explain the following concepts related to distributed systems: network topology, communication models, operation mode, failure model, scalability, complexity
* Explain the role and importance of distribution in a selection of domains: mutual exclusion, self-stabilizing systems, disbributed snapshot, termination detection, leader election, consensus, fault tolerance
* List the relevant assumptions and requirements for each of these domains
* Explain the operation of the basic algorithms in each of these domains
* Analyze the basic properties of these algorithms
-
Description
distributed systems. In details, it contains the following topics:
Mutual exclusion
Self-stabilizing systems
Distributed snapshot
Termination detection
Leader election
Consensus in distributed systems
Fault tolerance
Graph Algorithms -
Assessment
Assessment
20% on (biweekly) assignments (4 points) and 80% on a written exam (16 points)
Retake
100% on a written exam (20 points)
-
Details
- Course title: HPC Software Environment
- Number of ECTS: 6
- Course code: F1_MA_HPC_1-18
- Module(s): 1.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Details
- Course title: Networking
- Number of ECTS: 3
- Course code: MICS2-8
- Module(s): 1.3 Computer Architecture
- Language: EN
- Mandatory: Yes
-
Objectives
Split into two parts, part (A) will introduce fundamental aspects of generic mathematical networks (graphs), usually summarized as network science, and not limited to computer networking, but also applicable to networks in social media, machine learning (artificial neural networks), road traffic and vehicle communication, cryptocurrency transactions, energy transport, biology, citation networks and many more.
Part (B) will explain model fundamentals of quantum networking, from basic qubit notations, Bell states, entanglements, 2-qubit gates, until quantum repeaters using entanglement swapping for multi-hop quantum communication networks.
-
Course learning outcomes
At the end of the course, students will be able to identify and apply suitable models and graph representations with related graph metrics to analyse practical networked scenarios, and reason about most efficient application of (network centrality) metrics. Students will understand power and limits of end-to-end concepts of quantum networking applied to distributed communication scenarios including entanglement swapping. -
Description
Part (A): Eigenvectors and eigenvalues, adjacency matrix, hypergraphs and bipartite networks, trees and planar networks, degrees, paths and components, graph Laplacian.
Part (B): Introduction to quantum networking, scalar product, unitary matrices, Hadamard transformation, 2-qubits, entanglements, manipulation of qubits, introduction to gates, example 2-qubit gates (CNOT, Pauly, swap), no-cloning theorem, Bell states and Bell measurements, quantum repeater and entanglement swapping, fundamental experiments like Mach-Zehnder interferometer.
-
Assessment
combined (continuous and end-of-course) assessment
Several take-home assignments (“exercises”) will be issued and submitted by the students within 2 weeks deadlines. Each assignment will be discussed in plenum and will be followed by small online tests which will be marked.
Assessment: Final written exam (60%), online tests (20%), exercises submission and discussion (20%)
-
Note
Literature and resources:
Slides, comprehensive lecture notes, exercise assignments. Additional references provided during the course. All information will be made available on Moodle’s course page.
-
Details
- Course title: Philosophy & Ethics of AI
- Number of ECTS: 3
- Course code: MAPR-57
- Module(s): 1.4 Transversal Skills
- Language: EN
- Mandatory: Yes
-
Course learning outcomes
By the end of the course, students should have sufficient understanding both of core philosophical concepts and also the technical details of AI technology, that they can precisely articulate ethical/philosophical problems and theories but also propose realistic possible solutions that take technological and computational constraints into account. There will be an emphasis on group work and on collaboration between philosophers and computer scientists on a course project.
By the end of this course students should have acquired a basic grounding in philosophy and normative ethics, but also a detailed understanding of recent developments in A.I. technology. The aim will be to provide students with the conceptual tools to be comfortable working in an inter-disciplinary manner. Students will develop critical and communicative skills by engaging with literature and topics from both philosophy and computer science. The emphasis in this course will be on developing the ability to collaborate across disciplines so as to explore and provide possible solutions to philosophical and ethical problems that are generated by Artificial Intelligence.
-
Description
Advances in computing technology, especially in Artificial Intelligence, raise the very real prospect of imminent, radical changes to everyday human life: e.g. in employment, healthcare, military conflicts, privacy, education, legal processes and institutions, etc. Trying to work out the ethical implications of these changes is surely one of the most pressing questions that humanity currently faces. AI and related technologies also raise profound philosophical questions concerning the nature of the mental, intelligence, rationality and knowledge.
In this course we will try to approach some of these ethical and philosophical questions from an inter-disciplinary perspective. The course will be taught by faculty members from both the Philosophy and Computer Science departments and is open to students studying either the Masters in Contemporary European Philosophy or the Masters in Information and Computer Science. -
Assessment
Short Mid-Term Essay (c. 2000 words): 20%
Short Homework Exercises: 20%
Final Group Project: 60%
-
Details
- Course title: Project Management
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-17
- Module(s): 1.4 Transversal Skills
- Language: EN
- Mandatory: Yes
Course offer for Master in High Performance Computing / Master en High Performance Computing, Semestre 2 (2024-2025 Summer)
-
Details
- Course title: Introduction to Deep Learning
- Number of ECTS: 5
- Course code: MICS2-66
- Module(s): 2.1 Artificial Intelligence
- Language: EN
- Mandatory: No
-
Objectives
This course provides students with a high-quality and informed understanding of Deep Learning (DL) models for developing AI-based applications. The course promotes problem solving via design thinking philosophy. The course helps students to develop state-of-the-art competencies to solve many different real-world problems using DL. The course will provide students with a competitive advantage to solve challenging research problems that require dealing with complex search spaces, non-linear relationships within the data, and flexible models that can scale up to thousands or millions of observations. These competencies are also of key importance to many industrial and technological companies. Finally, the course also promotes development of soft skills such as written and verbal communication skills, via final project presentations.
-
Course learning outcomes
* Knowledge of foundational building blocks in DL.
* Understanding of DL models and their applications.
* Ability to formulate and solve problems using DL.
-
Description
1. Introduction
2. Discriminative modeling I: Classification
3. Discriminative modeling II: Regression
4. Unsupervised and self-supervised learning
5. Sequence learning
6. Generative modeling
7. Reinforcement learning
8. Deployment and best practices
9. Project presentations
-
Assessment
Continuous evaluation (written assignments) and project-based learning (students must deliver a final project and defend it in an oral presentation). -
Note
Recommended books:
F. Chollet. Deep Learning with Python, 2nd ed. 2021.
I. Goodfellow, Y. Bengio, A. Courville. Deep Learning, 2016.
-
Details
- Course title: Big Data Analytics
- Number of ECTS: 5
- Course code: MICS2-41
- Module(s): 2.2 Parallel programming
- Language: EN
- Mandatory: No
-
Objectives
The lecture provides an entry point to large-scale data management and distributed computing principles in recent NoSQL architectures. We start with an overview of distributed file systems and MapReduce in Apache Hadoop and then move on to more advanced analytical tasks based on the machine-learning libraries in Apache Spark. The lecture serves as an ideal basis for further topics in this area (such as Master seminars, projects and theses).
-
Course learning outcomes
– Students become familiar with the usage of recent Big Data platforms such as Apache Hadoop and Spark
– Student obtain an overview of both the theoretical foundations and practical applications of various Big Data and Machine Learning algorithms
– Students learn how to approach and solve different data-analysis tasks by a number of programming exercises with real-world datasets
-
Description
The course consists of a combination of theory-oriented lectures and practical exercises, through which the students are guided by a series of real-world use cases and hands-on examples. Specifically, we focus on the following topics:
– Distributed File Systems (DFS) and MapReduce in Apache Hadoop
– Resilient Distributed Data (RDD) objects and DataFrames in Apache Spark
– Implementation of complex DataFlow programs in Spark using Scala
– Performing advanced analytical tasks in Spark’s MLlib:
o Distributed clustering and classification of objects
o Decision trees and random forests
o Recommender systems via matrix factorization
o Text analysis via latent semantic indexing
o Geospatial data analysis
o Social-network analysis
-
Assessment
Practical exercises: 50%
Final written exam: 50%
-
Details
- Course title: HPC Algorithm Design & Verification with TLA+
- Number of ECTS: 5
- Course code: F1_MA_HPC_2-1
- Module(s): 2.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Objectives
The objective of this semester-long course on HPC algorithm design and formal verification with TLA+ (see description) is to equip students with a comprehensive understanding of designing HPC algorithms and validating their correctness through formal verification methods. Utilizing TLA+ as a design and verification tool, the course aims to cultivate skills essential for optimal HPC performance, resource efficiency, and software reliability.
The course will offer a practical approach (
70% design, 20% verification, 10% basics and abstraction)
through lectures, hands-on labs, and a practical project, providing students with a unique skill set valuable in both research and industry sectors.
-
Course learning outcomes
By the end of this course, students will be able to:
1. Understand core concepts (10%): Demonstrate a solid understanding of the fundamental mathematical and computational principles underlying HPC algorithmic design and formal verification with TLA+, including propositional logic, sets, predicate logic, safety, liveness, and fairness.
2. Design HPC algorithms with TLA+ (70%): Apply principles of parallelism and resource optimization to design efficient algorithms suitable for HPC applications. Use TLA+ effectively for specifying, modeling, and verifying concurrent and parallel HPC algorithms and distributed systems.
3. Perform formal verification with TLA+ (20%): Apply formal verification techniques to ensure the correctness, efficiency, and reliability of the TLA+ design specifications for HPC algorithms.
These outcomes ensure that students will not only acquire theoretical knowledge but also gain practical skills, making them highly valuable in research and industrial settings, such as:
1. Practical skills: Complete a practical project that integrates algorithm design and formal verification, demonstrating competency in both theory and application, as applied to HPC algorithms.
2. Teamwork and collaboration: Work effectively in groups, particularly in lab settings and project work, to tackle complex problems related to HPC algorithm design and formal verification.
3. Career preparedness: Understand the industry relevance of HPC algorithm design and formal verification, including their applicability in scientific computing, data analytics, and more. -
Description
Motivation: High-performance computing (HPC) algorithms need to be carefully crafted to exploit parallelism, minimize communication overhead, and make efficient use of resources such as multicore processors and accelerators. Moreover, in HPC, errors can lead to significant consequences, from inaccurate results in scientific simulations to security breaches in sensitive computations. Algorithm design skills empower practitioners to create computational solutions that scale with the demands of complex simulations, scientific modeling, data analytics, and more. Formal verification skills enable researchers/engineers to provide strong evidence of correctness and reliability in HPC applications, enhancing the credibility of their work. TLA+ (Temporal Logic of Actions) is a formal specification language and model-checking tool used for designing and verifying concurrent algorithms and distributed systems. It is built upon simple mathematical concepts (such as propositional logic, sets, predicate logic) that allow for precise specification and reasoning about system behavior. The course is based on the book “Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers” by Leslie Lamport, which offers a thorough guide to using TLA+ for various design and verification tasks. Below are some design and verification topics this course will discuss (HPC algorithms are systems): Design Topics1. Introduction to TLA+ and formal specifications: Basics and motivations for using TLA+.2. Temporal logic fundamentals: Understanding the TLA+ way of describing system behavior over time.3. State machines and transitions: Modeling system states and transitions using TLA+.4. Concurrency: Using TLA+ to model concurrent systems.5. Deadlock and liveness: Ensuring that a system eventually performs some action.6. Safety and invariance: Ensuring that bad things don’t happen during system operation.7. Debugging and counterexamples: Using TLA+ and its tools to find and understand errors in system designs. Verification Topics1. Model checking with TLC: Introduction to the TLC model checker and how to use it for verifying TLA+ specifications.2. Invariant properties: Using TLA+ to express and verify invariants in a system.3. Temporal properties: How to verify properties that span across different states or points in time.4. Liveness verification: Ensuring that good things eventually happen in a system. -
Assessment
40% team-based project (80% design specification, 20% verification)
20% project individual contribution presentation (5 slides, 1 minute per slide, and 1 page abstract discussing main design ideas)
30% three equal graded laboratories
10% active class participation -
Note
Literature: Books, papers, tutorials from the TLA+ home page https://lamport.azurewebsites.net/tla/tla.html
-
Details
- Course title: HPC Software Environment
- Number of ECTS: 5
- Course code: F1_MA_HPC_2-3
- Module(s): 2.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Objectives
This course aims to provide students with a comprehensive understanding of the software environment used in High Performance Computing (HPC) from the perspective of application developers and users. It covers aspects related to application development, software deployment and execution of HPC workflows.
-
Course learning outcomes
By the end of the course, students will be able to:
Effectively use the HPC platform
Execute applications and complex workflows reliably
Compile, debug and optimise applications
Install, deploy and test software on HPC
Understand the integration of HPC with cloud computing
-
Description
This comprehensive course provides you with the knowledge and skills to effectively use HPC systems. It delves into the intricacies of the HPC software environment, to master the art of developing applications and deploying software focusing on the specifics of HPC platforms. It describes the key techniques for efficiently designing and executing complex HPC workflows and robust job campaigns. It explores the use of HPC containers and examines the convergence of HPC workload with cloud computing platforms.
It is designed to provide a broad overview, but also an advanced practical insight into the techniques for creating the next generation of HPC power users. – HPC platform and command line environment- Compilation, debugging and profiling on HPC- Software installation on HPC- Testing, CD/CI and testing for HPC- Containers on HPC- HPC & Cloud Computing- Complex HPC jobs- Job campaign, workflow and reproducibility
-
Assessment
Final exam
during the exam period (30%)
Continuous evaluation (assignments, project and presentation)
(70%)
-
Note
Students’ laptop required
-
Details
- Course title: High Performance Computer Architecture
- Number of ECTS: 5
- Course code: F1_MA_HPC_2-2
- Module(s): 2.3 Computer Architectures
- Language: EN
- Mandatory: Yes
-
Objectives
Since ~2005, all new microprocessor development for high performance applications have been geared towards multicore and multiprocessor architectures because of the end of the possibility to scale single processor performance further. Another trend that has appeared is the increasingly wide vector units and accelerators such as GPUs. It has thus been important that software be able to expose both thread-level parallelism as well as data-level parallelism.
This course studies the hardware architectures that power modern day supercomputers and how software needs to interact with the architecture to achieve high performance
-
Course learning outcomes
After completion of the course the student should be able to:
Knowledge and understanding
describe current approaches to high-performance computing
explain the design and function of microprocessors with parallel computational pipelines and dynamic scheduling of instructions,
explain the design and function of a memory hierarchy for the above-mentioned microprocessor,
explain the design principles of the hardware support for a shared memory programming model,
describe the implementation of different models of thread-level and data-level parallelism, such as core multithreading, many-core processors, vector units or GPU.
Competence and skills
analyse execution of single-threaded programs, identify performance bottlenecks and propose improvements,
design and implement a simple parallel program with shared memory and explain its performance on a certain processor architecture with multiple cores,
implement synchronisation methods for shared memory parallel computers
Judgement and approach
use appropriate methods to analyse and evaluate performance,
analyse the trade-offs of different approaches to high performance computing in terms of function, performance, cost, and energy consumption -
Description
The course will cover the following topics:
Quantitative principles of computer architecture
Performance metrics
Energy consumption metrics
The processor performance equation
Amdahl’s law
High-performance architectures
ISA design
Memory hierarchies
Instruction-level parallelism
Dynamic instruction scheduling
Branch prediction
Vector units
Shared-memory multiprocessor architectures
Cache-coherence
Architecture support for atomic operations and synchronisation primitives
Memory consistency models
Synchronisation overhead
False sharing
Load balancing
Mapping shared memory programming models (e.g. OpenMP) to hardware
Distributed-memory multiprocessor architectures
On-chip networks
Distributed memory cache coherence
High-performance interconnection networks
Accelerator architectures
GPU architecture
Domain specific architectures -
Assessment
final written exam (40%)
laboratory exercises (40%)
Study and presentation of a research paper or computer architecture in group (20%)
-
Note
Student’s laptop required
-
Details
- Course title: Principles of Security Engineering
- Number of ECTS: 5
- Course code: MICS2-24
- Module(s): 2.3 Computer Architectures
- Language: EN
- Mandatory: No
-
Objectives
This course aims at teaching students the fundamental principles of engineering secure systems.More specifically the goals are:
– to give a broad understanding of how secure systems are designed and evaluated.
– to explain key security concepts and mechanisms as well as pitfalls.
– to describe how systems are attacked and defended: typical threats, vulnerabilities and counter-measures.
– to take a “system-based” approach, i.e. to take account of the whole system rather than just the technical, e.g. crypto algorithms and protocols -
Course learning outcomes
* Evaluate security systems and identify their vulnerabilities
* Propose countermeasures to vulnerabilities and attacks
* Evaluate security requirements
-
Description
Intro (concepts, principles)
Policies and models (access control etc)
Information flow (enforceable policies)
Socio-technical aspects.
Physical security, locks, tamper resistance/evidence
Copyright, DRM, watermarking.
Privacy (Jonker)
Network security (malware, phishing, botnets…)
Security evaluation and testing
Advanced Protocols (PAKE, QKD, ZK, OT, …)
Misc topics (API, TCM, attack trees, game theory, ECC, MDD,…)
Secure voting systems -
Assessment
The course will be evaluated based on a report (50%) and presentation (50%) at the end of the course
-
Details
- Course title: Quality of Service in Computer Networks
- Number of ECTS: 5
- Course code: MICS2-23
- Module(s): 2.3 Computer Architectures
- Language: EN
- Mandatory: No
-
Objectives
The objective of this course is to introduce quantitative measures for network performance (like throughput, error correction, delays, routing) for different network topologies to
be applied to security protocols. It also sensibilises for differences between static and dynamic networks as well as centralised and de-centralised topologies concerning reliability and trust issues -
Course learning outcomes
* Describe performance metrics and list parameters of dedicated networks and protocols.
* Name and reproduce definitions of relevant parameters that theoretically characterise the communication traffic incl. queues, routing and error probabilities
* Analyze existing solutions according to their capabilities for throughput, error rate and security
* Construct and adapt real world communication architectures and protocols with given Quality of Service requirements on the basis of the theoretical concepts
-
Description
1. Intro
2. Recap: Random Processes
3. Recap: Homogeneous Markov Chains
4. Commutation Systems: Components and modules
5. Communication Traffic as Random Process
6. Routing and Flow Control
7. Introduction to Queueing Theory
8. QoS in TCP/IP -
Assessment
70% Final Exam
30% Successful preparation, submission and active participation in exercise sessions
-
Details
- Course title: Microkernel Based Systems
- Number of ECTS: 5
- Course code: MICS2-57
- Module(s): 2.3 Computer Architectures
- Language: EN
- Mandatory: No
-
Objectives
The main framework is a series of lectures with assignments
in the form of a combination of reading assignments and practical exercises
leveraging a virtualization environment, such as QEMU, and a state-of-the-art
microkernel-based system (e.g., L4.RE).
The course will introduce the C / C++ / Assembly level programming skills
that are necessary to implement system calls and to interact with devices and
the processor hardware. -
Course learning outcomes
Understand advanced operating system techniques and their role in fault
containment, vulnerability mitigation and the construction of trusted systems
from untrusted components
Construct trustworthy systems with the help of virtualization techniques and
trusted execution environments
Gain practical experience programming at kernel level -
Description
This course gives an overview on microkernel construction and on the
fundamental design principles for constructing microkernel and
microhypervisor-based systems. The course covers advanced operating
system topics, such as device pass through in virtual machines, trusted
execution, etc., and serves as a deep dive into system-level techniques to
security and reliability. It prepares to pursuing research in resilient operating
systems or a related field (e.g., master projects or PhD theses).Review of the evolution of Microkernels-/Hypervisors and Microkernel-based
Systems
Foundations of Microkernel-Based Systems
Kernel Mechanisms and Abstractions
Architecting, Constructing and Programming Microkernels
Verification of Microkernel-Based Systems
Resilience Aspects at Application and Microkernel Level
Introduction to Systems Programming in C / C++ -
Assessment
Assignments: 40 %, Final Exam 60 %
Course offer for Semestre 3 (2025-2026 Winter)
-
Details
- Course title: High Performance Data Analytics and Visualisation
- Number of ECTS: 4
- Course code: F1_MA_HPC_1-11
- Module(s): 3.1 Artificial Intelligence (min 7 ECTs)
- Language: EN
- Mandatory: Yes
-
Objectives
During this module, students will:
study the key characteristics of human vision and their impact on effective visualization design;
implement the data visualization pipeline, from raw data to decision-making;
study the methods of visualization design and visualization research;
design, refine and evaluate interactive data visualization systems. -
Course learning outcomes
At the end of this module, students will:
know the main data types and their relation to visual cues;
know a wide range of interaction and visualization techniques;
know the steps of visualization design;
understand the data visualization pipeline;
be able to choose appropriate data visualization techniques to get insight from data;
be able to prepare data for visualization;
be able to design and evaluate data visualizations;
be able to implement visualizations using state-of-the-art interactive graphical representation technologies. -
Description
Interactive data visualization is a key paradigm of exploratory data analysis. It transforms latent data patterns into visual patterns, in order to support sensemaking and data-driven decision-making. Students will learn the value of visualization, principles, and skills for designing, programming, and evaluating data visualizations and demonstrate these skills through hands-on activities. Students will also be exposed to data visualization research problem areas and methods. Topics include: tree visualization; network visualization; tabular/multidimensional data visualization; text and document visualization; temporal visualization; maps and geospatial visualization; interaction techniques; and visualization evaluation. Students will also learn to implement Web-based data visualization pipelines using Javascript libraries on the frontend, such as D3.js and/or echarts, combined as needed with a Python backend for data analytics, for example leveraging Pandas, scikit-learn and networkX. -
Assessment
50% course project
25% assignments
15% readings in visualization research
10% class participation -
Note
Student’s PC required
-
Details
- Course title: Computational Methods
- Number of ECTS: 4
- Course code: F1_MA_HPC_1-12
- Module(s): 3.1 Artificial Intelligence (min 7 ECTs)
- Language: EN
- Mandatory: No
-
Objectives
Familiarize students with computational methods applied on HPC
-
Course learning outcomes
The students know how to implement (hands on) advanced computational methods on HPC -
Description
Introduction to Python, Linear algebra, Numerical Derivatives, Numerical integrals, Integro-differential equations, Finite Elements and Finite difference methods. Modern chapters of computational methods for physics, chemistry, biology and engineering. -
Assessment
Written Exam 50%
Assessment rules: Blitz questions and fundamental understanding
Assessment criteria:
Fundamental understanding and coding
Presentation 50%
Objectives:
Develop deep hands on understanding of a topic within computational methods
Assessment criteria:
Presentation quality and result quality
Resit exam: 100% oral
-
Details
- Course title: Selected topics in Artificial Intelligence
- Number of ECTS: 4
- Course code: MICS-IAS-024
- Module(s): 3.1 Artificial Intelligence (min 7 ECTs)
- Language: EN
- Mandatory: No
-
Objectives
The objective of this course is to introduce students to specific research topics in Artificial Intelligence/Logic, and to prepare them for individual research work (e.g. a Master/PhD thesis) by
letting them study and discuss relevant research literature, possibly supplemented by small research tasks. -
Course learning outcomes
Read and understand advanced research papers in AI/Logic
Present, explain, and discuss research work in AI/Logic. -
Description
This is a seminar, that is, a course where students give talks and discuss advanced topics in AI and Logic.
Each presentation session will be devoted to one topic or paper. Typically there will be a 1h talk by a student, followed by a 30min discussion.
Each student is expected to *attend and participate to each session*.
This includes taking a look at the material and sending in questions beforehand.
To prepare the talk, we offer personal tutoring sessions for each student. We plan for around 10 talks.
The themes will be distributed at the begin of the WS. We will not accept more regular students than talks!Exact topic: To be announced.
-
Assessment
– Participation + questions (20%)
– Quizzes/Tests/Micro-projects (30%)
-
Details
- Course title: Computer Vision and Image Analysis
- Number of ECTS: 4
- Course code: MICS2-46
- Module(s): 3.1 Artificial Intelligence (min 7 ECTs)
- Language: EN
- Mandatory: No
-
Objectives
Overview of the fundamental tools of computer vision and image analysis,
Presentation of selected timely research topics, consolidated through a dedicated practical class project.
Introduction to the computer vision field and its concepts.
Present to the students the major tools used in Computer Vision.
Preparation to pursue research in the field or related ones (e.g. master project, PhD thesis).
-
Course learning outcomes
This course gives an overview of the fundamental tools of computer vision and image analysis, with a presentation of selected timely research topics, consolidated through a dedicated practical class project. This course serves as an introduction to the field and its concepts.
At the end of the course, students should have grasped major concepts used in Computer Vision and Image Analysis.
The labs will introduce students to computer vision tools used in space missions. For Fall 2020, the Z
ero-G
lab will not be operational. Alternative practical sessions will be organized.
The course is also a preparation to pursue research in the field or related ones (e.g. master project, PhD thesis). -
Description
The course outline is as follows:
- Introduction, review of mathematical tools
- Feature extraction and matching
- Image/object classification and scene understanding
- Deep Learning: from basics to applications
- Multi-view imaging
- Motion estimation and tracking
- 3D Vision
- Labs on earth observation
- Labs on spacecraft pose estimation
-
Assessment
Homeworks (average of all): 10%
Midterm Exam: 30%
Semester Project: 40%
Labs: 20%
-
Details
- Course title: Programming Machine Learning Algorithms for HPC
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-16
- Module(s): 3.1 Artificial Intelligence (min 7 ECTs)
- Language: EN
- Mandatory: No
-
Objectives
The main objective of the course is to equip participants with an understanding of machine learning (ML) computational challenges and opportunities. The focus is on practical implementation tailored for high-performance computing environments. The course primarily utilizes the Python programming language, offering participants a versatile and hands-on learning experience.
-
Course learning outcomes
- Gain a comprehensive theoretical knowledge of machine learning challenges and opportunities.
- Develop practical coding skills by implementing machine learning algorithms from scratch in Python.
- Learn how to adapt machine learning algorithms for efficient execution in HPC environments, focusing on parallelization, distribution, and leveraging the computational capabilities of modern hardware (including GPUs). Employing advanced optimization techniques to enhance computational efficiency.
- Acquire skills in gaining insight in code performance: profiling and optimizing machine learning code, identifying and addressing bottlenecks
- Be able to discuss pros and cons of different computational methods for deploying ML models on large datasets.
-
Description
The course is designed for individuals seeking a comprehensive understanding of machine learning (ML) computational challenges and opportunities. We specifically emphasis on their implementation and optimization for high-performance computing environments. The course is conducted using mainly the Python programming language, providing a practical and versatile platform for participants. -
Assessment
The evaluation is based on 50% on exercises, 50% exam on lectures. There is no final exam -
Note
Student’s PC required
-
Details
- Course title: Quantum algorithms
- Number of ECTS: 4
- Course code: F1_MA_HPC_1-14
- Module(s): 3.2 Accelerator Programming (min 7 ECTs)
- Language: EN
- Mandatory: No
-
Objectives
Familiarize students with quantum algorithms
-
Course learning outcomes
The students know how to implement (hands on) quantum computing algos -
Description
Introduction to quantum computing and mechanics, transmon qubit, trapped ion quantum computing, Universal algorithms (Shor’s algo, QPE, Grover’s algo, HHL, Bernstein-Vazirani), NISQ algorithms (VQE, QAOA, VQLS), Quantum Machine Learning, Quantum Annealing -
Assessment
Oral exam 90%
Assessment rules: 30% introductory topics, 30% Universal algos, 30% NISQ and Quantum annealing
Assessment criteria:
In order to obtain a maximal amount of points and thus the maximum grade students will have to show understanding of full mathematical details of derivations
Take-home assignment 10%
Resit exam : oral exam 100%
-
Details
- Course title: FPGA Programming
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-5
- Module(s): 3.2 Accelerator Programming (min 7 ECTs)
- Language: EN
- Mandatory: No
-
Objectives
Discovering hardware programming through field-programmable gate array (FPGA)
-
Course learning outcomes
- Introduction to FPGA hardware
- The role of FPGA in High-Performance Computing
- Register Transfer Level Synthesis with VHDL
- High Level Synthesis with C/C++ and OpenCL
-
Description
The course will first introduce some basic fundamentals that are required to understand FPGAs : Logic Gate, Finite State Machines, Hardware Description Languages (such as VHDL), Simulation and Synthesis tools (AMD Vivado), and Register Transfer Level (RTL) synthesis of hardware.
Then some exercises will be proposed using the Digilent Basys3 platform, such as traffic light controller, digital watch …
The second part will be dedicated to High Level Synthesis from C/C++ languages, using AMD Vitis compiler. Here again the course will be oriented to practical work (examples and exercises like Fast Fourier Transform). Finally, a brief introduction to OpenCL framework (multi-platform programming) will be proposed
-
Assessment
2 / 3 of the final grade Semester works (mini projects) and 1 / 3 final written exam -
Note
Student’s PC required
-
Details
- Course title: Lattice Theory for Parallel Programming
- Number of ECTS: 5
- Course code: F1_MA_HPC_1-15
- Module(s): 3.2 Accelerator Programming (min 7 ECTs)
- Language:
- Mandatory: No
-
Objectives
The main goal is to learn a new mathematical theory (lattice theory) and to be able to apply it in various domains of computer science, especially to design parallel programs that are correct and distributed systems based on conflict-free replicated data types
-
Course learning outcomes
The foundation of lattice theory and its application to various computer science problems including abstract interpretation, distributed system, constraint reasoning and parallel programming. In particular, you can design a distributed system based on conflict-free replicated data types. -
Description
Lattice theory is one of the most useful mathematical theories to describe and prove properties of computer programs. Lattice theory occurs with great success in the history of computer science starting with denotational semantics (what is a program from the mathematical perspective), abstract interpretation (how to verify a program is correct) and more recently in parallel and distributed computing with conflict-free replicated data types (CRDTs) and constraint solving on GPU (how to program with clients and threads having an incomplete view of the global state). CRDTs are widely used to program highly-available services for cloud storage, mobile clients and applications for collaborative editing of a document.
-
Assessment
20% assignments, 80% final exam -
Note
Student’s PC required
-
Details
- Course title: Software Engineering Environments
- Number of ECTS: 4
- Course code: MICS2-33
- Module(s): 3.3 Software engineering (optional)
- Language: EN
- Mandatory: No
-
Objectives
At the end of this course, the student should be capable to understand the concepts, principles and practices related to DevOps along with their role in the software engineering life cycle, both from a theoretical and practical viewpoint.
-
Course learning outcomes
LO1:
Set up a Deployment pipeline for a particular software development project
LO2:
Define, and perform a classification of tools based on quality attributes
LO3:
Use and integrate existing tools
LO4:
Plan, coordinate, and report activities related to a project
-
Description
DevOps (the combination of Development and Operations) is a new cultural shift that has emerged as response to the need of ensuring high quality for a particular software system, while reducing the time since a new change is introduced into such a software system until it makes it into production. In this manner, organizations aimed at applying this cultural shift need to make use of advanced software development methods. In this course, particular attention will be given to continuous integration, automated deployment, and software delivery. These methods are chained one after the other, forming what is known as deployment pipeline. Beside the software engineering aspects, DevOps also includes other two important dimensions: culture, and management. Culture corresponds to the required skills to be able to collaborate with other people in a professional manner, whereas management is related to the ability to find trade-offs and make decisions such that the expected outcomes are satisfy while respecting the imposed constraints. The three dimensions are equally important, so they are the focus of the course. -
Assessment
Rating:
Project deliverables: 50%
Homework: 50%
Final grade = if (Homework grade 8)
Then AVERAGE (Project deliverables, Homework)
Else Homework /* this means failing to the course*/
Retake exam
The exam consists of an oral exam where the student will answer the questions asked by the teacher.
Questions will be related to everything the student has done all along the course: this includes, assignments, quizzes, project assess, and peer-reviewing.
The student must be able to show the results of his/her mini-project. It is very important then the student has access to all resources not only to show them, but also to be ready to demonstrate its functioning.
The duration of the exam will depend on the number of students doing the exam and the progress, clarity and quality of the answers provided by the student. In case of borderline answers, an extra oral session could be organised to determine whether the student passes or not the course. -
Note
Bibliography
Main reference
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) Addison-Wesley Professional; 1 edition (August 6, 2010)
, by Jez Humble and David Farley.
Complementary references
Deployment and Operations for Software Engineers (Paperback, April 29, 2019)
, by Len Bass and John Klein
DevOps: A Software Architect’s Perspective, SEI, Addison-Wesley Professional; 1 edition (May 28, 2015)
, by Len Bass, Ingo Weber, and Liming Zhu.
Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at
Continuous Integration DevOps Defined, Addison-Wesley Professional
; (June 29, 2007).
(June 24, 2016).
DevOps for Developers, Apress; 1 edition
(September 12, 2012).
The DevOps Handbook, IT Revolution Press
; (October 15, 2016).
DevOps Defined, O’Reilly Media, Inc.
; (December 15, 2017).
-
Details
- Course title: Green IT
- Number of ECTS: 4
- Course code: MICS2-63
- Module(s): 3.3 Software engineering (optional)
- Language: EN
- Mandatory: No
-
Objectives
Our daily actions, as computer science engineers, have impacts on the sustainability of our society and the natural ecosystems surrounding us.
Being aware of these impacts is critical in order to mitigate our negative impacts and increase the development of positive behaviors.
The objectives of this lecture are threefold: introducing the fundamental notions related to sustainability in relation to Information Technology (IT) systems, putting in practice these notions through concrete mini-projects, presenting research areas related to GreenIT. -
Course learning outcomes
– Understand the environmental impacts of IT
– Understand the various topics related to ”Green IT” and ”IT for green”
– Understand the variety of sustainability criteria
– Be capable to write report following scientific writing standards
– Be capable to give a critical viewpoint on IT solution development w.r.t. sustainability criteria
– Be capable to provide architectural web application solutions given sustainability objectives
– Understand current and future Green IT research areas
– Be capable to read, understand and present GreenIT scientific publications
-
Description
This is a continuous control lecture. It is a lecture based on individual project with a major part of the student workload being homework. Some mandatory individual tutoring sessions are planned throughout the semester to follow-up on the student projects work-in-progress.
– Part 1 – Fundamental concepts in Green IT
Introduction to Sustainability and Green IT
Green Software Engineering – requirements of sustainability criteria
Introduction to Sustainability standards and Assessment methods in the IT industry
Green Software Engineering – design and production
– Part 2 – Green Software Engineering in Practice
Students Software Project
Web application design review and improvement suggestions.
Academic writing of a sustainability report
– Part 3 – Research in Green IT
Reading scientific work in the area of GreenIT.
Student review of greenIT research article. -
Assessment
– Mid-term written exam on your project (35%)
– Individual written project report (35%)
– Individual scientific paper review report (30%)
-
Note
Retake rule: the retaking student chooses which evaluation to retake. The retake grade(s) replace the previous grade(s).
-
Details
- Course title: Open Network Security
- Number of ECTS: 4
- Course code: MICS-41
- Module(s): 3.4 Computer Architecture (optional)
- Language: EN
- Mandatory: No
-
Objectives
The goal of this course is to introduce challenges in securing computer systems and networks. The curse covers the foundations of system and network security. It introduces basic security and privacy concepts as building blocks for later specialization.
-
Course learning outcomes
* Master the epidemiological models for malware propagation and network-centric attacks
* Assess the security of networks and software systems.
* Explain the techniques for worm containment and detection.
* List statistical and machine learning approaches for network traffic monitoring -
Description
In the scope of this course, we explore the following topics:
Introduction and general concepts.
Definitions, security goals, attacker models.
Symmetric encryption.
Integrity protection.
Asymmetric encryption.
Certificates and public key infrastructure (PKI).
Authentication and key agreement.
Kerberos.
Security protocols (IPSec, DNSSec, Kerberos, SSH, TLS, etc.).
Spam, botnets, phishing.
Anonymity and privacy.
Machine learning and intrusion detection.
Wireless security. -
Assessment
Final exam, active participation in exercises, practical assignments and presentation.
-
Details
- Course title: Podcasting: an Introduction
- Number of ECTS: 3
- Course code: MALDMMC-257
- Module(s): 3.5 Transversal Skills (min 6 ECTs)
- Language: EN, FR, AU
- Mandatory: No
-
Objectives
Students will:
- Learn the basics of podcasting
- Gain an understanding of podcasting as a medium, a tool of expression and an intimate form of storytelling
- Explore the making of podcasts (e.g. how to build and structure audio content)
- Learn recording essentials (e.g. how to use techniques and handle equipment)
- Learn editing essentials (e.g. how to use audio editing software)
- Have the option to publish and distribute our podcasts
- Learn the basics of podcasting
-
Description
The course provides a practical introduction into podcasting. Throughout the course, we will learn how to produce audio content at a professional recording studio, located in Esch- sur- Alzette. Specifically, we will learn how to record podcasts by means of devices such as a mixing desk, microphones, headsets and a recording software. We’ll delve into how elements like voice, listening, imagination, emotions, empathy, time, and sound come together as essential components of effective storytelling. We will explore how to weave these elements into the podcast to create engaging and memorable stories, how to incorporate music and other audio content while recording, as well as in already recorded files. Additionally, we will look into post-production techniques – how to cut and edit audio files by using editing software. Finally, we will explore how the way we listen shapes the stories we tell. We’ll delve into how, as podcasters, we can persuade and captivate audiences using only our voices. By the end of the course, we will create and produce our own podcasts. -
Assessment
- Class participation
- Final podcast project, including a project description and a reflection on your podcast production experience
- Class participation
-
Note
This course focuses on gaining practical experience. However, to learn more about podcasting the following readings and podcasts are suggested to get inspiration:
- Llinares, D. (2018). Podcasting as Liminal Praxis: Aural Mediation, Sound Writing and Identity.
- Wake, A., Fox, K. Strong, C. (2020). Pandemic Podcasting: From Classroom to Bedroom. Teaching Journalism Mass Communication, 10(1), 29-33.
- This American Life Episodes (thisamericanlife.org)
- Ten Percent Happier with Dan Harris. Every Episode from the TPH Podcast — Ten Percent Happier (happierapp.com)
-
Details
- Course title: Project Management
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-17
- Module(s): 3.5 Transversal Skills (min 6 ECTs)
- Language: EN
- Mandatory: No
-
Details
- Course title: Entrepreneurship
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-10
- Module(s): 3.5 Transversal Skills (min 6 ECTs)
- Language: EN
- Mandatory: No
-
Objectives
Many of students will make a switch to the modern labour market at some point in their career. Knowledge of business aspects such as innovation, marketing, leadership, team building, intellectual property rights, finance and business models is essential to succeed. However, in the academic arena in which students learn their core educational skills, these subjects may not be often elaborated upon. The course offers immersive and interactive workshops and activities, designed to test participants’ entrepreneurial appetite and jumpstart their entrepreneurial adventure. Whether students want to ignite theirs entrepreneurial spirit or get just enough flavour of entrepreneurship to flourish as entrepreneurs within any organization, they will learn the basic building blocks to excel. Looking at the world with an opportunity-oriented mindset, we put them in the entrepreneurial roles to work on their chosen ideas and concepts. Students will gain experience in following an inter-disciplinary approach as well as the capability to brainstorm, think outside the box, and to generate ideas with the aim to improve their entrepreneurial skillset including: communication, teamwork, networking, decision-making, complex problem-solving, critical thinking, creativity, time management, marketing skills, leadership among others.
-
Course learning outcomes
With a wide breadth of knowledge of entrepreneurship, creativity, innovation and business essentials, the skills learned are vital for the success of any business, in new ventures as well as in established companies. The goal of this course is to provide students guidance with an overarching framework: # To be aware of entrepreneurship opportunities # Debunk the top myths of entrepreneurship #To be able to professionalize their startup or research projects # To be aware of how to develop an entrepreneurial project: Identify an opportunity or a problem worth solving; Evaluate an idea; Perform market research and choose the target audience; Brainstorm and design a creative innovative solution; Test the solution with potential customers; Strategize the venture growth development ; Pinpoint and manage the critical risks ; Build a financial model and discover the key financial information; Learn to pitch effectively # Interact effectively with students’ peers with diverse skills and experience # Network with relevant stakeholders in the entrepreneurial, startup and business ecosystems in Luxembourg -
Assessment
The final grade is composed by:
1.
Fundamentals of Entrepreneurship :
10%
Take-home assignment
2. Co-Founders Nights :
10%
Active participation
3. My Big Idea :
30 %
Take-home assignment
4. Inception Sprint Day:
30%
Active participation
5.
Self-reflection / learning diary :
10%
Take-home assignment
6.
Final debriefing session :
10%
Active participation -
Note
The course in presence take place at The Incubator
Course offer for Semestre 4
-
Details
None
-
Lecturer
None
-
Course learning outcomes
None
-
Assessment
None