Pour vous authentifier, privilégiez eduGAIN / To authenticate, prefer eduGAINeu

i2i 2026

Europe/Paris
Batiment 200 / Salle Bleue (IJCLab)

Batiment 200 / Salle Bleue

IJCLab

Description

IJCLab's Computer Science Department, in collaboration with the PHENIICS Doctoral School and the LoOPS network, offers a sequence of half-day training modules, about software and computing. It is primarily aimed at non-IT PhD candidates at large. The PhD candidates registered on ADUM will have total priority (reserved seats in the room).

Beyond that, we also welcome all interested persons (researchers, teachers, technical staff...), on a first-come, first-served basis, depending on available seats on the day of the event (no advance registration). This year's room has a maximum seating capacity of around 30 persons. In the agenda, for each course, you will find how many ADUM reservations have been made to date.

Please bring your own computer, preconfigured for a wifi access to eduroam.

A few final points of attention:

  • If you never used a Linux terminal or SSH connection before, we strongly advise you to follow the opening "Unix Shell" module.
  • The "Make your code more robust" and "Make your code more efficient" courses take place over 1 full day, with a lunch break of 1h30. Lunch is not provided.
  • The "Deep Learning" course requires you to have followed the "Machine Learning" course beforehand.
  • The course "Discovering the Paris-Saclay Mesocenter and GENCI National Supercomputers" has been canceled.
    • 09:00 12:30
      The Unix Shell (18 seats available) 3h 30m

      (18 seats available on a first-come, first-served basis)

      The Unix shell has been around longer than most of its users have been alive. It has survived because it’s a powerful tool that allows users to perform complex and powerful tasks, often with just a few keystrokes or lines of code. It helps users automate repetitive tasks and easily combine smaller tasks into larger, more powerful workflows.
      1. Introducing the Shell
      2. Navigating Files and Directories
      3. Working With Files and Directories
      4. Pipes and Filters
      5. Loops
      6. Shell Scripts
      7. Finding Things

      If you have a Windows, machine, you should install the Bash Shell provided by Git for Windows, following the instructions at https://carpentries.github.io/workshop-template/install_instructions/#shell. For all the questions during the installation, accept the default answer.

      Orateur: Michel Jouvin (IJCLab)
    • 14:00 17:30
      Git Survival Guide (4 seats available) 3h 30m

      (4 seats available on a first-come, first-served basis)

      In this survival guide, we will explore how to effectively use Git to manage and access the version history of any set of text files (code, manuscripts written in LaTeX, etc.), both in the context of team an personal projects. Specifically, we will cover the following points:
      - Initializing a Git repository
      - Tracking changes and managing branches
      - Merging and rebasing
      - Resolving conflicts
      - Working with remotes and forges (GitHub/GitLab)
      - Version control strategies
      - Best practices for collaborating with Git

      In addition to the presentation attached, there will be online exercices.

      Orateur: Michel Jouvin (IJCLab)
    • 09:00 12:30
      Containers (15 seats available) 3h 30m

      (15 seats available on a first-come, first-served basis)

      This training aims to give a taste of Docker with a hands-on experience. Docker concepts and its architecture will be explained in their basics. The main objective of this training is to show a complete workflow that could be useful to everyone.

      By the end of the course, participants should have a basic understanding of the concepts and some experience with the basic Docker commands that would enable them to assess possible use cases for their own work. More in-depth reading is left to the participants.

      Apptainer may be mentioned (subject to confirmation).

      Prerequisites: Docker must be installed and configured. Docker Engine is only available for Linux platforms. For Windows and Mac, Docker can be used through Docker Desktop. Commercial use of Docker Desktop requires paid subscription under certain conditions. This training will not cover Docker Desktop.

      Orateur: Vincent Rouvreau (INRIA)
    • 14:00 17:30
      GitLab Projects and Continuous Integration (17 seats available) 3h 30m

      (17 seats available on a first-come, first-served basis)

      This course is NOT ABOUT GIT; we will focus on using GitLab for software project management. You will learn to leverage GitLab's features to facilitate collaborative development, automate your tests, and publish code releases. Specifically, we will cover the following points:
      - Creating a project in GitLab
      - Managing members and permissions
      - Working with issues: labels, milestones, templates
      - Team collaboration: Branches and Merge requests
      - Task automation through GitLab CI/CD: creating pipelines and jobs
      - Managing environment variables and secrets
      - Publishing packages and deploying documentation

      Prerequisites: be able to communicate with a remote repository via Git (clone, fetch, push) and know how to manage branches.

      Orateur: Vincent Rouvreau (INRIA)
    • 09:00 12:30
      (CANCELLED) Discovering the Paris-Saclay Mesocenter and GENCI National Supercomputers 3h 30m

      CANCELLED

    • 14:00 17:30
      Open Data and Free/libre Software (4 seats available) 3h 30m

      (4 seats available on a first-come, first-served basis)

      Research is based on reproducibility and an incremental improvement process. Open Science movement has been developed to facilitate this work and relies on 3 legs: open access to publications, open data and libre software.
      Topics:
      • open data: organization, conditions of their publication and reuse, valorization ;
      • free/libre software: software licences,valorization ;
      • data management plan (DMP) : associated tools, lifecycle.

      Orateur: Dr Philippe Gauron (IJCLab/CNRS-Université Paris-Saclay)
    • 09:00 12:30
      Make Your Code More Robust 1/2 (5 seats available) 3h 30m

      (5 seats available on a first-come, first-served basis)

      Discovery of software engineering tools and methodologies to write more tested,
      documented code that is easier to understand and maintain.
      - static analysis
      - tests
      - documentation
      The examples will be based on the C++ and Python programming languages.

      Prerequisites: some knowledge of C++ or Python.

      Orateurs: Hadrien Grasland (IJCLab), Julien Peloton (CNRS-IJCLab)
    • 14:00 17:30
      Make Your Code More Robust 2/2 (5 seats available) 3h 30m

      (5 seats available on a first-come, first-served basis)

      Second part of "Make Your Code More Robust". See the contribution "Make Your Code More Robust 1/2".

      Orateurs: Hadrien Grasland (IJCLab), Julien Peloton (CNRS-IJCLab)
    • 09:00 12:30
      Python Traps & Pitfalls (16 seats available) 3h 30m

      (16 seats available on a first-come, first-served basis)

      First, we'll take a closer look at the basic mechanisms of the Python language, beyond what can be guessed by blindly copying and pasting examples, in order to avoid the most common traps and pitfalls. Then, we'll debate the interactions with Linux. In particular, we will talk about :
      - variables semantic, duck typing,
      - automatic memory management,
      - builtin types and collections,
      - shallow and deep copy,
      - functions, local and global variables,
      - differences between interpreter, scripts and notebooks,
      - the import and distribution of modules and packages.

      Prerequisites : to have practised Python regularly, to know Linux.

      Orateur: David Chamont (IJCLab - IN2P3 - CNRS)
    • 14:00 17:30
      Object-Oriented C++ (22 seats available) 3h 30m

      (22 seats available on a first-come, first-served basis)

      Get familiar with the object-oriented programming with C++. The lectures and hands-on aim to prepare students to use and/or contribute to large C++-based projects, such as Geant4.
      - Introduction to object-oriented methodology
      - Class definition and implementation
      - Class data members and member functions/methods
      - Static data members, member functions/methods
      - Base class and derived class
      - Virtual, pure virtual functions
      - C++11/17 features: auto, range for loop, …

      Prerequisites: basic knowledge of the C++ syntax and standard library (if, loops, functions, pointers, references, iostream, string, vector).

      Detailed program and course material:
      https://geant4-ed-project.pages.in2p3.fr/oo-cpp-web/

      Orateur: Ivana Hrivnacova
    • 09:00 12:30
      C++17 Initiation (13 seats available) 3h 30m

      (13 seats available on a first-come, first-served basis)

      First contact with C++, in its most used version in new physics projects : aka C++17.
      The course is targeted at people who have programming experience, especially with Python. In particular, we will talk about :
      - builtin types, variables, functions,
      - passing arguments by value and by reference,
      - type inference and templates,
      - returning a tuple of values,
      - std::vector vs std::array,
      - compilation and libraries.

      Prerequisites : to have practised Python regularly.

      Orateur: David Chamont (IJCLab - IN2P3 - CNRS)
    • 14:00 17:30
      CMake Survival Guide (24 seats available) 3h 30m

      (24 seats available on a first-come, first-served basis)

      Introduction to CMake, which is the most widely used tool for managing C/C++ projects, especially in a cross platform context. The course is targeted at people who have some programming experience with C/C++ or Fortran.
      In particular, we will talk about:
      - building simple binaries and libraries
      - build and running tests via ctest
      - integrating third party applications
      - modern cmake best practices
      - most useful compilation/link commands

      Prerequisites: have a basic understanding of C/C++ or Fortran.

      Orateur: Philip Deegan (https://www.lpp.polytechnique.fr/?lang=en)
    • 09:00 12:30
      Data Basics (23 seats available) 3h 30m

      (23 seats available on a first-come, first-served basis)

      Your experiments generate terabytes of measurements, simulations, and observations… yet these data often remain trapped in flat files: tedious parsing, limited sharing, frustrating sequential access.
      What if you could turn raw data into structured information and solid knowledge with just a few queries?
      This introductory course immerses you in the world of data structuration, relational databases and SQL – a true “intergalactic dataspeak” that is universal and timeless.
      Blending historical perspective with hands-on practice, you will learn to:
      • rigorously structure your data (normalization, keys, constraints)
      • ask powerful questions with SELECT, JOIN, GROUP BY…
      • optimize performance with indexes and understand what the engine is really doing
      • avoid classic pitfalls that waste countless hours
      No prior knowledge required. Designed for PhD students and early-career researchers across all scientific disciplines, this course provides the practical tools to move from frustrating files to reliable, fast, and scalable databases.
      Master SQL: the essential skill that will stay with you throughout your scientific career. Join us!

      Orateur: Dr Vincent LAFAGE (IJCLab)
    • 14:00 17:30
      Computations Accuracy (14 seats available) 3h 30m

      (14 seats available on a first-come, first-served basis)

      When using numbers of type float or double, are you aware that 0.1+0.2 does not equal 0.3 ? Let’s review the theory behind such pitfalls, and discuss some case studies :
      - the quadratic equation in kinematics calculations
      - variance calculations in data analysis
      - calculations with complex numbers
      - accurate summation in large Monte-Carlo calculations
      - precision in matrix and geometry calculations (the interest of factoring)
      - differential equations
      Elements of numerical calculation
      - solution of equations, minimisation
      - scaling: combining accuracy and efficiency
      Clean code for computation

      Orateur: Dr Vincent LAFAGE (IJCLab)
    • 09:00 12:30
      Introduction to Machine Learning (4 seats available) 3h 30m

      (4 seats available on a first-come, first-served basis)

      We will describe the main concepts of Machine Learning (ML) and give some clues to address a problem of ML. In particular, we will talk about :
      - the concepts of AI/Machine Learning/Deep Learning,
      - supervised/unsupervised learning,
      - the preprocessing of the data,
      - the general principle of the algorithm,
      - the main pitfalls,
      - the evaluation of the training and the outcomes.
      Some exercises will be provided to understand the basic concepts of standard ML methods.

      Prerequisites: practice of Python and main libraries (numpy, pandas, matplotlib).

      Orateur: Francoise BOUVET (IJCLab - CNRS - UPsay)
    • 14:00 17:30
      Introduction to Deep Learning (4 seats available) 3h 30m

      (4 seats available on a first-come, first-served basis)

      We will describe the main concepts of Deep Learning (DL). We will focus on Multilayer Neural Network (MLP) and Convolution Neural Network (CNN).
      In particular, we will talk about :
      - artificial neuron,
      - MLP : structure and how it works,
      - CNN : structure and how it works,
      - a brief review of other NN structures.
      Some exercises will be provided to program simple MLP and CNN in Python with Keras.

      Prerequisites:
      - Practice of Python and main libraries (numpy, pandas, matplotlib).
      - Priority will be given to the attendees of « Initiation to Machine Learning ».

      Orateur: Francoise BOUVET (IJCLab - CNRS - UPsay)
    • 09:00 12:30
      Make Your Code More Efficient 1/2 (4 seats available) 3h 30m

      (4 seats available on a first-come, first-served basis)

      Most computer programs are inefficient and could serve the same purpose while using 10-1000x less resources (time, energy, memory…). However, achieving this result requires know-how that is not part of the typical programming curriculum. In this course, you will learn a general methodology to make any program use computing resources more efficiently:
      1. Safety first
      2. Set a useful benchmark
      3. Identify the limiting hardware resource
      4. Locate the code that most intensely uses it
      5. Make the most of other people’s work
      6. Optimize your own code
      7. Know your programming language

      Prerequisites : Shell Unix/Linux (files, make…) + C++ basics (C-like features, std::vector, iostream, virtual) or Python+numpy. Laptop capable of connecting to a Linux server via SSH, ideally configured to use eduroam.

      Orateur: Hadrien Grasland (IJCLab)
    • 14:00 17:30
      Make Your Code More Efficient 2/2 (4 seats available) 3h 30m

      (4 seats available on a first-come, first-served basis)

      Second part of "Make Your Code More Efficient". See the contribution "Make Your Code More Efficient 1/2".

      Orateur: Hadrien Grasland (IJCLab)