Master in Information and Computer Sciences (académique)
The main innovation of the new MICS programme is the introduction of
profiles. The notion of profile comes out of the realization that certain sets of
courses make a coherent whole with a specific set of learning outcomes. The
coherence may be based for instance on these courses viewing the same problem
from different viewpoints or presenting different but complimentary approaches
to the same problem. The proposed
profiles provide a more flexible mechanism than traditional specialization
tracks since students may pursue multiple profiles.
The proposed programme is taught as a full-time programme over two years
with 60 ECTS per year. The first three semesters are taken up with course
work and semester 4 is devoted to writing a master thesis. The first semester
is an orientation semester with a set of common courses for all students that
establish a firm foundation. The second semester offers courses that prepare for
further specialization in the third semester. The programme culminates in a
master thesis in the fourth semester.
Semester 1
- Module 1.1:
- Basic Algebraic Structures (3 ECTS)
- Theoretical Computer Science (3 ECTS)
- Module 1.2:
- Communication Theory (3 ECTS)
- Networking (3 ECTS)
- Module 1.3: Distributed Systems (3 ECTS)
- Module 1.4:
- Module 1.5: English for Computer Science (3 ECTS)
- Module 1.6: Information Security Basics (3 ECTS)
- Module 1.7: Principles of Software Development (3 ECTS)
Semester 2
- Module 2.1: Symmetric Key Cryptography and Security of Communications (5 ECTS)
- Module 2.2: Knowledge Discovery and Data Mining (5 ECTS)
- Module 2.3: Algorithms for Numbers and Public-Key Cryptography (5 ECTS)
- Module 2.4: Networked Feedback Systems (5 ECTS)
- Module 2.5: Dependable Systems (5 ECTS)
- Module 2.6: Optimisation for Computer Science (5 ECTS)
- Module 2.7: Algorithmic Decision Theory (5 ECTS)
- Module 2.8: Mobile Computing (5 ECTS)
- Module 2.9: Information Theory and Coding (5 ECTS)
- Module 2.10: Intelligent Agents I (5 ECTS)
- Module 2.11: Formal Methods (5 ECTS)
- Module 2.12: Quality of Service in Computer Networks (5 ECTS)
- Module 2.13: Principles of Security Engineering (5 ECTS)
- Module 2.14: Formal Specification and Program Verification (5 ECTS)
Semester 3
- Module 3.1: Machine Learning (4 ECTS)
- Module 3.2: Selected Topics in Artificial Intelligence (4 ECTS)
- Module 3.3: Cryptography in the Real World (4 ECTS)
- Module 3.4: Technical Systems Modeling and Simulation (4 ECTS)
- Module 3.5: Software Product Line Engineering (4 ECTS)
- Module 3.6: Parallel and Grid Computing (4 ECTS)
- Module 3.7: Computational Statistics (4 ECTS)
- Module 3.8: Open Network Security (4 ECTS)
- Module 3.9: Ubiquitous Computing (4 ECTS)
- Module 3.10: Coding Theory (4 ECTS)
- Module 3.11: Game theory (4 ECTS)
- Module 3.12: Empirical Software Engineering (4 ECTS)
- Module 3.13: Selected Topics in Software Construction (4 ECTS)
- Module 3.14: Testing and Validation (4 ECTS)
- Module 3.15: Stochastic Models in Intrusion Detection Systems (4 ECTS)
- Module 3.16: Intelligent Agents II (4 ECTS)
- Module 3.17: Estimation and Detection (4 ECTS)
- Module 3.18: Advanced Project Management (3 ECTS)
- Module 3.19: Intellectual Property (3 ECTS)
- Module 3.20: Non-/Cooperative Information Routing (4 ECTS)
- Module 3.21: Security Modeling (4 ECTS)
- Module 3.22: Management of Information Security (4 ECTS)
- Module 3.23: Security Protocols (4 ECTS)
- Module 3.24: Model-Driven Software Development (4 ECTS)
Modules
⊳ Module 1.1: Theoretical Foundations
Learning outcomes:
After successful completion of this module the student
should be able to
- List various computational models and their properties
- Analyze and compare the complexity of problems
- Explain basic algebraic structures such as groups and fields
- Present proofs of properties of algebraic structures
Course: Basic Algebraic Structures (3 ECTS)
Objective: The course supplies those basic notions of algebra which are necessary for following higher courses in the frame of the Master MICS. Exercises are incorporated into the course.
Description:
1. Groups
2. Rings and Fields
3. An application: Public key encryption
4. Coset spaces and quotient groups
5. Polynomial rings over fields
6. Construction of field extensions.
7. Finite fields
8. Applications to Coding Theory (if time permits)
Instructor(s): Martin Schlichenmaier
Course: Theoretical Computer Science (3 ECTS)
Objective: This course teaches basic computational models and computational complexity.
Description:
• Computational models and basic computability; Church's thesis; recursive functions and decidability
• Time Complexity: the classes P and NP; NP-Completeness
• Space complexity: Savitch's theorem, PSPACE and PSPACE-completeness
• Intractability: hierarchy theorems; exponential space completeness
Instructor(s): Peter Ryan
⊳ Module 1.2: Communication and Networking
Learning outcomes:
After successful completion of this module the student
should be able to
- Describe fundamental parameters of signals, systems, and channels
- Take optimal stochastic decisions based on observations
- Differentiate existing communication topologies according to their performance, security and robustness
- Apply theoretical concepts to real world communication architectures for performance or security optimisation
Course: Communication Theory (3 ECTS)
Objective: This courses teaches the foundations of communication theory.
Description:
* Review of Stochastic Signals and Systems
* Digital Transmission and Modulation
* Demodulation
* Channel Models
* ML Principle
* Matched Filter
* Equalization
Instructor(s): Ulrich Sorger
Course: Networking (3 ECTS)
Objective: This courses covers the foundations of networking.
Description:
* Hierarchical Model of Network Functions (OSI Model, Service Access Points)
* Point-to-Point Data Transmission (synchronous and asynchronous multiplexing, packets)
* Multiple Access Control (ALOHA, Slotted ALOHA, collision resolution, detection and avoiding)
* Error correcting and detecting codes, ARQ protocols
* Routing and flow control
* Introduction to Queueing Theory
* Mobile Network Access Schemes
* Quality of Service Parameters in TCP/IP
Instructor(s): Thomas Engel
⊳ Module 1.3: Distributed Systems
Learning outcomes:
After successful completion of this module 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 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
Course: Distributed Systems (3 ECTS)
Objective:
The objective of the course is to provide an overview of the area of
distributed systems with a focus on distributed algorithms.
Instructor(s): Sjouke Mauw, Jun Pang
⊳ Module 1.4: Intelligent and Adaptive Systems
Learning outcomes:
After successful completion of this module the student
should be able to
- Explain the central role of the intelligent (multi-)agent metaphor in knowledge based systems
- Define and apply the basic concepts of classical propositional and first order logic, notably their semantics and proof calculi
- Model intelligent systems using classical logic, planning, and decision formalisms
- Explain the importance of logic and reasoning for knowledge- and agent-based systems
- Identify the key concepts related to optimization and decision making
- Implement greedies and branch\&bound algorithms
- Explain the basic concepts of information retrieval and learning mechanism
- Propose own observations and modeling solutions for some real world data models
Course: Intelligent Systems - Agents and Reasoning (2 ECTS)
Objective: Preparing the student for the emerging age of ubiquitous intelligent systems and robots, getting a solid background for studies in intelligent and/or adaptive systems, promoting the use of intelligent techniques in other areas of computer science, promoting the use of intelligent techniques in cross-disciplinary interaction,
Instructor(s): Leon van der Torre
Course: Intelligent Systems - Information Retrieval and Learning (2 ECTS)
Objective: The goal of this course is to introduce to the field of Information Retrieval and to motivate its relationship to areas like information search and quantitation, linguistic processing, and machine learning. Besides the acquisition of fact knowledge, each candidate must finally have the ability to apply this knowledge to concrete problems.
Description:
The course is guided by questions, for example:
* Where do we search?
* From a linguistic point of view, how good is the search request?
* How can information be ranked?
* How relevant is the information we retrieved?
* How can we extend a search request by an implicit and explicit user feedback?
Instructor(s): Christoph Schommer
Course: Intelligent Systems - Problem Solving (2 ECTS)
Instructor(s): Pascal Bouvry
⊳ Module 1.5: English for Computer Science
Learning outcomes:
After successful completion of this module the student
should be able to
- Comprehend spoken and written English with a wide technical vocabulary.
- Express themselves in technical discussions individually and in groups with relaxed confidence.
- Organize and write email, essays and team projects in formal and technical English.
- Analyze, compare and debate technical issues with colleagues.
Course: English for Computer Science (3 ECTS)
Objective: The objective of this course is to prepare students to participate in graduate level coursework in technical English.
Description: The course begins with listening and grammar diagnostics to assess basic English language skills and establish goals for grammar review. Students work in pairs and groups to strengthen speaking and listening skills followed by collaborating on team projects where they further develop composition skills and the ability to critique each other's work with regular peer review feedback.
Instructor(s): Jeff Britton
⊳ Module 1.6: Information Security Basics
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Information Security Basics (3 ECTS)
Objective:
The objective of this course it to provide an introduction to
information security.
Instructor(s): Alex Biryukov, Jean-Sebastien Coron, Sjouke Mauw, Peter Ryan
⊳ Module 1.7: Principles of Software Development
Learning outcomes:
After successful completion of this module the student
should be able to
- design a reusable and evolvable software
- analyse the quality of a software development process
- propose improvements in a software development process (requirements, design patterns, architecture)
- question the new software paradigms (e.g. static vs. dynamic typing)
Course: Principles of Software Development (3 ECTS)
Objective:
Developing an efficient, reusable and evolvable software is a key
issue of modern development techniques. This not only requires to be
skilled in programming, but also to capture the expectations of the
client and eventually translate them in a productive way into
executable code.
Good software development is thus driven by four complementary (and
strongly connected) engineering domains and layers:
- formal definition of languages for efficient software development
(typing, contracts )
- design patterns practices on top of best programming practices
- architectural decomposition of a software
- derivation of early requirements into productive models
In this course, we go through these four principles of software
development (language, DP, architecture, requirements to models) and
synthesize the key aspects of a successful development process. The
course promotes the use of OO approaches for software development.
Instructor(s): Yves Le Traon
⊳ Module 2.1: Symmetric Key Cryptography and Security of Communications
Learning outcomes:
After successful completion of this module the student
should be able to
- apply differential power analysis (DPA) to smartcard implementations of ciphers
- explain hardware and software implementation issues for cryptographic primitives and security protocols
- evaluate affects of cryptanalysis, side-channel attacks and traffic analysis on cryptographic primitives
Course: Symmetric Key Cryptography and Security of Communications (5 ECTS)
Objective:
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 and then follow to the present day standards. In the second half of the course we will discuss broader applied cryptography and network security topics such as implementation issues, side-channel attacks, hacking, reverse engineering and obfuscation, etc.
Instructor(s): Alex Biryukov, Ralf-Philipp Weinmann
⊳ Module 2.2: Knowledge Discovery and Data Mining
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Knowledge Discovery and Data Mining (5 ECTS)
Objective: We understand Data Mining/Knowledge Discovery as a cognitive process, which is a life-cycle of data, information, insights and knowledge. In this course, we concern ourselves with the technical aspects of data preparation, its visualization and interpretation, and the discovery process of finding hidden structures in the data. An expansive definition of Data Mining is the derivation of values from masses of data by studying and understanding the structure of the constituent data, which is mainly supported by the field of Machine Learning.
Instructor(s): Christoph Schommer
⊳ Module 2.3: Algorithms for Numbers and Public-Key Cryptography
Learning outcomes:
After successful completion of this module the student
should be able to
- 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.
Course: Algorithms for Numbers and Public-Key Cryptography (5 ECTS)
Objective: The objective of this course it to provide an introduction to algorithms for numbers and their use in public-key cryptography.
Instructor(s): Jean-Sebastien Coron
⊳ Module 2.4: Networked Feedback Systems
Learning outcomes:
After successful completion of this module the student
should be able to
- Identify feedback structures, decompose them and formulate continuous and sequential dynamics
- Determine reliable discrete or continuous enclosures for structure-variations and uncertainties
- Design controls with guaranteed dynamic tolerances
- Design reliable automata in technical context
Course: Networked Feedback Systems (5 ECTS)
Objective: The objective of this course is to introduce students to networked feedback structures in interconnected information and communication technology in technical environments
Instructor(s): Juergen Sachau
⊳ Module 2.5: Dependable Systems
Learning outcomes:
After successful completion of this module the student
should be able to
- introduce at requirement, design, implementation and verification levels some dependability artefacts.
- evaluate the dependability of a system.
- design and implement some dependability mechanisms.
- use a specific advanced transaction platform to prototype dependable applications.
- read and present research and technical papers related to dependable systems.
- relate the content of a research paper w.r.t. the state of the art in dependable systems.
Course: Dependable Systems (5 ECTS)
Objective: The course will introduce, using a software engineering perspective, the fundamentals of dependable systems: standards for dependability, fundamental concepts of dependability, engineering activities and dependability attributes and means, fault prevention, tolerance, removal and forecasting. Some reusable dependability mechanisms will be studied conceptually and implementation means to support dependable systems development will be presented and used.
Instructor(s): Nicolas Guelfi
⊳ Module 2.6: Optimisation for Computer Science
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Optimisation for Computer Science (5 ECTS)
Objective: 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. This lecture provides a good overview of many of such problems and different approaches that might be used to solve them or at least to find a reasonable solution. The proposed solutions include exact methods, relaxations, approximations, heuristics and meta-heuristics. The students are directly involved into research teams helping them to solve real problems illustrating the various approaches. And these practical study cases are supported and made consistent by a set of theoretical lectures.
Instructor(s): Pascal Bouvry
⊳ Module 2.7: Algorithmic Decision Theory
Learning outcomes:
After successful completion of this module the student
should be able to
- Recognise and formulate problems that relate to Algorithmic Decision Theory (ADT)
- Identify the operational complexity issues arising in ADT
- Adapt some of the classical Operational Research and Decision Aid solving strategies to the ADT context
- Implement an ADT solver for selected case studies
Course: Algorithmic Decision Theory (5 ECTS)
Objective: The objective of this course is to introduce students to ADT, a new interdisciplinary field at the intersection of decision theory, discrete mathematics, theoretical computer science and artificial intelligence. ADT proposes new ideas, approaches and tools for supporting decision making processes in presence of massive databases, combinatorial structures, partial and/or uncertain information, and distributed, possibly inter-operating, decision makers. Such problems arise in several real-world decision making problems such as humanitarian logistics, epidemiology, risk assessment and management, e-government, electronic commerce, and the implementation of recommender systems.
Instructor(s): Raymond Bisdorff
⊳ Module 2.8: Mobile Computing
Learning outcomes:
After successful completion of this module the student
should be able to
- Identify and classify the properties of different wireless communication technologies
- Recognise the power and constraints of pure ad-hoc and backbone-assisted hybrid network infrastructures
- Examine and describe the characteristics of mobile platforms
- Assess the impact of mobility on system design, producing sensible mobile architectures and applications
- Analyse and evaluate the properties of mobile protocols and systems
Course: Mobile Computing (5 ECTS)
Objective: Mobile computing devices like laptops, smartphones, and even sensors are becoming increasingly pervasive. In this course, the specific properties and characteristics of mobile systems will be explored in terms of the devices, wireless communication technologies as well as network infrastructures and protocols. The impact on the design and development of mobile systems will be discussed, taking a holistic approach.
Description:
Concrete topics include an introduction to Bluetooth and ZigBee, together with a comparison to other technologies such as Wi-Fi and mobile data services. Multi-hop ad-hoc networks together with MANET routing protocols will be covered, discussing their strengths and limitations. Backbone-assisted hybrid architectures and related protocols will be presented. Mobile platforms will be examined and compared, including Java Micro Edition, Android, iOS and Windows Mobile.
In a practical part, the knowledge obtained will be applied and evaluated, both using a simulation environment as well as on real devices.
Instructor(s): Steffen Rothkugel
⊳ Module 2.9: Information Theory and Coding
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Information Theory and Coding (5 ECTS)
Objective: The objective of this course is to provide an understanding of fundamental communication limits and means of approaching them.
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
Instructor(s): Ulrich Sorger
⊳ Module 2.10: Intelligent Agents I
Learning outcomes:
After successful completion of this module the student
should be able to
- 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 one or two non-classical logics (e.g. modal logic and default logics), notably their semantics and proof calculi
- Model intelligent systems using non-classical logics
- Explain the philosophical foundations of individual reasoning.
Course: Intelligent Agents I (5 ECTS)
Objective:
The objective of this course is to introduce students to formal methods
of individual reasoning used in intelligent agent systems.
Instructor(s): Leon van der Torre
⊳ Module 2.11: Formal Methods
Learning outcomes:
After successful completion of this module the student
should be able to
- 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 the fundamental concepts in model-driven software development such as model, meta-model, modeling language, abstract syntax and semantics
- Define a simple modeling language by giving its syntax and semantics
- Evaluate and compare current model-driven technologies
Course: Formal Methods (5 ECTS)
Objective: In this course, we will study a collection of techniques that are essential in the construction of large and highly reliable systems.
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.
Instructor(s): Pierre Kelsen, Sjouke Mauw, Jun Pang
⊳ Module 2.12: Quality of Service in Computer Networks
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Quality of Service in Computer Networks (5 ECTS)
Objective:
The objective of this course is to introduce quantitative measures for network performance (like throughput, error correction, delays, routing) for different network topologies to
be applied to security protocols. It also sensibilises for differences between static and dynamic networks as well as centralised and de-centralised topologies concerning reliability and trust issues.
Instructor(s): Thomas Engel
⊳ Module 2.13: Principles of Security Engineering
Learning outcomes:
After successful completion of this module the student
should be able to
- Evaluate security systems and identify their vulnerabilities
- Propose countermeasures to vulnerabilities and attacks
- Evaluate security requirements
Course: Principles of Security Engineering (5 ECTS)
Objective: This course aims at teaching students the fundamental principles of engineering secure systems.
Instructor(s): Peter Ryan
⊳ Module 2.14: Formal Specification and Program Verification
Course: Formal Specification and Program Verification (5 ECTS)
Description: The course presents, in a first step, techniques for formal reasoning on programs and program verification based on Hoare logic. Next, it presents formal program specification techniques that can be used to construct correct programs through a series of successive refinements of the initial specification. This approach is illustrated using the B language and the Atelier B tool.
Instructor(s): Marc Gengler
⊳ Module 3.1: Machine Learning
Learning outcomes:
After successful completion of this module the student
should be able to
- List the fundamental concepts of Machine learning
- Explain the importance of an optimized modeling by Artificial Neural Networks for cognate application areas
- Implement fundamental concepts in an individual programming project
- Explain applications of Artificial Neural Network in academia and in industry
Course: Machine Learning (4 ECTS)
Objective: The major objective of this course is a deeper insight into selected topics of Machine Learning and Artificial Neural Networks, supported by some practical programming exercises.
Instructor(s): Christoph Schommer
⊳ Module 3.2: Selected Topics in Artificial Intelligence
Learning outcomes:
After successful completion of this module the student
should be able to
- Analyze a specific research problem in Artificial Intelligence (AI) and existing ways to tackle it
- Explain and apply corresponding advanced techniques in AI
- Read, analyse, and discuss research papers in AI
- Present and explain research work in AI
Course: Selected Topics in Artificial Intelligence (4 ECTS)
Objective:
The objective of this course is to prepare the student for individual
research work in artificial intelligence, e.g., in the context of a
master thesis. It provides an introduction into current research issues
in artificial intelligence, with a focus on those addressed in the
Interdisciplinary Lab of Intelligent and Adaptive Systems.
Instructor(s): Emil Weydert
⊳ Module 3.3: Cryptography in the Real World
Learning outcomes:
After successful completion of this module the student
should be able to
- analyze and implement the main cryptographic algorithms and protocols.
- explain the vulnerabilities of RSA and how to implement RSA in practice
- list implementation attacks and side-channel attacks and countermeasures.
- Read at least 3 research papers and explain the real-life needs and applications in one of the following topics: 1) mobile and wireless security, 2) anonymity and privacy, 3) malware and botnets, 4) e-banking, e-shopping protocols, 5) secure authentication and e-passports, 6) benefits and limitations of e-payment schemes, 7) side-channel and fault attacks, 8) e-voting.
Course: Cryptography in the Real World (4 ECTS)
Objective: The objective of the course is to to provide an understanding of the main security notions and the main cryptographic algorithms and protocols as they are used in the real world.
Instructor(s): Alex Biryukov, Jean-Sebastien Coron
⊳ Module 3.4: Technical Systems Modeling and Simulation
Learning outcomes:
After successful completion of this module the student
should be able to
- Build mathematical models for dynamics of technical systems derived from basic principles
- Use advanced tools for numeric and symbolic computing
- Apply decomposition, transformation and approximation methods
- Elaborate a case study and present computational results
Course: Technical Systems Modeling and Simulation (4 ECTS)
Objective:
The course objective is to introduce students to modeling-techniques for technical systems and to the
elaboration of case studies using numeric and symbolic computation.
Instructor(s): Juergen Sachau
⊳ Module 3.5: Software Product Line Engineering
Learning outcomes:
After successful completion of this module the student
should be able to
- specify a software product line using either a domain specific modelling notation or a generic modelling notation.
- design a software product line using the commonality and variabilities offered by a software product line platform.
- implement with a specific software product line platform, a variant of the SPL.
- read and present research and technical papers related to software product lines.
- relate the content of a research paper w.r.t. the state of the art in software product lines.
Course: Software Product Line Engineering (4 ECTS)
Objective:
This courses target the mastering of Software Product Lines Engineering. The students will acquire conceptual and practical knowledge for research and development.
Concerning research, he will: acquire the current state of the art in computer science research on engineering software product lines, learn how to find interesting issues and learn how to set a research plan for adressing the issues raised. Concerning development, he will experiment SPL engineering by practicing on a crisis management system product line.
Instructor(s): Nicolas Guelfi
⊳ Module 3.6: Parallel and Grid Computing
Learning outcomes:
After successful completion of this module the student
should be able to
- Identify the key concepts related to parallel computing
- Solve problems using a parallel decomposition
- Use parallel programming platforms, models and frameworks
- Implement algorithms using MPI
Course: Parallel and Grid Computing (4 ECTS)
Objective:
Today, parallel computing is omnipresent across a large spectrum of computing platforms.
At the microscopic level, processor cores have used multiple functional units in concurrent
and pipelined fashions for years, and multiple-core chips are now commonplace with a trend
toward rapidly increasing numbers of cores per chip. At this level, GPU also start to enter the
area. At a more macroscopic level, one can now build clusters of hundreds to thousands of individual (multi-core)
computers. Such distributed-memory systems have become mainstream and affordable in the
form of commodity clusters. Furthermore, advances in network technology and infrastructures
have made it possible to aggregate parallel computing platforms across wide-area networks in
so-called grids.
An efficient exploitation of parallel and distributed platforms requires a deep understanding
of both architecture, software and infrastructure mechanisms and of advanced algorithmic
principles. The aim of this course is thus twofold. It aims at introducing the main trends and
principles in the area of high performance computing infrastructures, illustrated by examples of
the current state of the art. It intends to provide a rigorous yet accessible treatment of parallel
algorithms, including theoretical models of parallel computation, parallel algorithm design
for homogeneous and heterogeneous platforms, complexity and performance analysis, and
fundamental notions of scheduling and work-stealing.
Description:
This lecture is relatively intensive and involves a lot of programming (in C/C++), in particular
on the cluster available at the University of Luxembourg. Therefore, before this
lecture, a few sessions will be dedicated to ensuring a sufficient level of programming in those
languages.
Instructor(s): Pascal Bouvry
⊳ Module 3.7: Computational Statistics
Learning outcomes:
After successful completion of this module the student
should be able to
- Recognise data analysis and graphics problems that may be efficiently solved with the help of the R resource.
- Handle efficiently large statistical data sets
- Compute statistical results for data analysis case studies
- Construct print-ready and interactive graphics for data exploration case studies
- Design and implement data analysis algorithms and graphics in the R language
Course: Computational Statistics (4 ECTS)
Objective: The objective of this course is to introduce the students to the R language and environment for statistical computing and graphics (a GNU project). In particular, the course proposes effective data handling and storage solutions as well as useful operators for calculations on arrays, in particular matrices. A selected collection of intermediate tools for data analysis, graphical facilities for data analysis and display either on-screen or on hardcopy will be illustrated from examples of statistical analyses. Finally, the course will by the way familiarise the students with a well-developed, simple and effective programming language which includes conditionals, loops, user-defined recursive functions and input and output facilities.
Instructor(s): Raymond Bisdorff
⊳ Module 3.8: Open Network Security
Learning outcomes:
After successful completion of this module the student
should be able to
- Master the epidemiological models for malware propagation
- Assess the security of networks and software systems.
- Explain the techniques for worm containment and detection.
- List statistical and machine learning approaches for network trafic monitoring
Course: Open Network Security (4 ECTS)
Objective: The objective of this course is to introduce students to the approaches for assessing the security of network and software systems as well as to mathematical modeling of malware and worm activities.
Instructor(s): Radu State
⊳ Module 3.9: Ubiquitous Computing
Learning outcomes:
After successful completion of this module the student
should be able to
- Determine and examine useful information sources
- Analyse and assess the relevance of scientific articles
- Break down core ideas and contributions presented in those articles
- Integrate those core ideas into a coherent view
- Summarise the most important aspects in a concise report
- Prepare and conduct a presentation embracing those important aspects
- Justify the findings during a scientific discussion
Course: Ubiquitous Computing (4 ECTS)
Objective: In this seminar, students will be prepared for scientific research. They will develop the ability to analyse a topic, extract knowledge from articles and books, finally communicating that knowledge in a clear and concise fashion both in terms of a presentation as well as a detailed report.
Description: Each student individually explores some well-defined topic in the realm of mobile and ubiquitous computing. Coached by the supervisors, students need to identify proper information sources and select the most relevant publications. They must analyse and synthesise the core ideas. In a presentation, students will demonstrate the knowledge gathered together with their analysis, followed by a discussion. A final report will summarise the entire work.
Instructor(s): Steffen Rothkugel
⊳ Module 3.10: Coding Theory
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Coding Theory (4 ECTS)
Objective:
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.
Instructor(s): Ulrich Sorger
⊳ Module 3.11: Game theory
Learning outcomes:
After successful completion of this module the student
should be able to
- Identify features of scenarios involving multiple interacting components: cooperative vs. non-cooperative, adversary vs. non-zero-sum, perfect vs. imperfect vs. incomplete information, etc.
- Construct an appropriate game model and identify solution concepts that can be used to ``solve'' the game.
- Use automated tools to obtain predictions and/or verify formal properties of the system which has been modeled.
- Elaborate a chosen topic, give a presentation, and prepare a written report on it.
Course: Game theory (4 ECTS)
Objective:
The objective of this course is to introduce students to the mathematical theory of interaction, with a focus on the computational side of the models. The students will learn a number of models and methodologies for strategic interaction of autonomous entities, be it humans, robots, computer programs, etc. They will also learn how such models can be used to compute predictions and support verification of natural properties of computational systems.
Game theory proposes and studies mathematical models of behaviour of individuals and their groups in strategic situations, in which one's success in making choices depends on the choices of others. It is used in social science, economics, biology, engineering, political science, international relations, computer science, and philosophy.
Instructor(s): Wojtek Jamroga, Leon van der Torre
⊳ Module 3.12: Empirical Software Engineering
Learning outcomes:
After successful completion of this module the student
should be able to
- propose testable theories
- define a rigorous experimental protocol
- use and manipulate the main mathematical analysis tools
- carry out empirical research at various levels (surveys, controlled experiments etc.)
- analyse the limits of a study and explain the threats to validity of an empirical study
Course: Empirical Software Engineering (4 ECTS)
Objective:
Empirical Software Engineering aims at defining rigorous empirical
protocols and conducting studies for evaluating and comparing software
engineering methods, techniques and tools. Applying a rigorous
scientific method is crucial for improving research works and
industrial practices. It implies that the results are qualified and
the threats to validity described: results from an evaluation or
comparison are then useful since they delimit the value of a certain
method for a given usage in a given context.
Empirical Software Engineering is the tool used to
determine how to improve the way software is developed for research
issues as well as for process improvement in companies. Different types
of empirical studies can be applied, from controlled lab experiments
to full case studies or surveys. The empirical study perimeter depends
on the objective of the study (from fine-grained analysis to overall
trends) and on the parameters which can be controlled with a limited
bias.
Instructor(s): Yves Le Traon, Eric Ras
⊳ Module 3.13: Selected Topics in Software Construction
Learning outcomes:
After successful completion of this module the student
should be able to
- propose testable theories
- have a critical viewpoint on the state of the practice and emerging research in software engineering
- make an active technological watch on emerging domains of software engineering
Course: Selected Topics in Software Construction (4 ECTS)
Objective: This course aims at familiarizing students with advanced techniques used in the construction of large software systems.
Instructor(s): Yves Le Traon
⊳ Module 3.14: Testing and Validation
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Testing and Validation (4 ECTS)
Objective:
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). 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).
Instructor(s): Yves Le Traon
⊳ Module 3.15: Stochastic Models in Intrusion Detection Systems
Learning outcomes:
After successful completion of this module the student
should be able to
- Describe the basic ideas behind the stochastic approach to intrusion detection and the most efficient methods of intrusion detection
- Measure user or system behavior and create the profile by introducing some relevant parameters, like intensity of activity, logins, etc.
- Compare the coherence between the current and the stored profile and determine the threshold value for the decision (alarm)
- Detect abnormalities in Network traffic by statistical analysis of data flows
Course: Stochastic Models in Intrusion Detection Systems (4 ECTS)
Objective: The objective of this course is to introduce students to stochastic methods of detecting inappropriate, incorrect, or anomalous activities targeted at computers and networking resources.
Description: The first part of the course concerns host-based Intrusion Detection (ID) systems - ID systems that operate on a host to detect malicious activity on that host. The second part concerns Network-based ID systems, i.e., ID systems that operate on Network data flows. Both parts of the course contain necessary mathematical tools - basics on probability, elements of statistical inference, data smoothing technics, Markov chains and Bayesian methods. The host based ID contains, in particular, methods of detecting masqueraders - method of uniqueness, Bayes one-step Markov, hybrid multi-step Markov, and the method of compression. Network ID contains an overview of supervised and unsupervised network anomaly ID techniques, feature extraction and analysis, method of outliers detection, and portscan detection using sequential hypothesis testing.
Instructor(s): Zdzislaw Suchanecki
⊳ Module 3.16: Intelligent Agents II
Learning outcomes:
After successful completion of this module the student
should be able to
- 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.
Course: Intelligent Agents II (4 ECTS)
Objective:
The objective of this course is to introduce students to formal methods
of collective reasoning used in multiagent systems.
Instructor(s): Leon van der Torre
⊳ Module 3.17: Estimation and Detection
Learning outcomes:
After successful completion of this module the student
should be able to
- Appreciate the need to estimate parameters and comprehend the applications of statistical decision theory in detecting signals
- Differentiate between classical and Bayesian approaches to estimation and describe fundamental properties of estimators
- Classify a detection problem and derive the appropriate detection method according to the statistics of the problem
- Implement simple estimators/ detectors and evaluate their performance
Course: Estimation and Detection (4 ECTS)
Objective: The course motivates the need to detect signals and/ or estimate their parameters through various practical examples.
Description:
The course begins with classical estimation where estimators are defined and their properties (minimum variance, unbiased) are described. A method for selecting the best estimator in terms of performance (Cramer-Rao Bound) is then derived and the well-known Linear and Maximum Likelihood estimators are discussed. The Bayesian approach to estimation theory will also be explored. Subsequently, the application of statistical decision theory in signal detection is explained. The different approaches (classical, Bayesian) of dealing with simple hypothesis testing are discussed. Those principles are then applied to the detection of deterministic (matched filters) and random signals (estimator-correlator).
A short introduction to necessary concepts from Stochastic Processes and Linear Algebra would be given at the beginning. Some of the estimators/ detectors will be implemented to get a hands-on experience.
Text Book : Steven M Kay, Fundamentals of Statistical Signal Processing, Vol – I Estimation theory, Vol – II Detection Theory, Prentice Hall.
Instructor(s): Bjorn Ottersten
⊳ Module 3.18: Advanced Project Management
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Advanced Project Management (3 ECTS)
Objective: The objective of this course is to familiarize students with advanced techniques for project management, both in theory and in practice.
Instructor(s): Sergio Coronado
⊳ Module 3.19: Intellectual Property
Learning outcomes:
After successful completion of this module the student
should be able to
- Explain in what sense intellectual property is an asset for a company
- Differentiate between patents, trademarks and copyright
- Compare different types of licences
Course: Intellectual Property (3 ECTS)
Objective: The objective of the course is to promote greater awareness of intellectual property as one of the most important assets of a company in the global market environment.
Instructor(s): Pierre Kihn
⊳ Module 3.20: Non-/Cooperative Information Routing
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Non-/Cooperative Information Routing (4 ECTS)
Objective: The objective of this course is an elaborated, active understanding of distributed vs. centralized communication security concepts and its application to cooperative environments
Instructor(s): Thomas Engel
⊳ Module 3.21: Security Modeling
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
Course: Security Modeling (4 ECTS)
Objective:
The objective of the course is to provide an overview of techniques
to model the security of systems. We will study topics from more
traditional domains (e.g. non-interference, access control,
multi-level security, database security, security assessment based on
attack trees), as well as emerging trends (e.g. quantum crypto, trust
networks, the Internet of things).
Instructor(s): Sjouke Mauw, Peter Ryan
⊳ Module 3.22: Management of Information Security
Learning outcomes:
After successful completion of this module the student
should be able to
- List typical tasks of a information security manager.
- Explain the standard approach to managing security (ISO 27001).
- Explain basics of information risk management (ISO 27005), like asset valuation, impact and occurrence assessment, risk treatment plans, risk acceptance.
- Apply a fast risk assessment method (by ENISA) to a small virtual organisation.
- Compare different approaches for risk assessment.
- Assess metrics to measure security (ISO 27004) and tactics to implement security (ISO 27003).
- Recognise practical aspects of an Information security policy, including incident management, business continuity management, asset classification, awareness rising.
- Propose an information security policy for a small organisation.
Course: Management of Information Security (4 ECTS)
Objective: The objective of this course is to prepare students to start a practical experience as Information Security Officer and to assume such responsibility in his future professional activities. The student will understand that her/his work consists mainly in the planning, coaching, designing of solutions and convincing both senior management and information users on the needs and effectiveness of security.
Instructor(s): Carlo Harpes
⊳ Module 3.23: Security Protocols
Learning outcomes:
After successful completion of this module the student
should be able to
- List standard protocol requirements for a number of application domains
- Formalize security protocols and requirements
- Describe the impact of the adversary model, the execution model and the communication model on the security of a protocol
- Manually verify basic protocols
- Apply standard tools for automatic verification of security protocols
- Given a set of cryptographic primitives, design a security protocol that satisfies one or more standard requirements
Course: Security Protocols (4 ECTS)
Objective:
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.
Instructor(s): Sjouke Mauw, Peter Ryan
⊳ Module 3.24: Model-Driven Software Development
Learning outcomes:
After successful completion of this module the student
should be able to
- 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
- Read and present research papers in the area
Course: Model-Driven Software Development (4 ECTS)
Objective: 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.
Instructor(s): Pierre Kelsen








