Programme

The first year will cover the following core fundamentals:
– Basic Mathematical Methods and Statistics
– Software Engineering
– Parallel Programming
– Computer Architecture
After the fundamental courses, students will follow up on a specialisation.
Academic Contents
Course offer for Semestre 1 (2024-2025 Winter)
-
Details
- Course title: Intelligent Systems – Agents and Reasoning
- Number of ECTS: 3
- Course code: MICS2-36
- Module(s): 1.1 Mathematics and statistics
- Language: EN
- Mandatory: No
-
Objectives
The objective of this course is to provide a solid foundation in intelligent systems, with a focus on symbolic techniques for structured knowledge representation and agent reasoning.
-
Course learning outcomes
By the end of the course, students will be able to:• Understand the central role of logical formalisms in knowledge-based systems.• Differentiate between syntactical and semantical concepts of logical systems.• Understand key model-theoretic concepts, e.g., interpretations, validity, and satisfiability.• Understand proof-theoretic concepts such as proof calculi, soundness, and completeness.• Define and use classical propositional logic (PL) and classical first-order logic (FOL) to represent facts and properties.• Apply software to model reasoning problems, e.g., model generation using IDP3. -
Description
The topics of the course are as follows:- Semantics vs. proofs- Propositional logic: Syntax and semantics- First-order logic: Syntax and semantics- Proof calculi, soundness and completeness- Modelling natural language in formal 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): 1.1 Mathematics and statistics
- Language: EN
- Mandatory: Yes
-
Objectives
This course introduces Machine Learning (ML) fundamental principles and its three main learning paradigms (supervised, unsupervised, and reinforcement learning). For each learning paradigm, it presents some of its most typical foundational models and discuss them from the perspective of representation, evaluation, and optimization. A special attention is given to a basic introduction into deep learning techniques and learning theory. The course mixes theoretical concepts with practical experience in implementing various ML models.
-
Course learning outcomes
At the end of the course the student will be able to:
differentiate the terms of Artificial Intelligence, Machine Learning, and Deep Learning.
describe the differences among all three main Machine Learning paradigms: supervised, unsupervised, and reinforcement learning.
determine which of the three ML paradigms is appropriate to a particular problem domain.
derive, implement, and evaluate some of the most typical Machine Learning models.
derive, implement, and evaluate some simple deep learning models and their learning algorithms.
apply Machine Learning models to real-world problems.
evaluate the performance of a simple learning system on a real-world dataset.
characterize the state of the art in learning theory, including its achievements and its shortcomings. -
Description
The following topics are covered in the course:Basics – ML Introduction & Data preparation Supervised Learning – Regression Supervised Learning – Classification Unsupervised Learning – Dimensionality reduction & 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, 2006
Goodfellow, I., Bengio, Y. & Courville, A.: Deep Learning, 2016
Sutton, R., Barto, A.: Reinforcement Learning: An Introduction, second edition, 2018
Hastie, T, Tibshirani, R. & Friedman, J.: The Elements of Statistical Learning, 2009
Zhang, A., Smola, A.J., Lipton, Z., Li, M.: Dive into Deep Learning, 2023
-
Details
- Course title: Intelligent Systems – Problem Solving
- Number of ECTS: 3
- Course code: MICS2-38
- Module(s): 1.1 Mathematics and statistics
- Language: EN
- Mandatory: No
-
Objectives
The objective of this lecture first consists in providing a structured approach to students in terms of optimization problem modeling. Next various solving techniques based on exact methods (A*, 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: Distributed Systems
- Number of ECTS: 3
- Course code: MICS2-2
- Module(s): 1.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Objectives
The objective of the course is to provide an overview of the area of distributed systems with a focus on distributed algorithms. After successful completion of this course the student should be able to: • Identify and explain the following concepts related to distributed systems: network topology, communication models, operation mode, failure model, scalability, complexity • Explain the role and importance of distribution in a selection of related domains, e.g., mutual exclusion, fault tolerance Can list the relevant assumptions and requirements for each of these domains • Understands the operation of the basic algorithms in each of these domains • Can reason about the basic properties of these algorithms
-
Course learning outcomes
* Identify and explain the following concepts related to distributed systems: network topology, communication models, operation mode, failure model, scalability, complexity* Explain the role and importance of distribution in a selection of domains: mutual exclusion, self-stabilizing systems, disbributed snapshot, termination detection, leader election, consensus, fault tolerance* List the relevant assumptions and requirements for each of these domains* Explain the operation of the basic algorithms in each of these domains* Analyze the basic properties of these algorithms -
Description
distributed systems. In details, it contains the following topics:• Mutual exclusion• Self-stabilizing systems• Distributed snapshot• Termination detection• Leader election• Consensus in distributed systems• Fault tolerance • Graph Algorithms -
Assessment
Assessment
20% on (biweekly) assignments (4 points) and 80% on a written exam (16 points)
Retake
100% on a written exam (20 points)
-
Details
- Course title: GPU Programming
- Number of ECTS: 4
- Course code: F1_MA_HPC_1-3
- Module(s): 1.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Objectives
Graphical processing units (GPUs) are now commonly used for general-purpose programming, well beyond the scope of graphics programming. The success of artificial intelligence applications, in particular deep neural network, is primarily due to the massive parallelism offered by GPUs. In this course, we go behind the scene of GPUs; we will not only be using them, but also programming them. We provide a comprehensive coverage of the programming model and techniques relevant to GPU programming using the CUDA framework. We also discuss advanced topics including the PTX consistency model, optimizations in CUDA and a new type of hardware called intelligence processing units (IPUs).
-
Course learning outcomes
The ability to program, debug and profile CUDA applications. The understanding of the CUDA programming model, in particular the concepts of memory hierarchy, threads, warps, blocks and grid. -
Description
1. C++ programming language (C++11 and above)2. Hierarchy of computations: thread, block and grid.3. Hierarchy of memory.4. CUDA libraries.5. Warp and scheduling.6. CUDA Debugging and Profiling.7. Case studies: magnetic resonance imaging, deep learning, molecular dynamics application.8. PTX consistency model.9. An introduction to IPU -
Assessment
20% assignments, 80% final exam.
-
Details
- Course title: Parallel and Grid Computing
- Number of ECTS: 4
- Course code: MICS-COMMSYST-024
- Module(s): 1.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
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: Reliable software-intensive systems
- Number of ECTS: 3
- Course code: MICS2-47
- Module(s): 1.3 Computer Architecture
- Language: EN
- Mandatory: No
-
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 systemsUnderstand what model-driven software engineering for dependable embedded systems entailsBe able to assess the dependability with analytical modelsUnderstand when formal methods are appropriate verification techniques and what to expect from them. Get to know industrial applications of formal methods and existing toolsLearn how to implement fault-tolerance mechanisms to increase the robustness of an applicationGet insights into how machine learning may reshape the design and verification of software-intensive systemsUnderstand 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.
-
Details
- Course title: Networking
- Number of ECTS: 3
- Course code: MICS2-8
- Module(s): 1.3 Computer Architecture
- Language: EN
- Mandatory: Yes
-
Objectives
Split into two parts, part (A) will introduce fundamental aspects of generic mathematical networks (graphs), usually summarized as network science, and not limited to computer networking, but also applicable to networks in social media, machine learning (artificial neural networks), road traffic and vehicle communication, cryptocurrency transactions, energy transport, biology, citation networks and many more.Part (B) will explain model fundamentals of quantum networking, from basic qubit notations, Bell states, entanglements, 2-qubit gates, until quantum repeaters using entanglement swapping for multi-hop quantum communication networks.
-
Course learning outcomes
At the end of the course, students will be able to identify and apply suitable models and graph representations with related graph metrics to analyse practical networked scenarios, and reason about most efficient application of (network centrality) metrics. Students will understand power and limits of end-to-end concepts of quantum networking applied to distributed communication scenarios including entanglement swapping. -
Description
Part (A): Eigenvectors and eigenvalues, adjacency matrix, hypergraphs and bipartite networks, trees and planar networks, degrees, paths and components, graph Laplacian.Part (B): Introduction to quantum networking, scalar product, unitary matrices, Hadamard transformation, 2-qubits, entanglements, manipulation of qubits, introduction to gates, example 2-qubit gates (CNOT, Pauly, swap), no-cloning theorem, Bell states and Bell measurements, quantum repeater and entanglement swapping, fundamental experiments like Mach-Zehnder interferometer. -
Assessment
combined (continuous and end-of-course) 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: Philosophy & Ethics of AI
- Number of ECTS: 4
- Course code: MAPR-57
- Module(s): 1.4 Transversal Skills
- Language:
- Mandatory: Yes
-
Course learning outcomes
By the end of the course, students should have sufficient understanding both of core philosophical concepts and also the technical details of AI technology, that they can precisely articulate ethical/philosophical problems and theories but also propose realistic possible solutions that take technological and computational constraints into account. There will be an emphasis on group work and on collaboration between philosophers and computer scientists on a course project.By the end of this course students should have acquired a basic grounding in philosophy and normative ethics, but also a detailed understanding of recent developments in A.I. technology. The aim will be to provide students with the conceptual tools to be comfortable working in an inter-disciplinary manner. Students will develop critical and communicative skills by engaging with literature and topics from both philosophy and computer science. The emphasis in this course will be on developing the ability to collaborate across disciplines so as to explore and provide possible solutions to philosophical and ethical problems that are generated by Artificial Intelligence. -
Description
Advances in computing technology, especially in Artificial Intelligence, raise the very real prospect of imminent, radical changes to everyday human life: e.g. in employment, healthcare, military conflicts, privacy, education, legal processes and institutions, etc. Trying to work out the ethical implications of these changes is surely one of the most pressing questions that humanity currently faces. AI and related technologies also raise profound philosophical questions concerning the nature of the mental, intelligence, rationality and knowledge.In this course we will try to approach some of these ethical and philosophical questions from an inter-disciplinary perspective. The course will be taught by faculty members from both the Philosophy and Computer Science departments and is open to students studying either the Masters in Contemporary European Philosophy or the Masters in Information and Computer Science. -
Assessment
Short Mid-Term Essay (c. 2000 words): 20%Short Homework Exercises: 20%Final Group Project: 60%
-
Details
- Course title: Introduction to HPC research
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-4
- Module(s): 1.4 Transversal Skills
- Language: EN
- Mandatory: Yes
-
Objectives
The course aims to introduce students to a range of emergent High Performance Computing (HPC) research topics by reviewing HPC system design, parallelization technologies, workflow optimization and HPC computing for Big Data. Students will acquire the knowledge and competencies necessary for conducting literature review and discussing the significance of findings, work collaboratively and enhance presentation skills.
-
Course learning outcomes
In this course, students will develop a comprehensive understanding of cutting-edge topics in High Performance Computing (HPC). They will refine their research skills, encompassing the ability to critically review, analyse, and synthesise scientific literature pertaining to HPC. Additionally, students will work on enhancing their proficiency in oral and written communication, enabling them to effectively present and document their research findings within the subject of HPC -
Description
This course is designed to provide students with a comprehensive overview of the latest developments in the field of High Performance Computing (HPC), covering both HPC platform research and HPC applications. In the realm of HPC platform research, students will engage with strategic topics as reflected in the influential TOP500 list. The course will delve into HPC system design and strategic multi-site HPC techniques. Furthermore, the course will address the fundamental task graph problem and its associated scheduling methods, providing students with essential knowledge for understanding the challenge and potential techniques. The course will also explore HPC application research, focusing on areas of paramount importance in contemporary computational endeavours. Students will delve into data flow application frameworks, which play a pivotal role in optimizing data processing within HPC environments. The course will also navigate the rapidly evolving landscape of HPC for Deep Learning applications, equipping students with the ability to evaluate and gain insights into the performance of deep learning algorithms in HPC settings. Lastly, students will tackle sparse computation on HPC systems, recognizing its increasing significance in meeting the demands of modern applications. In summary, this comprehensive course equips students with a well-rounded understanding of both HPC platforms (TOP500 HPC hardware trends, distributed accelerators programming, multi-site HPC, task graph scheduling) and applications (data flow applications frameworks, HPC Deep Learning benchmarks, sparse computation on HPC). This knowledge empowers them to address cutting-edge research challenges and real-world problems in the field of HPC with confidence and expertise. -
Assessment
50% coursework 50% exam
To successfully complete this course, students must achieve a passing grade of 50% or higher on overall course and 50% or higher on the final exam.
Course offer for Semestre 2 (2024-2025 Summer)
-
Details
- Course title: Introduction to Deep Learning
- Number of ECTS: 5
- Course code: MICS2-66
- Module(s): 2.1 Artificial Intelligence
- Language: EN
- Mandatory: No
-
Objectives
This course provides students with a high-quality and informed understanding of Deep Learning (DL) models for developing AI-based applications. The course promotes problem solving via design thinking philosophy. The course helps students to develop state-of-the-art competencies to solve many different real-world problems using DL. The course will provide students with a competitive advantage to solve challenging research problems that require dealing with complex search spaces, non-linear relationships within the data, and flexible models that can scale up to thousands or millions of observations. These competencies are also of key importance to many industrial and technological companies. Finally, the course also promotes development of soft skills such as written and verbal communication skills, via final project presentations.
-
Course learning outcomes
* Knowledge of foundational building blocks in DL.* Understanding of DL models and their applications.* Ability to formulate and solve problems using DL. -
Description
1. 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: Big Data Analytics
- Number of ECTS: 5
- Course code: MICS2-41
- Module(s): 2.2 Parallel programming
- Language: EN
- Mandatory: No
-
Objectives
The lecture provides an entry point to large-scale data management and distributed computing principles in recent NoSQL architectures. We start with an overview of distributed file systems and MapReduce in Apache Hadoop and then move on to more advanced analytical tasks based on the machine-learning libraries in Apache Spark. The lecture serves as an ideal basis for further topics in this area (such as Master seminars, projects and theses).
-
Course learning outcomes
– Students become familiar with the usage of recent Big Data platforms such as Apache Hadoop and Spark- Student obtain an overview of both the theoretical foundations and practical applications of various Big Data and Machine Learning algorithms- Students learn how to approach and solve different data-analysis tasks by a number of programming exercises with real-world datasets -
Description
The course consists of a combination of theory-oriented lectures and practical exercises, through which the students are guided by a series of real-world use cases and hands-on examples. Specifically, we focus on the following topics:- Distributed File Systems (DFS) and MapReduce in Apache Hadoop- Resilient Distributed Data (RDD) objects and DataFrames in Apache Spark- Implementation of complex DataFlow programs in Spark using Scala- Performing advanced analytical tasks in Spark’s MLlib: o Distributed clustering and classification of objects o Decision trees and random forests o Recommender systems via matrix factorization o Text analysis via latent semantic indexing o Geospatial data analysis o Social-network analysis -
Assessment
Practical exercises: 50%Final written exam: 50%
-
Details
- Course title: HPC Algorithm Design & Verification with TLA+
- Number of ECTS: 5
- Course code: F1_MA_HPC_2-1
- Module(s): 2.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Objectives
The objective of this semester-long course on HPC algorithm design and formal verification with TLA+ (see description) is to equip students with a comprehensive understanding of designing HPC algorithms and validating their correctness through formal verification methods. Utilizing TLA+ as a design and verification tool, the course aims to cultivate skills essential for optimal HPC performance, resource efficiency, and software reliability.
The course will offer a practical approach (
70% design, 20% verification, 10% basics and abstraction)
through lectures, hands-on labs, and a practical project, providing students with a unique skill set valuable in both research and industry sectors.
-
Course learning outcomes
By the end of this course, students will be able to:
1. Understand core concepts (10%): Demonstrate a solid understanding of the fundamental mathematical and computational principles underlying HPC algorithmic design and formal verification with TLA+, including propositional logic, sets, predicate logic, safety, liveness, and fairness.
2. Design HPC algorithms with TLA+ (70%): Apply principles of parallelism and resource optimization to design efficient algorithms suitable for HPC applications. Use TLA+ effectively for specifying, modeling, and verifying concurrent and parallel HPC algorithms and distributed systems.
3. Perform formal verification with TLA+ (20%): Apply formal verification techniques to ensure the correctness, efficiency, and reliability of the TLA+ design specifications for HPC algorithms.
These outcomes ensure that students will not only acquire theoretical knowledge but also gain practical skills, making them highly valuable in research and industrial settings, such as:
1. Practical skills: Complete a practical project that integrates algorithm design and formal verification, demonstrating competency in both theory and application, as applied to HPC algorithms.
2. Teamwork and collaboration: Work effectively in groups, particularly in lab settings and project work, to tackle complex problems related to HPC algorithm design and formal verification.
3. Career preparedness: Understand the industry relevance of HPC algorithm design and formal verification, including their applicability in scientific computing, data analytics, and more.
-
Description
Motivation: High-performance computing (HPC) algorithms need to be carefully crafted to exploit parallelism, minimize communication overhead, and make efficient use of resources such as multicore processors and accelerators. Moreover, in HPC, errors can lead to significant consequences, from inaccurate results in scientific simulations to security breaches in sensitive computations. Algorithm design skills empower practitioners to create computational solutions that scale with the demands of complex simulations, scientific modeling, data analytics, and more. Formal verification skills enable researchers/engineers to provide strong evidence of correctness and reliability in HPC applications, enhancing the credibility of their work. TLA+ (Temporal Logic of Actions) is a formal specification language and model-checking tool used for designing and verifying concurrent algorithms and distributed systems. It is built upon simple mathematical concepts (such as propositional logic, sets, predicate logic) that allow for precise specification and reasoning about system behavior. The course is based on the book “Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers” by Leslie Lamport, which offers a thorough guide to using TLA+ for various design and verification tasks. Below are some design and verification topics this course will discuss (HPC algorithms are systems): Design Topics1. Introduction to TLA+ and formal specifications: Basics and motivations for using TLA+.2. Temporal logic fundamentals: Understanding the TLA+ way of describing system behavior over time.3. State machines and transitions: Modeling system states and transitions using TLA+.4. Concurrency: Using TLA+ to model concurrent systems.5. Deadlock and liveness: Ensuring that a system eventually performs some action.6. Safety and invariance: Ensuring that bad things don’t happen during system operation.7. Debugging and counterexamples: Using TLA+ and its tools to find and understand errors in system designs. Verification Topics1. Model checking with TLC: Introduction to the TLC model checker and how to use it for verifying TLA+ specifications.2. Invariant properties: Using TLA+ to express and verify invariants in a system.3. Temporal properties: How to verify properties that span across different states or points in time.4. Liveness verification: Ensuring that good things eventually happen in a system. -
Assessment
40% team-based project (80% design specification, 20% verification)
20% project individual contribution presentation (5 slides, 1 minute per slide, and 1 page abstract discussing main design ideas)
30% three equal graded laboratories
10% active class participation -
Note
Literature: Books, papers, tutorials from the TLA+ home page https://lamport.azurewebsites.net/tla/tla.html
-
Details
- Course title: HPC Software Environment
- Number of ECTS: 5
- Course code: F1_MA_HPC_2-3
- Module(s): 2.2 Parallel programming
- Language: EN
- Mandatory: Yes
-
Objectives
This course aims to provide students with a comprehensive understanding of the software environment used in High Performance Computing (HPC) from the perspective of application developers and users. It covers aspects related to application development, software deployment and execution of HPC workflows.
-
Course learning outcomes
By the end of the course, students will be able to:Effectively use the HPC platformExecute applications and complex workflows reliablyCompile, debug and optimise applicationsInstall, deploy and test software on HPCUnderstand the integration of HPC with cloud computing -
Description
This comprehensive course provides you with the knowledge and skills to effectively use HPC systems. It delves into the intricacies of the HPC software environment, to master the art of developing applications and deploying software focusing on the specifics of HPC platforms. It describes the key techniques for efficiently designing and executing complex HPC workflows and robust job campaigns. It explores the use of HPC containers and examines the convergence of HPC workload with cloud computing platforms. It is designed to provide a broad overview, but also an advanced practical insight into the techniques for creating the next generation of HPC power users. – HPC platform and command line environment- Compilation, debugging and profiling on HPC- Software installation on HPC- Testing, CD/CI and testing for HPC- Containers on HPC- HPC & Cloud Computing- Complex HPC jobs- Job campaign, workflow and reproducibility -
Assessment
Final examduring the exam period (30%)Continuous evaluation (assignments, project and presentation)(70%) -
Note
Students’ laptop required
-
Details
- Course title: High Performance Computer Architecture
- Number of ECTS: 5
- Course code: F1_MA_HPC_2-2
- Module(s): 2.3 Computer Architectures
- Language: EN
- Mandatory: Yes
-
Objectives
Since ~2005, all new microprocessor development for high performance applications have been geared towards multicore and multiprocessor architectures because of the end of the possibility to scale single processor performance further. Another trend that has appeared is the increasingly wide vector units and accelerators such as GPUs. It has thus been important that software be able to expose both thread-level parallelism as well as data-level parallelism.This course studies the hardware architectures that power modern day supercomputers and how software needs to interact with the architecture to achieve high performance
-
Course learning outcomes
After completion of the course the student should be able to:Knowledge and understandingdescribe current approaches to high-performance computingexplain the design and function of microprocessors with parallel computational pipelines and dynamic scheduling of instructions,explain the design and function of a memory hierarchy for the above-mentioned microprocessor,explain the design principles of the hardware support for a shared memory programming model,describe the implementation of different models of thread-level and data-level parallelism, such as core multithreading, many-core processors, vector units or GPU.Competence and skillsanalyse execution of single-threaded programs, identify performance bottlenecks and propose improvements,design and implement a simple parallel program with shared memory and explain its performance on a certain processor architecture with multiple cores,implement synchronisation methods for shared memory parallel computersJudgement and approachuse appropriate methods to analyse and evaluate performance,analyse the trade-offs of different approaches to high performance computing in terms of function, performance, cost, and energy consumption -
Description
The course will cover the following topics:Quantitative principles of computer architecturePerformance metricsEnergy consumption metricsThe processor performance equationAmdahl’s lawHigh-performance architecturesISA designMemory hierarchiesInstruction-level parallelismDynamic instruction schedulingBranch prediction Vector unitsShared-memory multiprocessor architecturesCache-coherenceArchitecture support for atomic operations and synchronisation primitivesMemory consistency modelsSynchronisation overheadFalse sharingLoad balancing Mapping shared memory programming models (e.g. OpenMP) to hardwareDistributed-memory multiprocessor architecturesOn-chip networksDistributed memory cache coherenceHigh-performance interconnection networksAccelerator architectures GPU architectureDomain specific architectures -
Assessment
final written exam (40%)
laboratory exercises (40%)
Study and presentation of a research paper or computer architecture in group (20%) -
Note
Student’s laptop required
-
Details
- Course title: Principles of Security Engineering
- Number of ECTS: 5
- Course code: MICS2-24
- Module(s): 2.3 Computer Architectures
- Language: EN
- Mandatory: No
-
Objectives
This course aims at teaching students the fundamental principles of engineering secure systems.More specifically the goals are:- to give a broad understanding of how secure systems are designed and evaluated.- to explain key security concepts and mechanisms as well as pitfalls.- to describe how systems are attacked and defended: typical threats, vulnerabilities and counter-measures.- to take a “system-based” approach, i.e. to take account of the whole system rather than just the technical, e.g. crypto algorithms and protocols
-
Course learning outcomes
* Evaluate security systems and identify their vulnerabilities* Propose countermeasures to vulnerabilities and attacks* Evaluate security requirements -
Description
Intro (concepts, principles)Policies and models (access control etc)Information flow (enforceable policies)Socio-technical aspects.Physical security, locks, tamper resistance/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): 2.3 Computer Architectures
- Language: EN
- Mandatory: No
-
Objectives
The objective of this course is to introduce quantitative measures for network performance (like throughput, error correction, delays, routing) for different network topologies 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: Microkernel Based Systems
- Number of ECTS: 5
- Course code: MICS2-57
- Module(s): 2.3 Computer Architectures
- Language: EN
- Mandatory: No
-
Objectives
The main framework is a series of lectures with 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 %
Course offer for Semestre 3 (2024-2025 Winter)
-
Details
- Course title: FPGA Programming
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-5
- Module(s): 3.1 Accelerator Programming
- Language: EN
- Mandatory: Yes
-
Objectives
Discovering hardware programming through field-programmable gate array (FPGA)
-
Course learning outcomes
Introduction to FPGA hardware
The role of FPGA in High-Performance Computing
Register Transfer Level Synthesis with VHDL
High Level Synthesis with C/C++ and OpenCL -
Description
The course will first introduce some basic fundamentals that are required to understand FPGAs : Logic Gate, Finite State Machines, Hardware Description Languages (such as VHDL), Simulation and Synthesis tools (AMD Vivado), and Register Transfer Level (RTL) synthesis of hardware.Then some exercises will be proposed using the Digilent Basys3 platform, such as traffic light controller, digital watch …The second part will be dedicated to High Level Synthesis from C/C++ languages, using AMD Vitis compiler. Here again the course will be oriented to practical work (examples and exercises like Fast Fourier Transform). Finally, a brief introduction to OpenCL framework (multi-platform programming) will be proposed -
Assessment
2 / 3 of the final grade Semester works (mini projects) and 1 / 3 final written exam -
Note
Student’s PC required
-
Details
- Course title: Introduction to Quantum Computing
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-6
- Module(s): 3.1 Accelerator Programming
- Language: EN
- Mandatory: Yes
-
Objectives
Quantum Computing is a completely new paradigm that has the tremendous potential to complement our Classical Computing in solving intractable problems in business, climate change and society. As it requires a new way of thinking, innovative students and professionals should invest in developing skills around Quantum Computing. This is a matter of being prepared to take the lead tomorrow. Next, Quantum Computing is multi-disciplinary, and that makes it an extremely interesting domain full of intellectual challenges, research opportunities and learning satisfaction. Last, taking into account the rapid pace at which Quantum Computing is evolving in all its aspects, from hardware over algorithms to potential use cases, justifies and allows investment in study and practice efforts already today.
-
Course learning outcomes
Introduction to the concepts, demonstrationsExercises with Quantum ComposerLinking Qubits and Quantum Gateswith Vectors and MatricesQiskit ExercisesLinking Qubits and Quantum Gateswith Vectors and Matrices Qiskit ExercisesExplanations, demonstrations, exercisesExercise on Quantum Machine Learning -
Description
Quantum Computing, a Holistic OverviewCircuits, hardware, use cases, ecosystem,market, research, disciplinesLinear Algebra for Quantum ComputingFirst Quantum Algorithm (Teleportation)Famous Quantum Algorithms: Shor,Groover, Bernstein-Vazirani, …Quantum ApplicationsSimulations, Optimization, Finance,Computational Fluid DynamicsQuantum Machine Learning (QML)Learning more about QuantumComputingCareers in Quantum Computing) -
Assessment
50% Student’s projects + 50% final exam during the exam period. -
Note
Student’s PC required
-
Details
- Course title: Lattice Theory for Parallel Programming
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-7
- Module(s): 3.1 Accelerator Programming
- Language: EN
- Mandatory: Yes
-
Objectives
The main goal is to learn a new mathematical theory (lattice theory) and to be able to apply it in various domains of computer science, especially to design parallel programs that are correct and distributed systems based on conflict-free replicated data types
-
Course learning outcomes
The foundation of lattice theory and its application to various computer science problems including abstract interpretation, distributed system, constraint reasoning and parallel programming. In particular, you can design a distributed system based on conflict-free replicated data types. -
Description
Lattice theory is one of the most useful mathematical theories to describe and prove properties of computer programs. Lattice theory occurs with great success in the history of computer science starting with denotational semantics (what is a program from the mathematical perspective), abstract interpretation (how to verify a program is correct) and more recently in parallel and distributed computing with conflict-free replicated data types (CRDTs) and constraint solving on GPU (how to program with clients and threads having an incomplete view of the global state). CRDTs are widely used to program highly-available services for cloud storage, mobile clients and applications for collaborative editing of a document. -
Assessment
20% assignments, 80% final exam -
Note
Student’s PC required
-
Details
- Course title: High Performance Data Analytics and Visualisation
- Number of ECTS: 6
- Course code: F1_MA_HPC_1-8
- Module(s): 3.2 HPDA
- Language: EN
- Mandatory: Yes
-
Objectives
During this module, students will:study the key characteristics of human vision and their impact on effective visualization design;implement the data visualization pipeline, from raw data to decision-making;study the methods of visualization design and visualization research;design, refine and evaluate interactive data visualization systems.
-
Course learning outcomes
At the end of this module, students will:know the main data types and their relation to visual cues;know a wide range of interaction and visualization techniques;know the steps of visualization design;understand the data visualization pipeline;be able to choose appropriate data visualization techniques to get insight from data;be able to prepare data for visualization;be able to design and evaluate data visualizations;be able to implement visualizations using state-of-the-art interactive graphical representation technologies. -
Description
Interactive data visualization is a key paradigm of exploratory data analysis. It transforms latent data patterns into visual patterns, in order to support sensemaking and data-driven decision-making. Students will learn the value of visualization, principles, and skills for designing, programming, and evaluating data visualizations and demonstrate these skills through hands-on activities. Students will also be exposed to data visualization research problem areas and methods. Topics include: tree visualization; network visualization; tabular/multidimensional data visualization; text and document visualization; temporal visualization; maps and geospatial visualization; interaction techniques; and visualization evaluation. Students will also learn to implement Web-based data visualization pipelines using Javascript libraries on the frontend, such as D3.js and/or echarts, combined as needed with a Python backend for data analytics, for example leveraging Pandas, scikit-learn and networkX. -
Assessment
50% course project25% assignments15% readings in visualization research10% class participation -
Note
Student’s PC required
-
Details
- Course title: Computer Vision and Image Analysis
- Number of ECTS: 4
- Course code: MICS2-46
- Module(s): 3.3 AI/ML
- 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 Zero-Glab 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: Programming Machine Learning Algorithms for HPC
- Number of ECTS: 5
- Course code: F1_MA_HPC_1-9
- Module(s): 3.3 AI/ML
- Language: EN
- Mandatory: Yes
-
Objectives
The main objective of the course is to equip participants with an understanding of machine learning (ML) computational challenges and opportunities. The focus is on practical implementation tailored for high-performance computing environments. The course primarily utilizes the Python programming language, offering participants a versatile and hands-on learning experience.
-
Course learning outcomes
Gain a comprehensive theoretical knowledge of machine learning challenges and opportunities.
Develop practical coding skills by implementing machine learning algorithms from scratch in Python.
Learn how to adapt machine learning algorithms for efficient execution in HPC environments, focusing on parallelization, distribution, and leveraging the computational capabilities of modern hardware (including GPUs). Employing advanced optimization techniques to enhance computational efficiency.
Acquire skills in gaining insight in code performance: profiling and optimizing machine learning code, identifying and addressing bottlenecks
Be able to discuss pros and cons of different computational methods for deploying ML models on large datasets. -
Description
The course is designed for individuals seeking a comprehensive understanding of machine learning (ML) computational challenges and opportunities. We specifically emphasis on their implementation and optimization for high-performance computing environments. The course is conducted using mainly the Python programming language, providing a practical and versatile platform for participants. -
Assessment
The evaluation is based on 50% on exercises, 50% exam on lectures. There is no final exam -
Note
Student’s PC required
-
Details
- Course title: Entrepreneurship
- Number of ECTS: 3
- Course code: F1_MA_HPC_1-10
- Module(s): 3.4 Transversal Skills
- Language: EN
- Mandatory: No
-
Objectives
Many of students will make a switch to the modern labour market at some point in their career. Knowledge of business aspects such as innovation, marketing, leadership, team building, intellectual property rights, finance and business models is essential to succeed. However, in the academic arena in which students learn their core educational skills, these subjects may not be often elaborated upon. The course offers immersive and interactive workshops and activities, designed to test participants’ entrepreneurial appetite and jumpstart their entrepreneurial adventure. Whether students want to ignite theirs entrepreneurial spirit or get just enough flavour of entrepreneurship to flourish as entrepreneurs within any organization, they will learn the basic building blocks to excel. Looking at the world with an opportunity-oriented mindset, we put them in the entrepreneurial roles to work on their chosen ideas and concepts. Students will gain experience in following an inter-disciplinary approach as well as the capability to brainstorm, think outside the box, and to generate ideas with the aim to improve their entrepreneurial skillset including: communication, teamwork, networking, decision-making, complex problem-solving, critical thinking, creativity, time management, marketing skills, leadership among others.
-
Course learning outcomes
With a wide breadth of knowledge of entrepreneurship, creativity, innovation and business essentials, the skills learned are vital for the success of any business, in new ventures as well as in established companies. The goal of this course is to provide students guidance with an overarching framework: # To be aware of entrepreneurship opportunities # Debunk the top myths of entrepreneurship #To be able to professionalize their startup or research projects # To be aware of how to develop an entrepreneurial project: Identify an opportunity or a problem worth solving; Evaluate an idea; Perform market research and choose the target audience; Brainstorm and design a creative innovative solution; Test the solution with potential customers; Strategize the venture growth development ; Pinpoint and manage the critical risks ; Build a financial model and discover the key financial information; Learn to pitch effectively # Interact effectively with students’ peers with diverse skills and experience # Network with relevant stakeholders in the entrepreneurial, startup and business ecosystems in Luxembourg -
Assessment
The final grade is composed by:
1.
Fundamentals of Entrepreneurship :
10%
Take-home assignment
2. Co-Founders Nights :
10%
Active participation
3. My Big Idea :
30 %
Take-home assignment
4. Inception Sprint Day:
30%
Active participation
5.
Self-reflection / learning diary :
10%
Take-home assignment
6.
Final debriefing session :
10%
Active participation
-
Note
The course in presence take place at The Incubator
-
Details
- Course title: Advanced Project Management
- Number of ECTS: 3
- Course code: MICS-COMMSYST-027
- Module(s): 3.4 Transversal Skills
- 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: Podcasting: an Introduction
- Number of ECTS: 3
- Course code: MALDMMC-257
- Module(s): 3.4 Transversal Skills
- Language: EN, FR, AU
- Mandatory: No
-
Objectives
Students will:Learn the basics of podcastingGain an understanding of podcasting as a medium, a tool of expression and an intimate form of storytellingExplore the making of podcasts (e.g. how to build and structure audio content)Learn recording essentials (e.g. how to use techniques and handle equipment)Learn editing essentials (e.g. how to use audio editing software)Have the option to publish and distribute our podcasts
-
Description
The course provides a practical introduction into podcasting. Throughout the course, we will learn how to produce audio content at a professional recording studio, located in Esch- sur- Alzette. Specifically, we will learn how to record podcasts by means of devices such as a mixing desk, microphones, headsets and a recording software. We’ll delve into how elements like voice, listening, imagination, emotions, empathy, time, and sound come together as essential components of effective storytelling. We will explore how to weave these elements into the podcast to create engaging and memorable stories, how to incorporate music and other audio content while recording, as well as in already recorded files. Additionally, we will look into post-production techniques – how to cut and edit audio files by using editing software. Finally, we will explore how the way we listen shapes the stories we tell. We’ll delve into how, as podcasters, we can persuade and captivate audiences using only our voices. By the end of the course, we will create and produce our own podcasts. -
Assessment
Class participationFinal podcast project, including a project description and a reflection on your podcast production experience -
Note
This course focuses on gaining practical experience. However, to learn more about podcasting the following readings and podcasts are suggested to get inspiration:Llinares, D. (2018). Podcasting as Liminal Praxis: Aural Mediation, Sound Writing and Identity.Wake, A., Fox, K. & Strong, C. (2020). Pandemic Podcasting: From Classroom to Bedroom. Teaching Journalism & Mass Communication, 10(1), 29-33.This American Life Episodes (thisamericanlife.org)Ten Percent Happier with Dan Harris. Every Episode from the TPH Podcast — Ten Percent Happier (happierapp.com)
-
Details
- Course title: Computational Methods
- Number of ECTS: 4
- Course code: MCMP-21
- Module(s): 3.5 Seminars
- Language: EN
- Mandatory: No
-
Objectives
The main idea of the course is to provide knowledge and practical experience of the numerical techniques that constitute the basis of Computational Physics and Chemistry. Some emphasis will be put on the analysis of the outcome of the variation of physical parameters and numerical hyperparameters for the given problem.
-
Course learning outcomes
•For a given physical problem, students will be capable of writing a program to find its numerical solution and analyze the resulting data.•Students will have an overview of standard numerical algorithms adopted in computational Physics and Chemistry as well as their limitations. -
Description
The main idea of the course is to provide knowledge and practical experience of the numerical techniques that constitute the basis of Computational Physics and Chemistry. Some emphasis will be put on the analysis of the outcome of the variation of physical parameters and numerical hyperparameters for the given problem.The first part of the course will consolidate the basics of Python3 programming and cover the basic algorithms necessary to solve simple equations. The second part will introduce more advanced methods with applications to physical problems. Specifically, we will treat• Introduction to Python and relevant packages• Numerical differentiation and integration• Linear algebra solvers• Root finding and minimization• Ordinary differential equations• Partial differential equations• Monte Carlo methods• Molecular dynamics• Basics of machine learningEach lecture will be comprised of an introduction to the theory behind a given technique, followed by a practical session centered on its implementation and application to well-known problems. -
Assessment
Task 1: Homework’s weekly assignments.Task 2: Final project.Task 3: Written Exam.Assessment rules:Students hand in homework individually, no equipment is required/allowed for written exams.Assessment criteria: Weights for final grade: Task 1: 20%, Task 2: 50%, Written Exam: 30%,Each graded out of 20The final mark is calculated as a weighted average according to the abovementioned weights. -
Note
The most recommended textbooks•Numerical Methods in Physics with Python, Alex Gezerlis (Cambridge University Press, 2020)•Numerical Analysis 9th ed., Richard L. Burden and J. Douglas Faires (Brooks/Cole, 2011)•Computational Methods for Physicists, Simon Sirca and Martin Harvat (Springer, 2012)Other textbooks of note•Numerical Methods for Scientists and Engineers, Richard W. Hamming (Dover publications)•Numerical Recipes series, William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery (Cambridge university press)•Numerical Methods, E. A. Volkov (Hemisphere publishing corporation)General resources on Python•https://www.codecademy.com/learn/learn-python-3•https://www.learnpython.org/en/•https://lectures.scientific-python.org
-
Details
- Course title: Introduction to Imaging AI with Applications in Medical Imaging
- Number of ECTS: 5
- Course code: MA_DS-19
- Module(s): 3.5 Seminars
- Language: EN
- Mandatory: No
-
Course learning outcomes
Knowing important image formats and their specific constraintsKnowing and being able to apply basic image processing operationsAware of the problems that can arise from different spatial alignments and resolution issuesKnows an overview about state-of-the art deep learning network types and their principle application domainsHands on experience in employing feed forward networks for image classification and segmentationHands on experience in training deep neural networks utilizing a high-performance computing environment -
Description
Exam modalities for the first sessionCombined assessment of two parts:Part a) Practical Homework Project in Teams of 2 with oral Presentation of the solution.Final Grade: 50% Part a) + 50% Part b), both parts have to be graded with at least “passed”. I.e. we will combine a written final exam on the theory, with a practical hands project where i will give an assignment on which the students can work at home and present the solution.Exam modalities for the retake examStudents that passed one Part (a or b) can choose to retake only the failed/missed part or both parts.Absence planboth parts have to be graded with at least “passed”, missing one part requires retake of that part. -
Assessment
Final Grade: 50% Part a) + 50% Part b), both parts have to be graded with at least “passed”. I.e. we will combine a written final exam on the theory, with a practical hands project where i will give an assignment on which the students can work at home and present the solution. -
Note
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press.Sonka, M., & Fitzpatrick, J. M. (2000). Handbook of medical imaging. Volume 2, Medical image processing and analysis. University of Iowa.Coursera – Course “AI for Medical Diagnosis”
-
Details
- Course title: Selected topics in Artificial Intelligence
- Number of ECTS: 4
- Course code: MICS-IAS-024
- Module(s): 3.5 Seminars
- 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%)
Course offer for Semestre 4
-
Details
None
-
Lecturer
None
-
Course learning outcomes
None
-
Assessment
None