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 (2024-2025 Winter)
-
Details
- Course title: Foundations of Computing
- Number of ECTS: 3
- Course code: MICS2-6
- Module(s): Module 1.1 – Theoretical Foundations
- Language: EN
- Mandatory: Yes
-
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
- Course title: Algorithmic Number Theory
- Number of ECTS: 3
- Course code: F1_MA_MAT_GM-6
- Module(s): Module 1.1 – Theoretical Foundations
- Language: EN
- Mandatory: Yes
-
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 fieldsRead and understand some scientific articles published in the domain, and ask relevant questionsGive a talk for peers on related topicsOrganize 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
Exam modalities for the first sessionWritten exam during the exam period (January/February)Exam modalities for the retake examWritten exam during the exam period (July) -
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
- Course title: Networking
- Number of ECTS: 3
- Course code: MICS2-8
- Module(s): Module 1.2 – Communication and Networking
- 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) assessmentSeveral 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: Fundamentals of Network Theory
- Number of ECTS: 3
- Course code: MICS2-7
- Module(s): Module 1.2 – Communication and Networking
- 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) assessmentSeveral 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
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: Distributed Systems
- Number of ECTS: 3
- Course code: MICS2-2
- Module(s): Module 1.3 – Distributed Systems
- 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
Assessment20% on (biweekly) assignments (4 points) and 80% on a written exam (16 points) Retake100% on a written exam (20 points)
-
Details
- Course title: Intelligent Systems – Agents and Reasoning
- Number of ECTS: 3
- Course code: MICS2-36
- Module(s): Module 1.4 – Intelligent and Adaptive Systems
- Language: EN
- Mandatory: Yes
-
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 logicThe 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: Intelligent Systems – Machine learning
- Number of ECTS: 3
- Course code: MICS2-62
- Module(s): Module 1.4 – Intelligent and Adaptive Systems
- 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 & ClusteringReinforcement Learning – Fundamentals Deep Learning – Learning Deep RepresentationsDeep Learning – Models Learning TheoryResearch – Glimpse on state-of-the-art researchEngineering – ML and the real-world -
Assessment
Combined assessment -
Note
Bishop, C.: Pattern Recognition and Machine Learning, 2006Goodfellow, I., Bengio, Y. & Courville, A.: Deep Learning, 2016Sutton, R., Barto, A.: Reinforcement Learning: An Introduction, second edition, 2018Hastie, T, Tibshirani, R. & Friedman, J.: The Elements of Statistical Learning, 2009Zhang, 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): Module 1.4 – Intelligent and Adaptive Systems
- Language: EN
- Mandatory: Yes
-
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
- Course title: Information Security Basics
- Number of ECTS: 3
- Course code: MICS2-3
- Module(s): Module 1.5 – Information Security Basics
- Language: EN
- Mandatory: Yes
-
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
- Course title: Reliable software-intensive systems
- Number of ECTS: 3
- Course code: MICS2-47
- Module(s): Module 1.6 – Reliable software-intensive systems
- Language: EN
- Mandatory: Yes
-
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 (2024-2025 Summer)
-
Details
- Course title: Principles of Software Development
- Number of ECTS: 5
- Course code: MICS2-50
- Module(s): Module 2.1 – Principles of Software Development
- Language: EN
- Mandatory: No
-
Objectives
This course provides a comprehensive introduction to modern software development principles, from fundamental programming concepts to advanced topics in mobile and native development, including cutting-edge areas like AI in software engineering.
-
Course learning outcomes
By the end of this course, students will be able to: • Understand fundamental programming concepts and execution models • Implement CI/CD pipelines for software projects • Evaluate software quality using various metrics • Leverage AI tools in software development • Generate and maintain comprehensive test suites • Develop mobile and native applications • Apply modern software development practices in real-world scenarios -
Description
Course StructureSetup Class: Development Environment ConfigurationDuration: 1 session • Installation and setup of Visual Studio Code • Essential extensions for development • Version control setup (Git) • Basic VS Code features and shortcuts • Terminal integration • Debugging tools configurationChapter 1: Introduction to Programming ConceptsDuration: 2-3 sessions • Compilation Process • Source code to machine code • Preprocessing, compilation, assembly, and linking • Object files and executable generation • Common compilation errors and debugging • Execution Models • Native execution vs. virtual machines • Just-In-Time (JIT) compilation • Interpreted languages • Bytecode and intermediate representations • Performance implications of different execution models • Practical Exercises • Comparing compilation and interpretation • Analyzing compilation outputs • Debugging common issuesChapter 2: Continuous Integration and Continuous Deployment (CI/CD)Instructor: Aicha War Duration: 2-3 sessions • Continuous Integration Fundamentals • Version control best practices • Automated building and testing • Integration strategies • Code quality metrics • Continuous Deployment • Deployment pipelines • Environment management • Release strategies • Rollback procedures • Monitoring and logging • Tools and Practices • GitHub Actions/GitLab CI • Jenkins • Docker containerization • Infrastructure as CodeChapter 3: Software Cost Measurement and Complexity MetricsDuration: 2 sessions • Cost Estimation • Function Point Analysis • COCOMO model • Agile estimation techniques • Project planning and resource allocation • Complexity Metrics • Cyclomatic complexity • Halstead metrics • Maintainability index • Code coupling and cohesion • Technical debt measurement • Practical Applications • Using static analysis tools • Complexity reduction techniques • Cost-benefit analysis • Project estimation exercisesChapter 4: AI in Software EngineeringInstructor: Xunzhu Tang Duration: 2-3 sessions • Large Language Models in Software Development • Code generation and completion • Documentation generation • Code review assistance • Test case generation • AI Agents for Development • Automated bug detection • Intelligent refactoring • Performance optimization • Code search and recommendation • Practical Integration • GitHub Copilot • Amazon CodeWhisperer • Custom AI tools integration • Best practices and limitationsChapter 5: Test Generation for Software EngineeringInstructor: Marc Christian Ouédraogo Duration: 2-3 sessions • Automated Test Generation • Unit test generation • Integration test generation • Performance test generation • Security test generation • Testing Strategies • Model-based testing • Property-based testing • Mutation testing • Fuzzing techniques • Tools and Frameworks • JUnit/TestNG • Selenium • JMeter • Modern testing frameworksChapter 6: Mobile Development with AndroidDuration: 3 sessions • Android Development Fundamentals • Activity lifecycle • UI development with XML and Jetpack Compose • Data storage and management • Background processing • Modern Android Development • MVVM architecture • Kotlin fundamentals • Material Design implementation • App publishing process • Best Practices • Performance optimization • Security considerations • Testing mobile applications • User experience designChapter 7: Native DevelopmentDuration: 2-3 sessions • Native Development Concepts • Platform-specific development • Cross-platform considerations • Performance optimization • Native APIs and SDKs • Implementation Strategies • Memory management • Platform-specific features • Hardware acceleration • Native interfaces • Tools and Frameworks • Native development kits • Cross-platform frameworks • Performance profiling • Debugging native code -
Assessment
Assessment Structure • Continuous Assessment (40%) • Weekly programming assignments • Project milestones • Class participation • Final Project (60%) • Team-based software development project • Documentation • Presentation • Code quality assessment -
Note
Required Tools • Visual Studio Code • Git • Android Studio • Various CI/CD tools (as specified in Chapter 2) • Testing frameworks (as specified in Chapter 5)
-
Details
- Course title: Algorithms for Numbers and Public-Key Cryptography
- Number of ECTS: 5
- Course code: MICS2-14
- Module(s): Module 2.2 – Algorithms for Numbers and Public-Key Cryptography
- Language: EN
- Mandatory: No
-
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
- Course title: Formal Methods
- Number of ECTS: 5
- Course code: MICS2-22
- Module(s): Module 2.3 – Formal Methods
- Language: EN
- Mandatory: No
-
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
- Course title: Big Data Analytics
- Number of ECTS: 5
- Course code: MICS2-41
- Module(s): Module 2.4 – Big Data Analytics
- 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: Information Theory and Coding
- Number of ECTS: 5
- Course code: MICS2-20
- Module(s): Module 2.5 – Information Theory and Coding
- Language: EN
- Mandatory: No
-
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
- Course title: Intelligent Agents I
- Number of ECTS: 5
- Course code: MICS2-21
- Module(s): Module 2.6 – Intelligent Agents I
- Language: EN
- Mandatory: No
-
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
- Course title: Knowledge Discovery and Data Mining
- Number of ECTS: 5
- Course code: MICS2-13
- Module(s): Module 2.7 – Knowledge Discovery and Data Mining
- Language: EN
- Mandatory: No
-
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
- Course title: Optimisation for Computer Science
- Number of ECTS: 5
- Course code: MICS2-17
- Module(s): Module 2.9 – Optimisation for Computer Science
- Language:
- Mandatory: No
-
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%
-
Details
- Course title: Principles of Security Engineering
- Number of ECTS: 5
- Course code: MICS2-24
- Module(s): Module 2.10 – Principles of Security Engineering
- 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/evidenceCopyright, DRM, watermarking.Privacy (Jonker)Network security (malware, phishing, botnets…)Security evaluation and testingAdvanced 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): Module 2.11 – Quality of Service in Computer Networks
- 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 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
- Course title: Symmetric Key Cryptography and Security of Communications
- Number of ECTS: 5
- Course code: MICS2-12
- Module(s): Module 2.12 – Symmetric Key Cryptography and Security of Communications
- Language: EN
- Mandatory: No
-
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
- Course title: Introduction to Static Program Analysis
- Number of ECTS: 5
- Course code: MICS2-40
- Module(s): Module 2.13 – Introduction to Static Program Analysis
- Language: EN
- Mandatory: No
-
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
Each student will get three grades: one for the assignments (labs), one for a project, and one for the exam(s). The final grade is obtained by using the following weights:50% assignments (labs)20% for a project 30% for exam(s)However, in order to pass, the student needs to get at least 7 out of 20 for the exam(s).If the student gets less than 7 out of 20 for the exam(s), the final grade will be computed as follows:50%(assignment grade /2) + 20%(project grade /2) + 30% exam grade If a student fails, the student can keep his/her grades related to the assignments and projects. Only attending the exam(s) is mandatory. Once the exam(s) is completed, the final grade is obtained by following the same weights as presented above (i.e., 50% assignments (labs), 20% for a project, 30% for exam(s)) Again, getting at least 7 out of 20 for the exam(s) is mandatory. -
Note
Maybe needed textbooks
-
Details
- Course title: Software Vulnerabilities: Exploitation and Mitigation
- Number of ECTS: 5
- Course code: MICS2-44
- Module(s): Module 2.14 – Software Vulnerabilities: Exploitation and Mitigation
- Language: EN
- Mandatory: No
-
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
Each student will get three grades: one for the assignments (labs), one for a project, and one for the exam(s). The final grade is obtained by using the following weights:50% assignments (labs)20% for a project 30% for exam(s)However, in order to pass, the student needs to get at least 7 out of 20 for the exam(s).If the student gets less than 7 out of 20 for the exam(s), the final grade will be computed as follows:50%(assignment grade /2) + 20%(project grade /2) + 30% exam grade If a student fails, the student can keep his/her grades related to the assignments and projects. Only attending the exam(s) is mandatory. Once the exam(s) is completed, the final grade is obtained by following the same weights as presented above (i.e., 50% assignments (labs), 20% for a project, 30% for exam(s)) Again, getting at least 7 out of 20 for the exam(s) is mandatory.
-
Details
- Course title: Virtual and Aumented Reality
- Number of ECTS: 5
- Course code: MICS2-56
- Module(s): Module 2.15 – Virtual and Augmented Reality
- Language: EN
- Mandatory: No
-
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
- Course title: Designing Interactive Systems
- Number of ECTS: 5
- Course code: MICS2-55
- Module(s): Module 2.16 – Designing Interactive Systems
- Language: EN
- Mandatory: No
-
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
- Course title: Microkernel Based Systems
- Number of ECTS: 5
- Course code: MICS2-57
- Module(s): Module 2.17 – Microkernel Based Systems
- Language: EN
- Mandatory: No
-
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
- Course title: Introduction to Deep Learning
- Number of ECTS: 5
- Course code: MICS2-66
- Module(s): Module 2.18 – Introduction to Deep Learning
- 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. Introduction2. Discriminative modeling I: Classification3. Discriminative modeling II: Regression4. Unsupervised and self-supervised learning5. Sequence learning6. Generative modeling7. Reinforcement learning8. Deployment and best practices9. 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: Introduction to Information Systems Engineering
- Number of ECTS: 5
- Course code: MICS2-67
- Module(s): Module 2.19 – Introduction to Information Systems Engineering
- Language: EN
- Mandatory: No
-
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 role of information systems in driving business success. -
Description
The course outline is as follows: 1) Introduction 2) Types of Organizational Information Systems 3) Digital Business Processes 4) Analyzing Information for Decision Making 5) Managing Organizational Information Systems 6) Digital Value Creation 7) Projekt-/Portfolio-/Risikomanagement 8) Information Systems and Organizational Social Media 9) Information Security Management 10) Security Awareness Management 11) Information Privacy and Ethics 12) Information Systems in Finance and Energy Markets 13) Information Systems for e-Governments and e-Commerce 14) Emerging Technologies -
Assessment
End-of course assessment (written exam)
-
Details
- Course title: Smart Energy Systems
- Number of ECTS: 5
- Course code: MICS2-68
- Module(s): Module 2.20 – Smart Energy Systems
- Language: EN
- Mandatory: No
-
Objectives
1) Introduce main power-system concepts and mechanisms from a technological, regulatory, and market perspective
2) familiarize students with the concepts of decarbonization, decentralization, and digitalization of power systems
3) provide an overview and introduce computational methods used in power systems (AI, simulation, optimization, …)
4) provide an overview and familiarize students with real-world energy use cases
5) and prepare students 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 power systems and electricity markets to analyze current real-world challenges and to propose new solutions to those challenges in the energy industry. -
Description
The course follows the following basic structure: 1) Introduction to power systems (generators, grids, loads, …)2) Power system trends and current challenges (decarbonization, decentralization, digitalization)3) Introduction to electricity markets (market participants, BRPs, TSOs, DSOs, …)4) Electricity market design (spot, long-term, services)5) Digitalization of energy systems (concepts of smart grids, smart meters, big data, etc.)6) Overview of computational methods used in energy systems (AI for forecasting, load flow simulations, optimization – market clearing, optimization – individual decision support)7) Overview of different energy use cases (examples: grid, supplier, TSO/DSO, BRP, households, industry, mobility)8) Exam preparation
Course offer for Semestre 3 (2024-2025 Winter)
-
Details
- Course title: Intellectual Property
- Number of ECTS: 3
- Course code: MICS-COMMSYST-022
- Module(s): Module 3.1 – Intellectual Property
- Language: EN
- Mandatory: Yes
-
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% mid term -
Note
IPIL – Institut de la Propriété Intellectuelle Luxembourg G.I.E. :
https://ipil.lu
-
Details
- Course title: Advanced Project Management
- Number of ECTS: 3
- Course code: MICS-COMMSYST-027
- Module(s): Module 3.2 – Advanced Project Management
- Language: EN
- Mandatory: Yes
-
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
- Course title: Advanced cryptographic algorithms and blockchain cryptography
- Number of ECTS: 4
- Course code: MICS2-42
- Module(s): Module 3.5 – Advanced cryptographic algorithms and blockchain cryptography
- Language: EN
- Mandatory: No
-
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
- Course title: Coding theory
- Number of ECTS: 4
- Course code: MICS-COMMSYST-023
- Module(s): Module 3.6 – Coding theory
- Language: EN
- Mandatory: No
-
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
- Course title: Autonomous Robot Software
- Number of ECTS: 4
- Course code: MICS2-31
- Module(s): Module 3.8 – Autonomous Robot Software
- Language: EN
- Mandatory: No
-
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
- Course title: Intelligent Agents II
- Number of ECTS: 4
- Course code: MICS-47
- Module(s): Module 3.9 – Intelligent Agents II
- Language: EN
- Mandatory: No
-
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
-
Details
- Course title: Model-Driven Software Development
- Number of ECTS: 4
- Course code: MICS-32
- Module(s): Module 3.12 – Model-Driven Software Development
- Language: EN
- Mandatory: No
-
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
- Course title: Selected Topics in Network and System Security
- Number of ECTS: 4
- Course code: MICS-COMMSYST-025
- Module(s): Module 3.13 – Selected Topics in Network and System Security
- Language: EN
- Mandatory: No
-
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
- Course title: Open Network Security
- Number of ECTS: 4
- Course code: MICS-41
- Module(s): Module 3.14 – Open Network Security
- 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: Parallel and Grid Computing
- Number of ECTS: 4
- Course code: MICS-COMMSYST-024
- Module(s): Module 3.15 – Parallel and Grid Computing
- Language: EN
- Mandatory: No
-
Objectives
The frequency of a core in modern processors is stagnating for more than a decade now. Hence, it is unavoidable to use multiple cores and computers in parallel to accelerate a computation. In this course, we overview three main models of parallelism (shared memory, message passing and partitioned global address space) and their implementations (std::thread/OpenMP, MPI, Chapel). We start with the C++ standard library for multithreading (std::thread) to study shared memory parallelism, the most flexible paradigm but also the most error-prone. We move to a safer model based on data parallelism using OpenMP for computations that are embarrassingly parallel. We then deepen our study of shared memory parallelism with the concept of memory consistency and work-stealing algorithms for task parallelism. Afterwards, we focus on grid computing with the message passing model and the popular library MPI. We terminate this course by an introduction to the partitioned global address space and the Chapel programming language.
-
Course learning outcomes
A comprehensive understanding of the three main models of parallelism: shared memory, message passing and partitioned global address space (PGAS). Ability to program with the C++ libraries std::thread, OpenMP and MPI, and with the emerging Chapel programming language. -
Description
1. C++ programming language (C++11 and above)2. Shared memory concurrency (std::thread)3. Data parallelism (OpenMP, Map/Reduce)4. Task parallelism (work-stealing algorithm)5. Memory consistency6. Message passing concurrency (MPI)7. Partitioned global address space (Chapel) -
Assessment
Project 20% and final exam 80%.
-
Details
- Course title: Security Modelling
- Number of ECTS: 4
- Course code: MICS2-29
- Module(s): Module 3.16 – Security Modelling
- Language: EN
- Mandatory: No
-
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
- Course title: Security Protocols
- Number of ECTS: 4
- Course code: MICS-SECURTRUST-014
- Module(s): Module 3.17 – Security Protocols
- Language: EN
- Mandatory: No
-
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: Final Exam 100%
-
Details
- Course title: Selected topics in Artificial Intelligence
- Number of ECTS: 4
- Course code: MICS-IAS-024
- Module(s): Module 3.18 – Selected topics in Artificial Intelligence
- 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. 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 + discussion performance (50%)- Participation + questions (20%)- Quizzes/Tests/Micro-projects (30%)
-
Details
- Course title: Software Engineering Environments
- Number of ECTS: 4
- Course code: MICS2-33
- Module(s): Module 3.19 – Software Engineering Environments
- 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: Testing and Validation
- Number of ECTS: 4
- Course code: MICS-43
- Module(s): Module 3.21 – Testing and Validation
- Language: EN
- Mandatory: No
-
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
- Course title: Computer Vision and Image Analysis
- Number of ECTS: 4
- Course code: MICS2-46
- Module(s): Module 3.24 – Computer Vision and Image Analysis
- 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 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
- Course title: Connected and Autonomous Vehicles
- Number of ECTS: 4
- Course code: MICS2-48
- Module(s): Module 3.25 – Connected and Autonomous Vehicles
- Language: EN
- Mandatory: No
-
Objectives
This class provides an interdisciplinary introduction to the emerging field of connected and autonomous vehicles. Our structured approach ensures a balanced blend of theoretical knowledge and practical application, enabling students to thoroughly understand the multifaceted nature of connected and autonomous vehicles.A highlight of the course is the final project, where students will develop a self-driving car in a simulation environment. This hands-on experience will allow students to apply the concepts learned and gain valuable practical skills.By the end of the course, students will possess a comprehensive understanding of the subject and be well-prepared to delve deeper into research topics related to autonomous driving systems.
-
Course learning outcomes
1) Understand the interdisciplinary nature and fundamental concepts of connected and autonomous vehicles.2) Gain in-depth knowledge of the main building blocks of autonomous vehicles.3) Develop practical skills through a hands-on final project, creating a self-driving car in a simulation environment.4) Achieve a balanced blend of theoretical knowledge and practical application.5) Be equipped to pursue advanced research and development in autonomous driving systems. -
Description
Throughout the course, we will explore the key components of autonomous vehicles, including connectivity, localization, perception, planning, and control. More details on the specific topics covered in class are provided in the syllabus on Moodle. -
Assessment
The final grade will be composed of the final project (50%) and a multiple-choice exam (50%). Depending on the size of the audience, the final project may be realized in groups of students. Active participation of all students in each group is mandatory and will be assessed.
-
Details
- Course title: Fault and Intrusion Tolerant Systems
- Number of ECTS: 4
- Course code: MICS2-53
- Module(s): Module 3.27 – Fault and Intrusion Tolerant Systems
- Language: EN
- Mandatory: No
-
Course learning outcomes
Understand fundamental limitations of fault and intrusion tolerant systemsAnalyse a specific system structure and propose a fault and intrusion tolerant alternativeKnowledge 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
- Course title: Introduction to Provable Security in Cryptography
- Number of ECTS: 4
- Course code: MICS2-59
- Module(s): Module 3.29 – Advanced Public-Key Encryption
- Language: EN
- Mandatory: No
-
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;} 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-pagination:widow-orphan; font-size:10.0pt; font-family:”Times New Roman”,serif;} The students will learn how to formally define security for cryptographic primitives. They will experience the difficulties in designing primitives that achieve certain properties and learn techniques to tackle those difficulties as well as proof techniques that allow to formally prove security.The following is a preliminary list of topics that can be adapted to better suit the audience:- Derivation of and relations of security properties for public-key encryption: OW-CPA and IND-CPA- Cryptographic assumptions (IF, RSA, DL, CDH, DDH) and idealized computational models (Generic Group Model, Algebraic Group Model)- ElGamal and its IND-CPA security- Hybrid Arguments- Hardcore Predicates and Blum-Goldwasser encryption- IND-CCA security- Zero-knowledge proofs and Naor-Yung encryption- Random Oracle Model and Fujisaki-Okamoto encryption- Hashproof systems and Cramer-Shoup encryption- Indentity-based encryption and the Boneh-Boyen scheme- Updabtable encryption -
Assessment
Final oral or written exam (depending on the number of participants)
-
Details
- Course title: Post-quantum Cryptography
- Number of ECTS: 4
- Course code: MICS2-60
- Module(s): Module 3.30 – Post-quantum Cryptography
- Language: EN
- Mandatory: No
-
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
- Course title: Green IT
- Number of ECTS: 4
- Course code: MICS2-63
- Module(s): Module 3.31 – Green IT
- 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 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
- Course title: Applications of AI
- Number of ECTS: 4
- Course code: MICS2-65
- Module(s): Module 3.33 – Applications of AI
- Language: EN
- Mandatory: No
-
Objectives
The objective is to prepare each student for either an academic or business life.
-
Course learning outcomes
Each participant gets to know to the concept of AI and to selected applications in this field. Each student learns to address a project, to summarize the research findings (research paper) and to present it at a public workshop meaningfully and comprehensibly. The course is a preparation for a master thesis project; each student should have the opportunity to continue this project. -
Description
The need for AI extends far beyond the realms of academics, business, and commerce. In fields such as healthcare, education, science, and others, AI is driving breakthroughs in diagnosis, personalized learning, analytics, and many more. However, as AI continues to advance, so too do the ethical and societal implications of its widespread adoption. Concerns surrounding data privacy, algorithmic bias, and the impact on employment underscore the need for responsible development and deployment of AI technologies. The need for AI, however, has never been greater. In an era defined by data abundance and complexity, AI offers indispensable solutions for unlocking insights, driving innovation, and addressing some of society’s most pressing challenges. However, it is imperative that we approach the development and deployment of AI with a keen awareness of its ethical and societal implications, ensuring that the benefits are equitably distributed and that AI serves the collective good. -
Assessment
2 prepared meetings with the designated supervisor (each 5% worth), quality of the research paper as evaluated by the reviewers (40%), workshop presentation (50%). Each participants signs a declaration that the research paper has been done by him/herself. In case that ‘Generative AI’ such as ChatGPT (or others) have been used, then must be mentioned and explained. -
Note
Each participant has the opportunity to do once a retake exam in the following semester. The retake exam is organised as follows: the candidate receives 2 project suggestions (related to AI), for which the candidate has to choose one of them. The candidate then works ca. 4 weeks on this project. The candidate then presents the project as well as summarizes the results in a research paper. Both count 50% each.
-
Details
- Course title: Research Methods in Information Systems Engineering
- Number of ECTS: 4
- Course code: MICS2-69
- Module(s): Module 3.34 – Research Methods in Information Systems Engineering
- Language: EN
- Mandatory: No
-
Objectives
1) Building a basic understanding on research and scientific methods in information systems.2) Providing an overview of the basic principles and research methods that are prevalent and relevant in the field of information systems engineering. This includes familiarising students with qualitative research methods, including interviews and content analysis, quantitative research methods, including survey design and structural equation modeling, and formal methods, such as simulation and mathematical modeling.3) Developing skills in designing research studies that incorporate a mix of qualitative, quantitative, and formal methods.4) Encouraging collaboration and interdisciplinary research projects within the field of information systems engineering.5) Preparing students to pursue research in the field (e.g., in master projects, or a doctoral thesis).
-
Course learning outcomes
Upon completion of the course, students will be able to apply their knowledge of research methods to address complex research questions nested within information systems engineering, thereby demonstrating their understanding of how to use qualitative, quantitative or formal methods. -
Assessment
For each presentation or tutorial there will be at least one “Coach” on post-doctoral level who guides the teams, mediates between Presenters and Challengers, and who assesses the individual participation.Doctoral candidates can annually repeat the lecture and rotate through these roles, gaining experience and earning ECTS credits for their active participation and contributions to the learning process. The lecture is an effective learning environment only if doctoral students actively contribute to it. Therefore, contributions will be actively monitored by the Coach and during the presentation. Study credits will be granted accordingly:1 ECTS:- Presenter- Tutor0.5 ECTS:- Supporter0.25 ECTS:- Challenger- DiscussantIn case a candidate stays below a total of 2 ECTS in contributions the course is considered failed.
-
Details
- Course title: Financial Technologies
- Number of ECTS: 4
- Course code: MICS2-70
- Module(s): Module 3.35 – Financial Technologies
- Language: EN
- Mandatory: No
-
Objectives
This course provides an in-depth exploration of financial markets, focusing initially on the fundamental aspects of decision-making in market environments. Students will gain an understanding of the core mechanisms that drive financial markets and how these principles guide trading, investment, and economic policy decisions. The second part of the course delves into the transformative impact of technological innovations on financial markets. We will explore how advancements in technology enhance market efficiency, accessibility, and security, including discussions on blockchain, smart contracts, crypto-assets and decentralized finance. Throughout the course, emphasis will be placed not only on technical concepts and the alignment of cryptographic tools and economic incentives but also on the importance of legal frameworks that ensure these technological tools are used in a manner that protects all market participants. In addition, the third part of the course will explore topical compliance aspects in the FinTech space and highlight the role of system design in safeguarding privacy, data protection and financial integrity.
-
Course learning outcomes
Upon successful completion of this course, students will be able to: 1. Understand Market Fundamentals: Grasp the core principles of decision-making in markets and comprehend the basic functioning of financial markets, including how prices are set and how markets facilitate the allocation of resources. 2. Analyze the Impact of Technology: Evaluate how technological innovations support and transform financial markets. This includes understanding the role of FinTech, blockchain technology, and smart contracts in enhancing market efficiency and accessibility. 3. Navigate Legal Frameworks: Recognize the importance of adhering to key legal frameworks relevant to the financial space. Students will learn about the regulatory environment of financial markets, how it shapes the use of technology in finance and how technology can be leveraged for regulatory compliance purposes. 4. Apply Knowledge to Real-World Scenarios: Develop the ability to apply theoretical knowledge to practical scenarios in financial markets, leveraging technology within legal constraints and for compliance purposes to solve problems and create value. 5. Critical Thinking and Analysis: Cultivate critical thinking skills necessary to analyze and interpret the implications of technological advancements in the financial sector, considering both opportunities and challenges. -
Description
1. Introduction 2. Fundamentals of decision making and markets (Demand and supply analysis), Markets, Investment, Uncertainty 3. Blockchain technology (Blockchain: Technical basics and myths, Smart contract programming and blockchain scaling, Introduction to decentralized finance, From front-running in financial markets to MEV), 4. Regulatory compliance and system design (Risk and challenges in DeFi and Institutional DeFi, Privacy and compliance in Central Bank Digital Currencies, AML/CFT compliance in the crypto-asset sphere: detecting anomalous transactions, Compliance by design and through IS design)Assessment modality End-of-course assessment
-
Details
- Course title: Zero Knowledge Proofs: Cryptographic Polynomial Commitments and Interactive Proofs
- Number of ECTS: 4
- Course code: MICS2-71
- Module(s): Module 3.36 – Zero Knowledge Proofs: Cryptographic Polynomial Commitments and Interactive Proofs
- Language: EN
- Mandatory: No
-
Objectives
Provide introduction into modern zero-knowledge technologies. Long considered a toy-like cryptographic curiocity ZKP have seen an enormous efficiency boost in recent years. This allows new design of distributed and trustless systems, making ZKP one of the most important technologies for the future of blockchains.
-
Course learning outcomes
Recent advances in zero knowledge proof technology and their blockchain applications -
Description
Introduction and History of ZKP; Overview of Modern SNARK Constructions; Interactive Proofs (IP); Plonk Interactive Oracle Proofs (IOP); Discrete-log-based Polynomial Commitments; ZKP based on Error-Correcting Codes and FRI; Recursive SNARKs, Aggregation and Accumulation -
Assessment
Graded homeworks
-
Details
- Course title: Governmental Technologies
- Number of ECTS: 4
- Course code: MICS2-72
- Module(s): Module 3.37 – Governmental Technologies
- Language: EN
- Mandatory: No
-
Objectives
In this course, students learn essential aspects about the management of digital technologies and digital projects in the public sector, as well as digital infrastructures provided by the public. The course first introduces the students to best practices in managing projects in general and IT projects in specific (e.g., agile development and project management), including the analyses of costs and benefits. It then transitions to the formal modeling of processes for which digital tools aim to provide a solution. Lastly, the course will study the case of digital identity wallets to learn how governments manage emerging digital technologies, and how understanding and implementing such digital technologies may help governments not only provide their citizens with critical functionalities to interact with public services but also become more competitive.
-
Course learning outcomes
Upon successful completion of this course, students will be able to: (1) manage digital projects, particularly in the public sector (2) be able to structure and formally describe intra- and inter-organizational processes and (3) assess the opportunities and challenges of digital identity infrastructures provided by governments.
Course offer for Semestre 4 (2024-2025 Summer)
-
Details
- Course title: Master thesis
- Number of ECTS: 30
- Course code: MICS2-30
- Module(s): Module 4.1
- Language: EN
- Mandatory: Yes