Programme

The first semester is an orientation semester with a set of common courses for all students that establish a firm foundation for more specialised courses.
In semesters 2 and 3, profiles define compulsory and recommended courses. In the semester 4, the student writes a master thesis usually in the context of a research project.
Academic Contents
Course offer for Semestre 1
-
Details
- Number of ECTS: 3
- Course number: F1_MA_MAT_GM-6
- Module(s): Module 1.1 – Theoretical Foundations
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The purpose of the course is to introduce students to various aspects of algorithmic number theory linked to public-key cryptography.
-
Course learning outcomes
On successful completion of the course, the student should be able to: Explain the main algorithms for primality testing, factorizing large integers, solving the discrete logarithm problem, both in the multiplicative group of finite fields, as well as in the context of elliptic curves defined over finite fields Read and understand some scientific articles published in the domain, and ask relevant questions Give a talk for peers on related topics Organize his approach to general problems in an algorithmic way -
Description
The lecture will introduce some of the most important algorithms used for computing with integers modulo m, including the Chinese Remainder Theorem, will introduce a series of theorems (Fermat’s small theorem, theorem of Lagrange, exponentiation method, etc) that allow to accelerate computations in these rings. Fields, especially finite fields, will be introduced from an algorithmic angle. Usual probable primality tests will be described. They will provide the context for the introduction of Legendre symbols, the quadratic reciprocity law, etc. Usual integer factorization methods will be introduced as well, including the method of Fermat up to the quadratic field sieve. A series of cryptographic primitives will be given both for a finite group in general, and for specific groups in particular, arising from finite fields, or from elliptic curves defined over finite fields. If time allows, some methods for the computation of the number of points of an elliptic curve over a finite field will be given. This series of lectures will be completed by some broader conferences presenting the material in a more general setting. -
Assessment
One single exam (probably in written form, depending on the number of students registered for the exam). -
Note
Note / Literature / Bibliography “How big is big? How fast is fast? A hands-on tutorial on mathematics of computation” by Franck Leprévost (available at the documentation center of the university and on Amazon). https://www.amazon.fr/How-Big-Fast-Hands-Mathematics/dp/B087SGXLSH/ref=sr_1_1?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1ZWKY4WZEN0DO&keywords=Franck+Lepr%C3%A9vost&qid=1649316964&sprefix=franck+lepr%C3%A9vost%2Caps%2C219&sr=8-1
-
Details
- Number of ECTS: 3
- Course number: MICS2-6
- Module(s): Module 1.1 – Theoretical Foundations
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Basic knowledge of computability and computational complexity theory.
-
Course learning outcomes
* List various computational models and their properties* Analyze and compare the complexity of problems -
Description
Mathematical Background/Definitions – Problems/Solving Problems – Computational Models – Algorithms/ProceduresComputability Theory – Unlimited Register Machine (URM) – URM-Computability – Partial /Primitive Recursive Primitive Functions – Computable FunctionsOther approaches to Computability – Turing Computability (Turing Machines (TM) /Universal TM) – Other Model’s Computability (e.g., Lambda Calculus) – Church-Turing’s ThesisComputational Complexity Theory – Time Complexity: the classes P and NP; NP-Completeness – Space complexity: Savitch's theorem, PSPACE and PSPACE-completeness – Intractability: hierarchy theorems; exponential space completeness -
Assessment
100% final exam
-
Details
- Number of ECTS: 3
- Course number: MICS2-7
- Module(s): Module 1.2 – Communication and Networking
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Provide mathematical fundamentals of the physical layer like stochastic signals and systems, ML and MAP principle, modulation, and channel models.
-
Course learning outcomes
* Describe fundamental parameters of signals, systems, and channels* Take optimal stochastic decisions based on observations -
Description
* Signals and Systems* Convolution* Sampling* Stochastic Signals and Noise* Modulation and Demodulation* The Maximum Likelihood Principle* Sources and Channels -
Assessment
Final Exam (100%)
-
Details
- Number of ECTS: 3
- Course number: MICS2-8
- Module(s): Module 1.2 – Communication and Networking
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Introduce higher networking layers and mathematical descriptions of network concepts as Multiple Access Control (ALOHA, collision detection and resolution), Error detecting and correcting codes, ARQ, routing and flow control, Queueing and QoS.
-
Description
* Hierarchical Model of Network Functions (OSI Model, Service Access Points) * Point-to-Point Data Transmission (synchronous and asynchronous multiplexing, packets) * Error correcting and detecting codes, ARQ protocols * Multiple Access Control (ALOHA, Slotted ALOHA, collision resolution, detection and avoiding) * Routing and flow control * Introduction to Queueing Theory * Mobile Network Access Schemes * Quality of Service Parameters in TCP/IP -
Assessment
1. Submission of exercise solutions and active participation in the exercise discussion events will count 20% of the final mark.2. Results of the Moodle quizzes will count 20% of the final mark.3. The final (written) exam at the end of the semester will count 60% of the final mark.
-
Details
- Number of ECTS: 3
- Course number: MICS2-2
- Module(s): Module 1.3 – Distributed Systems
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
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
40% on assignments (8 points) and 60% on a written exam (12 points)
-
Details
- Number of ECTS: 3
- Course number: MICS2-36
- Module(s): Module 1.4 – Intelligent and Adaptive Systems
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The top-level objective of this course is to prepare the participants for the emerging age of ubiquitous intelligent systems and robots. To this end, the course aims at providing a solid background for studies in intelligent and/or adaptive systems with the intention of promoting the use of intelligent techniques in various areas of computer science and in cross-disciplinary interactions.Special attention is given to the use of symbolic means for structured knowledge representation.
-
Course learning outcomes
After successfully completing this course, each student will be able to …- understand and explain the central role of the logical formalisms in knowledge based systems- explain the difference between syntactical and semantical concepts of logical systems- confidently handle and classify central model-theoretic notions of logical systems (including, but not limited to: interpretations, validity, satisfiabilty, …)- confidently handle and classify central proof-theoretic notions of logical systems (including, but not limited to: proof calculi, soundness, completeness, …)- define classical propositional logic and classical first-order logic; and evaluate given syntactical objects with respect to respective interpretation structures- explain basic meta-logical results of the two above logics and their consequences- use the introduced logical systems for representing facts and properties (e.g., given by natural language statements)- model simple intelligent systems using classical logics- apply existing computer software for modelling and assessing reasoning problems -
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 logicThe exact lecture plan is as provided on the Moodle system and updated continuously. -
Assessment
The grade is determined by the final exam and the project as follows: final exam 70%, project 30%. If the average grade over all exercise sheets is above a given grade, the student gets a bonus onto the grading result from above. It is not possible to get more than twenty points as final grade. More than or equal to 60%: +1 point More than or equal to 85%: +2 points If the exam is taken in a later session, the final grade will be determined only by that exam and the project results and bonuses are not considered. -
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
- Number of ECTS: 3
- Course number: MICS2-62
- Module(s): Module 1.4 – Intelligent and Adaptive Systems
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon
-
Details
- Number of ECTS: 3
- Course number: MICS2-38
- Module(s): Module 1.4 – Intelligent and Adaptive Systems
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
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*, B&B, 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
- Number of ECTS: 3
- Course number: MICS2-3
- Module(s): Module 1.5 – Information Security Basics
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The objective of this course it to provide an introduction to information security
-
Course learning outcomes
* explain the role of security protocols in the design of secure systems;* use the standard building blocks for security protocols: nonces, symmetric and asymmetric encryption, hash functions;* compare symmetric vs public key cryptography* classify attacks by attack scenarios and by attack goals* describe weaknesses of historical ciphers: substitution, transposition, WWII ciphers* describe basic modes of operation of block ciphers: ECB, CBC, Counter mode* describe the RSA public-key encryption scheme and the RSA signature scheme -
Description
The goal of this course is to provide basic background in Cryptography and IT security and to show what expertise in these areas is available in the laboratory of Algorithms, Cryptography and Security (LACS) and CSC. The topics cover symmetric and public key cryptography and security of protocols -
Assessment
67%: final exam. 33%: homework.
-
Details
- Number of ECTS: 3
- Course number: MICS2-47
- Module(s): Module 1.6 – Reliable software-intensive systems
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Our daily lives depend on software-intensive systems with reliability and safety requirements such as embedded systems for automotive and aerospace applications, telecommunication and industrial infrastructures, as well as a variety of critical business applications. The course introduces the fundamentals of the design and verification of reliable software systems and illustrates the concepts with practical examples from the automotive, aerospace and industrial domains. The techniques and concepts learned in the course will be applied through practice exercises and a project.
-
Course learning outcomes
Know the types of applications having dependability constraints Understand the threats to and means of dependability such as redundancy and diversity Learn the main techniques, standards and processes to develop dependable software-intensive systems with illustration in the field of automotive and aerospace systems Understand what model-driven software engineering for dependable embedded systems entails Be able to assess the dependability with analytical models Understand when formal methods are appropriate verification techniques and what to expect from them. Get to know industrial applications of formal methods and existing tools Learn how to implement fault-tolerance mechanisms to increase the robustness of an application Get insights into how machine learning may reshape the design and verification of software-intensive systems Understand the growing importance of software in critical systems and the challenges it raises -
Description
Introduction to dependability Dependability attributes, means, and threats Concepts of faults, errors, failures Classification of SW/HW faults, and their characteristics The importance of the fault-hypothesis Fail-silence, fail-safe and fail-operational requirements: illustration with ADAS systems Example of redundant architectures: 2-out-of-3, Triple Modular Redundancy, etc Illustration: Boeing 777 flight control system Design and implementation of critical embedded systems Critical embedded system architecture and technologies Safety standards for systems and tools Verification, validation and certification Trend towards Model-Driven Engineering Means to achieve and evaluate dependability A focus on redundancy and diversity Protecting from HW, protecting from SW faults Software fault tolerance techniques: NVP, recovery blocks, data protection, using watchdog and self-test, etc Dependability measures: MTTF, failure rate, reliability, MTTR, MTBF and availability Dependability assessment by means of fault-tree analysis Reliable computing platforms Electrical and Electronic (E/E) architectures in transportation systems: automotive & avionics Ethernet based communication architectures: topologies and protocols OS services and real-time scheduling on modern platforms Illustration: reliable computing platforms for automated driving applications Machine learning for the design and verification of reliable software systems Relevant concepts and techniques in machine learning (ML) Main use-cases for ML: speeding up computation with prediction, generative models, configuration strategies Illustration of the three use-cases in automotive E/E architecture design -
Assessment
Practicals and project: 50% final exam: 50% -
Note
A. Avizienis, J.C. Laprie, B. Randell, “Dependability and its threat: a taxonomy", IFIP Congress Topical Sessions 2004. R. Natella, D. Cotroneo, and H. S. Madeira, “Assessing dependability with software fault injection: A survey,” ACM Comput. Surv., vol. 48, no. 3, pp. 44:1–44:55, Feb. 2016.
Course offer for Semestre 2
-
Details
- Number of ECTS: 5
- Course number: MICS2-50
- Module(s): Module 2.1 – Principles of Software Development
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of the course is to introduce some principles of software development through the presentation of the Android ecosystem. After successful completion of this course the student should be able to:- understand the main principles on which Java is based on;- efficiently use software repositories or source code management systems and make the difference between git, svn or cvs – understand the notion of design patterns- implement an Android application and understand the concept of Inter-Component Communications.
-
Course learning outcomes
* design a reusable and evolvable software * successfully conduct a software project * leverage APIs -
Description
Sessions on JavaSession on Design PatternSession on Software development lifecycleSession on source code management systems Session on Introduction to Android Sessions on Android Interface and Communication (Layout, Android Activity and introduction to the concept of Intent) Sessions on Android Data and Services (Services, Broadcast receiver, and Content Providers) Session for the preparation of the final project Sessions of practical -
Assessment
A final written exam will account for 50% of the grade. The remaining 50% are based on a project evaluation focusing on the implementation of an Android Application.
-
Details
- Number of ECTS: 5
- Course number: MICS2-24
- Module(s): Module 2.10 – Principles of Security Engineering
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
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
- Number of ECTS: 5
- Course number: MICS2-23
- Module(s): Module 2.11 – Quality of Service in Computer Networks
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of this course is to introduce quantitative measures for network performance (like throughput, error correction, delays, routing) for different network topologies tobe 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. Intro2. Recap: Random Processes3. Recap: Homogeneous Markov Chains4. Commutation Systems: Components and modules5. Communication Traffic as Random Process6. Routing and Flow Control7. Introduction to Queueing Theory8. QoS in TCP/IP -
Assessment
70% Final Exam30% Successful preparation, submission and active participation in exercise sessions
-
Details
- Number of ECTS: 5
- Course number: MICS2-12
- Module(s): Module 2.12 – Symmetric Key Cryptography and Security of Communications
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Introduction to symmetric cryptography and applied cryptography: the students will learn design and analysis principles for symmetric crypto primitives (ciphers, hash functions, MACs). They will be also introduced to the aspects of practical application of cryptography
-
Course learning outcomes
* evaluate effects of cryptanalysis, side-channel attacks and traffic analysis on cryptographic primitives* understand hardware and software implementation issues for cryptographic primitives* understand the usage of cryptography on the blockchain* apply differential power analysis (DPA) to smartcard implementations of ciphers -
Description
The goal of the first half of this course is to introduce students to symmetric key cryptography, showing how ciphers and hash functions are designed and cryptanalyzed. We will start with some historical examples (M-209, Enigma) and then follow to the present day standards (DES, AES, SHA, GSM-A5, RC4, Bluetooth-E0). In the second half of the course we will discuss broader applied cryptography and network security topics such as crypto-hacking, cryptography on the blockchain and side-channel attacks. -
Assessment
The grade for this class will be an average of the homework assignments given every week. Assignments are to be solved individually. There will be no final exam
-
Details
- Number of ECTS: 5
- Course number: MICS2-40
- Module(s): Module 2.13 – Introduction to Static Program Analysis
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Through this course the student will learn the fundamental theoretical concepts and techniques of static analysis.The student will be able to use this knowledge to implement static analyses to solve concrete problems.
-
Course learning outcomes
* The student should be able to critically read publications related to static analysis (research paper, etc.)* The student should be able to select an adapted approach to solve a specific static analysis problem* The student should be able to implement static analysis techniques -
Description
Static analyses are used in various situations, from compiler code optimization to security analysis of Android applications.This course provides the concepts and techniques underlying static program analysis.Topics include forward/backward data-flow analysis, inter-procedural analysis, pointer analysis and call graph construction. A particular focus will be given to recent and advanced techniques such as Android bytecode static analysis for security.The course will mix theory and practice. Students will implement simple analyses and complete a course project. -
Assessment
50% assignments and project20% readings and exercises30% exam(s) -
Note
Maybe needed textbooks
-
Details
- Number of ECTS: 5
- Course number: MICS2-44
- Module(s): Module 2.14 – Software Vulnerabilities: Exploitation and Mitigation
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Through this course students will understand software vulnerabilities from memory corruptions to command injections.Both the defensive and offensive aspects will be studied: students will learn how to mitigate, find aNd exploit software vulnerabilities.
-
Course learning outcomes
* Students should be able to critically read publications related to software vulnerabilities (research paper, etc.)* Students should be able to identify vulnerable code and write robust code preventing vulnerabilities from being introduced in the code.* Students should be able to exploit simple known vulnerabilities. -
Description
Our lives and our societies rely on computer programs (software).Every day, we use devices running software written in millions of lines of code because it makes our lives easier.However, the complexity and the size of existing software, added to the fact that humans write most of the software,introduce bugs.Some of these bugs, called vulnerabilities, can be exploited by an attacker to compromise a device or leak information.Have you ever wondered how programmers make their code more robust to avoid introducing vulnerabilities?Have you ever wondered how attackers can find vulnerabilities and exploit them to take control of a remote device onthe Internet or of your smartphone?Have you ever wondered how attacker can dump an entire database containing personal information about millions ofusers?In this course, you will learn both how to defend against vulnerabilities and how to exploit vulnerabilities.This course covers memory corruption vulnerabilities such as buffer or heap overflow, type confusion, or use after free.It also covers more high level vulnerabilities such as SQL injection or confused deputy.The course will mix theory and practice.On the offensive side, you will implement simple programs to exploit vulnerabilities.On the defensive side, you will correct vulnerable programs to prevent exploitation but also learn how to use techniques such as fuzzing to find new vulnerabilities. -
Assessment
Rating: 50% assignments and project20% readings and exercises30% final exam
-
Details
- Number of ECTS: 5
- Course number: MICS2-56
- Module(s): Module 2.15 – Virtual and Augmented Reality
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course aims at providing students with knowledge of the fundamental methods and principles of Virtual and Augmented Reality (VR/AR) in order to develop an understanding of appropriate tools and techniques to design and implement VR/AR applications.
-
Course learning outcomes
Students passing this course should acquire the knowledge and skills to: • Demonstrate a theoretical understanding of different immersive technologies • Design VR/AR environments by using appropriate modelling, texture and animation techniques • Understand and design user interaction for VR/AR in various contexts • Implement solutions employing different software packages and libraries for VR/AR development -
Description
The course covers the following topics:• Introduction to Virtual, Augmented and Mixed/Mediated Reality technologies • VR/AR application examples and user experience (UX) • In- and output devices; perception, interaction and immersion • VR/AR authoring and real-time aspects • 3D graphics; objects, animations, behaviours and scenes • Mathematical foundations of VR/AR -
Assessment
Practical assignments (35 %) and final exam (65 %).
-
Details
- Number of ECTS: 5
- Course number: MICS2-55
- Module(s): Module 2.16 – Designing Interactive Systems
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course provides information on how design of interactive systems impacts people who use them. Specifically, the course explores the requirements of software engineering in the context of users’ needs. After the course, students will be able to understand how design choices impact usability of interactive systems, and predict their implications on various aspects of user experience (including: cognitive load, satisfaction, and performance).
-
Course learning outcomes
• Overview of human-computer interaction as a multidisciplinary field – introduction of the key concepts and methods• Understanding how the context of use impacts design of interactive systems• Understanding of cognitive and behavioural implications of the system on the user• Ability to design and evaluate interactive systems• Utilising users’ feedback to progressively improve system design -
Description
Description:1. Introducing User-Centered System Design2. User-Centered Systems Design: A brief History3. Anthropometrics: Important Aspects of Users’ Bodies4. Behaviour: Basic Psychology of the User5. Cognition: Memory, Attention and Learning6. Cognition: Mental Representations, Problem Solving and Decision Making7. Cognition: Human-Computer Communication8. Social: Social Cognition and Teamwork9. Social: Theories and Models10. Errors: An Inherent Part of Human-System Performance11. Methodology: Task Analysis12. Cognitive Dimensions and Gulfs13. Methodology: Empirical Evaluation14. Summary: Putting it all together -
Assessment
• Case study: 30%• Final project: 70% -
Note
Bibliography:1. R. Ritter, F. E., Baxter, G. D., & Churchill, E. F. (2014). Foundations for designing user-centred systems. Springer-Verlag London, DOI, 10, 978-1.
-
Details
- Number of ECTS: 5
- Course number: MICS2-57
- Module(s): Module 2.17 – Microkernel Based Systems
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The main framework is a series of lectures with assignmentsin the form of a combination of reading assignments and practical exercisesleveraging a virtualization environment, such as QEMU, and a state-of-the-artmicrokernel-based system (e.g., L4.RE).The course will introduce the C / C++ / Assembly level programming skillsthat are necessary to implement system calls and to interact with devices andthe processor hardware.
-
Course learning outcomes
• Understand advanced operating system techniques and their role in faultcontainment, vulnerability mitigation and the construction of trusted systemsfrom untrusted components• Construct trustworthy systems with the help of virtualization techniques andtrusted execution environments• Gain practical experience programming at kernel level -
Description
This course gives an overview on microkernel construction and on thefundamental design principles for constructing microkernel andmicrohypervisor-based systems. The course covers advanced operatingsystem topics, such as device pass through in virtual machines, trustedexecution, etc., and serves as a deep dive into system-level techniques tosecurity and reliability. It prepares to pursuing research in resilient operatingsystems or a related field (e.g., master projects or PhD theses).• Review of the evolution of Microkernels-/Hypervisors and Microkernel-basedSystems• 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 %
-
Details
- Number of ECTS: 5
- Course number: MICS2-14
- Module(s): Module 2.2 – Algorithms for Numbers and Public-Key Cryptography
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of this course it to provide an introduction to algorithms for numbers and their use in public-key cryptography.
-
Course learning outcomes
* describe the basic algorithms for numbers: gcd, CRT, modular exponentiation, primality tests.* list some basic properties of numbers: modular computation, Euler function, generators of multiplicative groups.* explain the RSA algorithm for public-key encryption and signature.* explain basic security proofs for public-key encryption and signature. -
Description
* basic basic algorithms for numbers: gcd, CRT, modularexponentiation, primality tests, etc.* the RSA algorithm for public-key encryption and signature.* main security notions for encryption and signature.* basic security proofs for public-key encryption and signature. -
Assessment
The final grade is based on homework only.
-
Details
- Number of ECTS: 5
- Course number: MICS2-22
- Module(s): Module 2.3 – Formal Methods
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
In this course, we will study a collection of techniques that are essential in the construction of large and highly reliable systems
-
Course learning outcomes
* Explain the informal meaning of the basic process algebra operators* Relate this informal interpretation to its formalization through axioms and transition rules* Specify the behaviour of simple concurrent systems using process algebra* Explain the meaning of a temporal logic formula* Specify system requirements using the studied logics* Evaluate the logic formulas on labelled transition systems* Explain basic ideas behind the example-driven modelling approach proposed by Alloy * Specify key software abstractions in an incremental way using concrete examples as a guide* Make use of automatic analysis to uncover and fix software modelling errors -
Description
The course will focus on the principles and applications of the following formal methods: * Alloy – a declarative modeling language based on first-order logic, for expressing complex structural constraints and behavior. The Alloy Analyzer is a constraint solver that provides fully automatic simulation and checking. The motivation for the Alloy project was to bring to Z-style specifications (Z being another formal language) the kind of automation offered by model checkers. * Process Algebras – Process Algebra is a formal description technique for complex computer systems, especially those involving communicating, concurrently executing components. It is a subject that touches many topic areas of computer science and discrete math. * Protocol Verification – a specification language based on process algebra extended with abstract data types is used to describe communicating systems. Interesting properties about the systems are expressed as temporal logic formulas. Model checking is employed as a method to formally verify whether the model defined by the system satisfies the properties. We have chosen these methods because they are based on complementary approaches for formal reasoning about systems. The course is tool-oriented in the sense that automatic tool support will be an essential part of the teaching units whenever possible. In this sense the lecture provides a more hands-on approach to theoretical concepts compared to courses in the first semester. Many examples and real-life case studies drawn from a variety of domains such as computer security, communicative systems and software engineering will be presented -
Assessment
Final exam: 70% Assignments: 30%
-
Details
- Number of ECTS: 5
- Course number: MICS2-41
- Module(s): Module 2.4 – Big Data Analytics
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
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
- Number of ECTS: 5
- Course number: MICS2-20
- Module(s): Module 2.5 – Information Theory and Coding
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of this course is to provide an understanding of fundamental communication limits and means of approaching them
-
Course learning outcomes
* Compute fundamental communication limits* Compress simple information sources* Describe the fundamental blocks of digital communication systems (physical layer)* Encode binary information with a convolutional code -
Description
The course contains: – Shannon's concept of mathematically quantising information and uncertainty for a communication setup – Explanations that both compression and error free transmission have an extremal rate which can be computed via entropy and mutual information – Methods to compress sources – Digital transmission techniques and their complexity for inter-symbol-interference channels – Simple error correction codes, convolutional codes -
Assessment
Final Exam: 75% Homework: 25%
-
Details
- Number of ECTS: 5
- Course number: MICS2-21
- Module(s): Module 2.6 – Intelligent Agents I
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of this course is to introduce students to knowledge representation and reasoning methods for intelligent agent systems.
-
Course learning outcomes
* Explain the nature and roles of different formal theories used for individual reasoning and autonomous agents, such as various modal logics, belief change formalisms, or methods for uncertainty management* Define and apply the basic concepts of two non-classical logics (modal logic and formal argumentation), notably their semantics and proof calculi -
Description
The course has 4 parts:1. Modal logics for agent reasoning2. Conditional logic3. Natural language semantics & non-monotonic logic 4. Formal argumentation -
Assessment
Final exam 70%; Homework 30%
-
Details
- Number of ECTS: 5
- Course number: MICS2-13
- Module(s): Module 2.7 – Knowledge Discovery and Data Mining
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
We understand Data Mining (Knowledge Discovery) as a life-cylce process from data to information and insights. In times of Big data, Data Mining has become a central interest both for industry and academia. In this course, we discuss several data-related aspects like preprocessing or pricacy as well as selected aspects of Machine Learning. An expansive definition of Data Mining, which is the derivation of insights from masses of data by studying and understanding the structure of the constituent data, and selected applications complete the course.
-
Course learning outcomes
* Explain the fundamental concepts of data mining and knowledge discovery* List the properties of data relevant for deriving interesting and useful information/observation from that.* Explain machine learning algorithms and strategies to deploy the discovered results* Argue the importance of domain knowledge during the data analysis with its scope and limitations -
Description
* Definition and Process. * Data Mining, Data Science, and the Big Data Hype.* Data Quality and Preprocessing* Data Privacy and Security.* Data and Information Visualization.* Machine Learning for Clustering, Classification, Association Discovery, Sequential Pattern Analysis, and/or Time Series Analysis. -
Assessment
60% oral or written examination; 40% midterm tests -
Note
Selected references: * M. Berry, G. Linoff: Mastering Data Mining, John Wiley & Sons, 2000.* U. Fayyad, G. Piatetsky-Shapiro, P. Smyth, R. Uthurusamy: Advances in KnowledgeDiscovery and Data Mining, AAAI/MIT Press, 1996.* J. Han, M. Kamber: Data Mining: Concepts and Techniques, 2nd edition, MorganKaufmann, ISBN 1558609016, 2006.* I. Witten, E. Frank, M. Hall: Data Mining: Practical Machine Learning Tools andTechniques, 3nd Edition, Morgan Kaufmann, 2011.
-
Details
- Number of ECTS: 5
- Course number: MICS2-51
- Module(s): Module 2.8 – Computational Complexity Theory
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of this course, following on from 'Foundations of Computing', is to introduce students to some more modern developments in the theory of computational complexity, with an emphasis on additions that can be made to the standard models of Turing machines and logical circuits. We will first consider randomness, then interaction, and see the remarkable power that is given by the latter. Finally we will cover quantum computing, and see that through Shor's algorithm it makes tractable problems that are believed to be hard for (randomised) classical machines. This course will also give students the necessary rigorous foundations for future study in cryptography and security (in which probabilistic machines are ubiquitous), and in quantum computing.
-
Course learning outcomes
– Understand the formal definitions of randomised, interactive and quantum models of computation and their complexity classes such as BPP, IP and BQP – Know, prove and apply key theorems concerning these classes – Understand the fundamental algorithms of quantum computing, and the non-computational applications of quantum phenomena (e.g. QKD) -
Description
Classical complexity theory: Turing machines and circuits – Recap of complexity basics: P, NP, NP-completeness and the polynomial hierarchy. PSPACE and Savitch's theorem. The limit of our ability to prove separations: the time and space hierarchy theorems. – Boolean circuits: uniform and non-uniform classes and P/poly. The Karp-Lipton theorem. Outline of circuit depth, AC and NC. Adding randomness and interaction – Randomised computation: PP (too strong) and BPP. BPP in PH. BPP in P/poly. Is BPP=P? – Interactive proofs and IP=PSPACE. The PCP Theorem and hardness of approximation. Quantum computing – Quantum circuits and the class BQP. Deutsch-Josza algorithm, Grover's algorithm, Shor's algorithm. – Classical simulations: BQP in PSPACE, maybe the Gottesman-Knill theorem. – How to build a quantum computer: the importance of quantum error correction and the threshold theorem. – Introduction to quantum information theory, Quantum Key Distribution and device self-testing. -
Assessment
70% final exam, 30% homework exercises
-
Details
- Number of ECTS: 5
- Course number: MICS2-17
- Module(s): Module 2.9 – Optimisation for Computer Science
- Language:
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Different problems have different nature. In terms of complexity some problems are called intractable and can not be solved by classical computers. But there are also many other aspects of the nature of optimisation problems such as linearity, convexity, continuity, dynamicity, randomness that may lead the choice of different optimisation techniques
-
Course learning outcomes
* Characterize problems* Identify the key concepts related to optimisation techniques* Use optimization frameworks* Implement optimization algorithms* Validate optimization algorithms and results* Validate approaches for solving optimization problems -
Description
This lecture confront the students to real instances of such problems. They are first asked to model the problem and next proposed solutions include exact methods, relaxations, approximations, heuristics and meta-heuristics. And these practical study cases are supported by the theoretical lectures on Problem Solving (1st semester) -
Assessment
Project: 100%
Course offer for Semestre 3
-
Details
- Number of ECTS: 3
- Course number: MICS-COMMSYST-022
- Module(s): Module 3.1 – Intellectual Property
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The objective of this course is to impart knowledge on intellectual property in relation to information and computer sciences
-
Course learning outcomes
– Discover the main intellectual property rights and understand their interaction with information and computer sciences – Recognize intellectual property issues within a company – Understand the role of intellectual property information -
Description
– Introduction to intellectual property- Intellectual property rights- Intellectual property and Internet- Intellectual property and software- Intellectual property and open source- Intellectual property and artificial intelligence- Intellectual property and virtual creations- Patent search- Intellectual property information -
Assessment
60% Final examination, 40% Written essay -
Note
IPIL – Institut de la Propriété Intellectuelle Luxembourg G.I.E. : https://ipil.lu
-
Details
- Number of ECTS: 4
- Course number: MICS-39
- Module(s): Module 3.10 – Machine Learning
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course "Machine Learning" is part of a course trilogy that is preceded by a course on 'Information Retrieval' (Semester 1) as well as by a course on 'Knowledge Discovery and Data Mining' (Semester 2), respectively. Originally having been a subfield of Artificial Intelligence, Machine Learning has nowadays established as an own research direction, whose main concern is building mathematical models capable of learning from the sample data. This course provides a detailed overview of various machine learning algorithms and techniques,such as regression, classification, clustering, time series modeling, supervised, semi supervised and unsupervised learning, etc.
-
Course learning outcomes
• Learn the fundamental concepts of machine learning.• Learn the foundations of artificial neural networks and deep learning.• Optimize, evaluate and debug the machine learning algorithms.• Learn strategies to implement your own machine learning project. -
Description
The course is a mixture of lectures and practical studies. While one part of the course will continue to deepen the theoretical foundations, with special emphasis on the artificial neural networks and deep learning; the second part is devoted to practical implementation of machine learning algorithms. All concepts presented during the lectures will be implemented and interactively demonstrated in practical exercise sessions. The students will undertake team- based, real-world project assignments to gain hands-on experience. At the end of semester, a workshop will be organized, where the teams will present results, as well as strengths, and weaknesses of their approaches. -
Assessment
• 50% : Presentation and documentation of the project results.• 50% : Written Test -
Note
REFERENCES• C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006.• I. Goodfellow, Y. Bengio, A. Courville, Deep Learning, MIT press, 2016.• A. Zhang, Z. C. Lipton, M. Li, and A. J. Smola, Dive into Deep Learning, 2020.• S. Raschka, and V. Mirjalili, Python Machine Learning, Third Edition, 2019.
-
Details
- Number of ECTS: 4
- Course number: MICS-32
- Module(s): Module 3.12 – Model-Driven Software Development
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
This course has two main objectives: first the student will be taught a firm theoretical foundation for the fundamental concepts in model-driven software development. Second the student will be confronted with current frameworks, tools and techniques in this field
-
Course learning outcomes
* Explain the fundamental concepts of model-driven software development* Formally define a new modeling language via its syntax and semantics* Evaluate current techniques and frameworks in model-driven software development -
Description
Introduction, Review of AlloyFundamental Concepts: Models, Metamodels, Modelling Hierarchies; Syntax and Semantics of Modelling Languages, Denotational Semantics, Operational Semantics: Graph Transformations versus Alloy; Normal 0 false false false EN-US X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman",serif;} Frameworks and tools: the Eclipse Modelling Framework (EMF); Graphical Modelling (Sirius); Example-Driven Modeling; Fudomo Language and Tool; the Lightning Tool; the Unified Modelling Language (UML). -
Assessment
Final Exam: 60% Project: 40% -
Note
The following textbooks will be used in this course:- Daniel Jackson, Software Abstractions, MIT Press, Revised edition, 2012.- Anneke Kleppe, Software Language Engineering, Addison-Wesley, 2009.
-
Details
- Number of ECTS: 4
- Course number: MICS-COMMSYST-025
- Module(s): Module 3.13 – Selected Topics in Network and System Security
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of this course is an elaborated, active understanding of distributed vs. centralized communication security and privacy concepts and their application to cooperative environments. The course creates links between the fundamental concepts and applied scenarios with references to ongoing research activities within the SECAN-Lab research group.
-
Course learning outcomes
* Describe existing concepts to set-up centralized and distributed secure communication systems and protocols.* Name and reproduce definitions for quantitative parameters linked to anonymity, privacy and reputation systems* Analyze and compare existing privacy-enabled systems for cooperative and non-cooperative environments* Construct, adapt and assess real world communication architectures and protocols for a distributed cooperative communication problem -
Description
This course will provide an overview of the topic of security and privacy in computer networks. Concrete topics and application scenarios can vary depending on the particular focus of the methods discussed.Typically, the methods of SECAN-Lab involve data analytics for network management, software defined networking, machine learning, algebraic graph transformation, symbolic execution, device and network fingerprinting, deterministic and probabilistic medium access control, routing strategies applied to scenarios around vehicular communications, network management and forensics, cybersecurity, anonymity and privacy, financial technologies and others. -
Assessment
70% Final exam30% Assignments (presentation, written summary and practical results)
-
Details
- Number of ECTS: 4
- Course number: MICS-41
- Module(s): Module 3.14 – Open Network Security
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
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
- Number of ECTS: 4
- Course number: MICS-COMMSYST-024
- Module(s): Module 3.15 – Parallel and Grid Computing
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Today, parallel computing is omnipresent across a large spectrum of computing platforms. At the microscopic level, processor cores have used multiple functional units in concurrent and pipelined fashions for years, and multiple-core chips are now commonplace with a trend toward rapidly increasing numbers of cores per chip. At this level, GPU also starts to enter the area. At a macroscopic level, one can now build clusters of hundreds to thousands of individual (multi-core) computers. Such distributed-memory systems have become mainstream and affordable in the form of commodity clusters. Furthermore, advances in network technology and infrastructures have made it possible to aggregate parallel computing platforms across wide-area networks in so-called grids. An efficient exploitation of parallel and distributed platforms requires a deep understanding of architecture, software and infrastructure mechanisms and advanced algorithmic principles. The aim of this course is thus twofold. It aims at introducing the main trends and principles in the area of high performance computing infrastructures, illustrated by examples of the current state of the art. It intends to provide a rigorous yet accessible treatment of parallel algorithms, including theoretical models of parallel computation, parallel algorithm design for homogeneous and heterogeneous platforms, complexity and performance analysis, and fundamental notions of scheduling and work-sharing.
-
Course learning outcomes
* Identify the key concepts related to parallel computing and parallel computer architecture * Solve problems (e.g., mathematics, physics and engineering) using parallel programming techniques. * Use parallel programming platforms, models and frameworks for science and engineering applications * Able to use performance analysis tools and methodology for efficient parallel programming implementation * Learn to parallelize basic linear algebra routines (BLAS operations) in MPI and OpenMP environment. -
Description
Parallel computing architecturesIntroduction to parallel computing using MPI and OpenMPPerformance analysis and tools for MPI and OpenMPProgramming labs are based on MPI and OpenMPComputing resource: ULHPC (https://hpc.uni.lu/) -
Assessment
Project: 100% -
Note
OpenMP – The Next Step by Ruud van der Pas, Eric Stotzer, and Christian Terboven Parallel Programming for Multicore and Cluster Systems , Thomas Rauber, Gudula Rünger (2nd edition, 2013) B. Wilkinson, M. Allen: Parallel Programming, Second Edition. Prentice Hall, 2005. ISBN 0-13-140563-2 Online resources : Introduction to Parallel Computing Tutorial: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial MPI online tutorial: https://hpc-tutorials.llnl.gov/mpi/ OpenMP online tutorial: https://hpc-tutorials.llnl.gov/openmp/
-
Details
- Number of ECTS: 4
- Course number: MICS2-29
- Module(s): Module 3.16 – Security Modelling
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of the course is to provide an overview of techniques used to model and analyze the security of systems.After successful completion of this module the student should be able to- understand the role of modelling in the design and analysis of secure systems- understand the role of modelling in defining security properties and attacker capabilities.- select a suitable modeling technique for a given problem- apply a given modelling technique to a specific domain or problem- assess the security of a given system through its modeling- compare modelling techniques with respect to expressive power and suitability for a given domain- identify the limitations of modelling techniques with respect to real-world security
-
Course learning outcomes
* select a suitable modeling technique for a given problem* apply a given modeling technique to a specific domain or problem* assess the security of a given system through its modeling* compare modeling techniques with respect to expressive power and suitability for a given domain* describe new trends in security modeling* identify the limitations of modeling techniques with respect to real-world security -
Description
The following topics will be presented during the class- The characterization of secrecy properties as process equivalence or indistinguishability.- Commitment schemes and zero-knowledge proofs- Quantum cryptography, in particular quantum key distribution- Verifiable voting schemes- Provable security -
Assessment
Homework: 20%Presentation + research report: 80%
-
Details
- Number of ECTS: 4
- Course number: MICS-SECURTRUST-014
- Module(s): Module 3.17 – Security Protocols
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of the course is to provide students with an in-depth knowledge of the methods and tools for the specification, design and analysis of security protocols in different domains
-
Description
Review of basic cryptography Protocol specification Protocol execution model Adversary Models Security properties Secrecy Authentication Privacy, Anonymity, Untraceability Automatic Verification of Security Protocols Non-Repudiation Protocols Fair Exchange Protocols Time permitting, one or more of the following topics will be covered. Distance Bounding RFID Protocols Secure Multi-Party Computation Protocols -
Assessment
Evaluation: Homework 30% + Final Exam 70%
-
Details
- Number of ECTS: 4
- Course number: MICS-IAS-024
- Module(s): Module 3.18 – Selected topics in Artificial Intelligence
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
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* Analyze small research questions in AI/Logic -
Description
This is a seminar, that is a course where students give talks and discuss advanced topics in AI and Logic. It takes place in the second half of the WS 2023. 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! It is strongly recommended that the students start studying the papers they will present already in the first half of the semester. Topic: "Uncertainty and Dynamics"Intelligent agents acting in the real world are confronted to a dynamic and opaque environment, their knowledge is typically incomplete, uncertain, imprecise, speculative, erroneous, if not inconsistent. Accordingly, they must be able to reason with imperfect information and to improve or revise their belief states in a rational way if they receive new, often conflicting evidence. In an evolving, only partially observable world whose mechanisms are not well understood, agents have to predict future and explain past states of affairs to guide their actions. In the course we will read and discuss a number of papers addressing related methods and issues, like nonmonotonic reasoning about action and change, formal approaches to prediction, causality and explanation, and qualitative and quantitative belief revision, which subsumes learning. Requirements A good background in Logic/Knowledge Representation and Artificial Intelligence, basic knowledge in Probability Theory, as well as an interest in foundational and theoretical considerations. Where necessary, additional background material can be provided. -
Assessment
– Talk and discussion (50%) – Participation during and preparing lectures (15%) – Tests/Micro-projects (35%)
-
Details
- Number of ECTS: 4
- Course number: MICS2-33
- Module(s): Module 3.19 – Software Engineering Environments
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
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
- Number of ECTS: 3
- Course number: MICS-COMMSYST-027
- Module(s): Module 3.2 – Advanced Project Management
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The objective of this course is to familiarize students with advanced techniques for project management, both in theory and in practice
-
Course learning outcomes
* Describe the nine main knowledge areas of Project Management* Identify the main characteristics and elements in an interdisciplinary project* Define scope and construct the work breakdown structure of a project* Select and employ project management standards and methods -
Description
Introduction to Project Management (review) Project Scope Management -Define project scope Project Work Breakdown Structures (WBS) Project Planning -Develop project WBS and planning Monitoring and Controlling Projects -Project rescoping and replanting Project Closure -
Assessment
The course examination is oral. Students will defend in small groups of 2 to 4 their content research results on the assigned Project Management process, methodology or standard. The examination takes place in winter and summer semester (re-exam) -
Note
-
Details
- Number of ECTS: 4
- Course number: MICS-43
- Module(s): Module 3.21 – Testing and Validation
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The goal of testing and validation is to assess the consistency/ conformity of a product with respect to its specification.These activities are thus crucial and costly activities for software companies, and eventually aim at providing a controlled level of trust in the final product before it is delivered to the client (and then during maintenance)
-
Course learning outcomes
* participate in the software testing process of a company* carry out research in the area of software testing, diagnosis, validation* develop new models and solutions for applied software testing -
Description
Testing is related to all the design stages of the development process and must deal with many application contexts (embedded systems, information systems …) and various dimensions of complexity (programming-in-the-small, in-the-large and in-the-duration). This course reminds the principles of software testing, the main techniques and introduces new advanced techniques (similarity-based, securit testing…) -
Assessment
The students will be evaluated through homeworks, typically review/report on an advanced testing technique, and a final presentation.
-
Details
- Number of ECTS: 4
- Course number: MICS2-46
- Module(s): Module 3.24 – Computer Vision and Image Analysis
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
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 toolsFeature extraction and matchingImage/object classification and scene understandingDeep Learning: from basics to applications Multi-view imagingMotion estimation and tracking3D VisionLabs on earth observation Labs on spacecraft pose estimation -
Assessment
Homeworks (average of all): 10% Midterm Exam: 30% Semester Project: 40% Labs: 20%
-
Details
- Number of ECTS: 4
- Course number: MICS2-48
- Module(s): Module 3.25 – Connected and Autonomous Vehicles
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
This class gives an introduction to the emergent topic of connected and autonomous vehicles. This class focuses on practical experience and places a major emphasis on projects. After attending the theoretical lectures that introduce each topic, students will work on applying the concepts using an autonomous driving simulator . The different projects build on each other towards a final assessment that will have students compete in an autonomous race.
-
Course learning outcomes
– Understand the challenges associated with connected and autonomous vehicles – Get an overview of vehicular communication systems and their applications – Be able to describe the sensor types, as well as their strengths and weaknesses – Learn the software architecture of a autonomous vehicles – Develop Python programs to run an autonomous vehicle in simulation – Argue implementations choices in written project report -
Description
The class alternates between theoretical lectures and hands-on projects. Labs or office hours will be organised to support students during projects.The lectures and projects will cover the following topics:- Introduction to Connected and Autonomous Vehicles, current state of the art- Introduction to Vehicular Networks- Introduction to Deep Learning for Visual Perception- Wheeled Robot Kinematics and Localisation- Motion Planning – Robot Control -
Assessment
The grading is entirely based on hands-on projects realised throughout the course. There is no theoretical exam in this class. -
Note
Depending on the size of the audience, projects may be realised in groups of students. Active participation of all students in each group is mandatory and will be assessed.
-
Details
- Number of ECTS: 4
- Course number: MICS2-53
- Module(s): Module 3.27 – Fault and Intrusion Tolerant Systems
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Course learning outcomes
Understand fundamental limitations of fault and intrusion tolerant systems Analyse a specific system structure and propose a fault and intrusion tolerant alternative Knowledge in the construction of fault and intolerant systems and the protocols that govern their execution -
Description
This course gives an overview of the fundamental design principles and protocols for the construction of fault and intrusion tolerant systems. The course serves as an introduction to the field and its concepts. It prepares to pursuing research in resilient computing or a related field (e.g., master projects or PhD theses).Introduction and taxonomy of faultsConsistency in the presence of faultsGroup communicationReplicationHomogeneous byzantine fault tolerant protocolsHybrid protocolsSystem-level aspects -
Assessment
Assignments: 30 %, Project Presentation 20 %, Final Exam 50 %
-
Details
- Number of ECTS: 4
- Course number: MICS2-59
- Module(s): Module 3.29 – Advanced Public-Key Encryption
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Course learning outcomes
The students will learn: – a selection of advanced security properties being studied in modern public-key encryption – how to formalize and prove these properties – the techniques used to achieve these properties – application scenarios which profit from the use of the considered scheme -
Description
Normal 0 false false false EN-US X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0cm; line-height:107%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri",sans-serif; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} The topics of this course will be aligned with the the background and interests of the participants. The following is a preliminary list of topics: – Review of basic security notions: OW-CPA and IND-CPA – Cryptographic assumptions and idealized models (e.g., Generic or Algebraic Group Model) – Review of ElGamal and its IND-CPA security – IND-CCA security: zero-knowledge proofs and Naor-Yung encryption, hashproof systems and Cramer-Shoup encryption – Indentity-based encryption and the Boneh-Boyen scheme – Lossy encryption and selective-opening security – Proxy reencryption and updatable encryption -
Assessment
Final oral or written exam (depending on the number of participants)
-
Details
- Number of ECTS: 4
- Course number: MICS2-60
- Module(s): Module 3.30 – Post-quantum Cryptography
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of the course is to introduce the basics of quantum computation and information and its intersection with cryptography. This includes presenting the positive aspect of quantum computation in cryptographic applications (such as quantum key distribution protocols) and presenting the negative aspect of quantum computation to classical cryptographic constructions due to period finding quantum algorithms (Shor’s algorithm). An additional goal is to familiarize the students with the difficulties of using some classical proof techniques (security proofs in random oracle model and rewinding proof techniques) in the quantum setting. Finally, the students will learn about quantum-hard computational assumptions to construct post-quantum secure cryptographic primitives.
-
Course learning outcomes
The main outcome of the course is to familiarize students with the impact of quantum computation and information to the cryptography discipline by learning:· the basics of quantum computation and information· why quantum computation is a nightmare for classical cryptographic constructions· why quantum computation can be useful in some cryptographic applications· the difficulties of employing some classical proof techniques in the quantum setting· some quantum-hard computational problems to do crypto! -
Description
We cover the following topics:· Basics of quantum computation and information· Quantum algorithms such as Deutsch–Jozsa algorithm, Simon’s algorithm, Grover’s algorithm, Shor’s algorithm· Quantum protocols such as quantum key distribution protocol· Quantum zero-knowledge protocol (stressing the difficulty of rewinding proof techniques in a quantum setting)· Proofs in quantum random oracle model such as security proof of OAEP transform or Fujisaki-Okamoto transform· Quantum-hard computational problems such as code-based or Lattice-based assumptions (this includes a short introduction to the finalists of NIST Post-Quantum Cryptography Standardization competition) -
Assessment
50 percent of HomeWorks grades is compulsory to be eligible for the final evaluation. The final evaluation will be an exam. A second chance to pass the course is by writing a research report and presenting it.
-
Details
- Number of ECTS: 4
- Course number: MICS2-63
- Module(s): Module 3.31 – Green IT
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
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 give a critical viewpoint on IT solution development w.r.t. sustainability criteria– Be capable to provide architectural IT solutions given sustainability objectives– Understand various computer science technologies supporting ”IT for green”– Be capable to develop software programs providing ”greener” solutions– Understand current and future Green IT research areas– Be capable to read, understand and present GreenIT scientific publications -
Description
– 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• IT for achieving sustainable development goals• Green Software Engineering Environments– Part 2 – Green Software Engineering in Practice• Geographic Information Systems• Remote Sensing Image Processing• AI applied to Green IT data• Students Software Project– Part 3 – Research in Green IT• Presentation of research work in the area of GreenIT.• Student individual presentations of GreenIT research articles. -
Assessment
Project (70%). Paper presentation (30%) -
Note
S. Murugesan and G. R. Gangadharan, Eds., ”Harnessing Green IT: Principles and Practices”, 1st edition. Los Alamitos, Calif.: Wiley-IEEE Computer Society Pr, 2012.
-
Details
- Number of ECTS: 4
- Course number: MICS2-64
- Module(s): Module 3.32 – Introduction to Information Systems Engineering
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
1) Overview of the fundamental concepts of information systems in an organizational context.2) Familiarize students with the various roles and function of information systems, such as enhanced business processes, improved decision-making & collaboration, to meet organizational goals and gain a competitive advantage.3) Overview of the ethical, legal, and social implications of information systems.4) Presentation of selected timely research topics based on the latest developments of information systems use for public and private organizations.5) Preparation to pursue research in the field (e.g., master project, PhD thesis).
-
Course learning outcomes
Upon completion of the course, students will be able to apply their knowledge of information systems to analyze business problems, propose effective technological solutions, and make informed decisions that align with organizational goals, thereby demonstrating their understanding of the strategic importance of information systems in a business context. -
Description
The course outline is as follows: 1) Foundations of Information Systems 2) Digital Business Processes 3) Analyzing Information for Decision Making 4) Types of Organizational Information Systems 5) Managing Organizational Information Systems 6) Digital Value Creation 7) Information Systems for e-Governments and e-Commerce 8) Information Systems in Finance 9) Information Systems in Energy Markets 10) Information Systems and Social Media 11) Information Privacy and Ethics 12) Information Security Management 13) Security Awareness Management 14) Information System Trends
-
Details
- Number of ECTS: 4
- Course number: MICS2-42
- Module(s): Module 3.5 – Advanced cryptographic algorithms and blockchain cryptography
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The blockchain is a paradigm shift for cryptographic protocols. The objective of the course is to understand the mechanism of the blockchain and its applications to cryptocurrencies such as Bitcoin and to smart contracts as in Ethereum.
-
Course learning outcomes
*Hands on knowledge of some cryptographic primitives used in the blockchains*In-depth study of blockchain technologies -
Description
* The blockchain and Byzantine fault tolerance.* Proofs of work: design and implementation* Cryptocurrencies: the Bitcoin protocol.* Blockchain-based smart contracts: Ethereum* Zero-Knowledge Succinct Non-interactive Argument of Knowledge (zk-SNARK) and the Zcash cryptocurrency protocol. -
Assessment
the final grade is based on the grade for the project and technical quality of the final presentation.
-
Details
- Number of ECTS: 4
- Course number: MICS-COMMSYST-023
- Module(s): Module 3.6 – Coding theory
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
This course aims to provide a deep understanding of the theory of error correcting codes. Specific topics are: Use of algebraic properties in engineering science; practical ways to approach Shannon's bounds
-
Course learning outcomes
* Compute and bound fundamental parameters of error correcting codes* Construct, encode, and decode Reed-Solomon and binary BCH Codes* Partition a code space and employ this for the construction of error correcting codes* Use belief propagation for error correction -
Description
Introduction Linear Codes Decoding Bounds Trellis Description Reed Solomon and BCH Codes (Generalised) Concatenated Codes The Turbo Principle -
Assessment
Final Exam: 75% Project: 25%
-
Details
- Number of ECTS: 4
- Course number: MICS2-31
- Module(s): Module 3.8 – Autonomous Robot Software
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
This course gives an introduction to robotics, focusing on the software components required to achieve their fully autonomous operation. This course will provide an overview of the three primitive capabilities of autonomous robots, and will teach the students several state-of-the-art algorithms to achieve them. In this course, the student will use a simulator of a multirotor aerial vehicle (i.e. drone) to implement the main components to achieve a fully autonomous operation, using standard robotics software tools.
-
Course learning outcomes
Understanding of the three primitive capabilities of autonomous robots: (1) situational awareness, (2) decision making and reasoning, and (3) execution. Learning of algorithms to achieve each of the three aforementioned primitive capabilities. Learning how to implement (in Python) the aforementioned algorithms using standard robotics software tools (e.g. ROS, Ubuntu) on a simulator of a multirotor aerial vehicle (i.e. drone). -
Description
This course gives an introduction to robotics, focusing on the software components required to achieve their fully autonomous operation. The student will acquire an overview of the three primitive capabilities of autonomous robots, namely (1) situational awareness, (2) decision making and reasoning, and (3) execution.In this course, the student will learn several state-of-the-art algorithms to achieve each of the three aforementioned primitive capabilities, such as:Obstacle avoidance based on artificial potential field maps using geometric primitives to represent the obstacles.Multi-sensor fusion, state estimation, and simultaneous localization and mapping (SLAM), based on Extended Kalman filters.Motion control based on proportional-integral-derivative (PID) controllers.Path following based on waypoint navigationPath planning based on discrete search (e.g. A*) over a graph used to sample the space and using geometric primitives to represent the obstacles.The student will learn how to use standard robotics software tools, such as Robotics Operative System(ROS) or Linux-Ubuntu.The student will implement the aforementioned algorithms in Python programs, validating their performance on a simulator of a multirotor aerial vehicle (i.e. drone).Each of the aforementioned components will allow the (simulated) robot to achieve a higher degree of autonomy, from remotely operated to fully autonomous. At the end of the course, the student will have developed a set of components to have a fully autonomous aerial robot. -
Assessment
The grading is entirely based on the course project, assessing all the developed components to achieve a fully autonomous aerial robot. There will be a final demonstration of the developed components supported by an oral presentation. There is no theoretical exam in this course.
-
Details
- Number of ECTS: 4
- Course number: MICS-47
- Module(s): Module 3.9 – Intelligent Agents II
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The objective of this course is to introduce students to formal methods for normative reasoning for agents (deontic logic)
-
Course learning outcomes
* Capture the intuition behind rules and regulations, and how they relate to real life scenarios. Explain the nature and roles of the formal theories used for collective reasoning and multiagent systems, such as game theory, social choice theory, normative reasoning, dialogue and argumentation * Define the basic concepts of one or two logics for collective reasoning (e.g. deontic logic, action logics), notably its semantics and its proof calculi * Model intelligent distributed systems using normative multiagent systems and deontic logic * Explain the philosophical foundations of collective reasoning -
Description
Lectures: – rules and regulations – standard deontic logic – input/output logic – project -
Assessment
Part I – Rules and Regulations: Homework: 10% Project: 40%% Part II – Deontic Logic: Homework: 10% Final exam: 40% -
Note
Literature: Handouts will be distributed during the course. In addition, the handbook of deontic logic provides background material
Course offer for Semestre 4
-
Details
- Number of ECTS: 30
- Course number: MICS2-30
- Module(s): Module 4.1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon