Theme: Cloud Computing & Data Infrastructures
Advanced computer science topics
(3ECTS - 24h)
Description:
This course offers a modular and flexible approach to explore advanced topics in the fields of cloud computing and modern data infrastructures. Students build their own learning path by selecting from a curated list of specialized topics, each covering emerging technologies, theoretical models, and practical tools shaping the future of distributed systems and data-driven applications.
The course is structured around interactive labs and oral presentations, fostering both technical depth and critical thinking. Students are encouraged to investigate cutting-edge research, engage with hands-on labs, and reflect on the socio-technical aspects of computer science.
Students must select 2 topics among the following ones. The evaluation is based on hands-on lab work and oral presentations demonstrating their understanding and critical analysis of the chosen topics.
Analysis and verification of software
Certain industries (avionics, trains, nuclear power..), for safety reasons, go beyond testing software - they attempt proving that it always works, through mathematical means. Certain large operators (Google, Microsoft…), for security reasons (defense against intruders), do likewise, or at least use advanced automated testing approaches.
In this course we shall see a panorama of the main approaches in formal verification.
Coordinator : David Monniaux
Coding without Coding: Models, No Code, AI
Artificial Intelligence is transforming the way we develop software. Vibecoding, for example, promises non-programmers the ability to create applications without ever writing a single line of code. But is it really that simple? What about the multiple qualities of the code that is produced? What kinds of software can realistically be vibecoded? And are there complementary, and safer, approaches worth considering?
This course examines three major “coding without coding” paradigms:
- Model-Driven Engineering, where reliable code generators are carefully designed by humans
- No-Code/Low-Code Engineering, where reliable platforms interpret models
- AI-Driven Engineering, where code is generated through sequences of sophisticated prompts
Each paradigm has distinct characteristics and serves different stakeholders. The course highlights these differences and shows how they can be combined, depending on the context and the task at hand.
Coordinator : Jean-Marie Favre
Sustainable Computing and Green IT Practices
In this course section we will approach several topics related to computing technologies and their environmental impacts. We will provide hands-on exercises to better understand the environmental impacts of computing technologies, notably
- by learning how to measure the energy consumption and CO₂ emissions of computing programs,
- by learning how to take into account the impacts in the whole life-cycle, and
- by understanding how computing technologies can provoke systemic effects that result in environmental impacts.
Coordinators : Mario Cortes-Cornax / Danilo CARASTAN-SANTOS
Parallel Programming for the AI Era
Parallel processing is fundamental to the current advancements in artificial intelligence.
Training large language models relies on tens of thousands of GPUs over extended periods, and even smaller machine learning workflows benefit from distributed computing for efficient data processing.
This course introduces parallel programming with an emphasis on its application in AI. Topics include programming abstractions such as collective communication and task parallelism, popular tools and environments, and real-world parallelization strategies for AI workloads.
The course is organized around two themes:
- Collective communication methods used for training large neural networks
- Distributed programming in Python, using Dask and Ray, for speeding up data processing, machine learning, and reinforcement learning tasks
A basic familiarity with parallel programming concepts (such as threads and MPI) is expected. No prior knowledge of neural networks is required; essential concepts will be introduced as part of the course.
Coordinator : Bruno Raffin
All students will attend high-level presentations from industrials, covering topics connected to computer science. These invited talks provide an opportunity to:
- Discover advanced academic/industrial concepts and their applications to real-world systems
- Learn about new technological trends, challenges, and success stories
Industrial Track (mandatory)
- Talk 1 by ClearSy: Critical software for the railway industry. In the railway industry, a bug could turn into a deadly disaster. Any critical softwares involved must therefore use specific tools to ensure everything functions as expected. In this presentation, we give more informations about the railway contexte and present some tools used in the industry, from system design to code execution.
Coordinator : Akram Idani
Evaluation:
- Session 1 (Lab works): every topic is evaluated separately
- Session 2 : written exam or oral