11th HEP C++ Course and Hands-on Training - Advanced C++

Europe/Zurich
593/R-010 - Salle 11 (CERN)

593/R-010 - Salle 11

CERN

50
Show room on map
Graeme A Stewart (CERN), Sebastien Ponce (CERN), Stefan Roiser (CERN)
Description

Welcome to the eleventh iteration of a C++ course for the high energy physics community.

This course will feature "advanced" C++ topics, see below for more details. 

IMPORTANT NOTICE

This  course will teach advanced topics of C++. In order to draw the most benefit out of this course we ask you, before subscribing, to verify that you are comfortable with essential concepts of the language in theory and practice. E.g. please make sure you are at ease with the topics of the "HEP C++ Course - The essentials" (see slides and recordings at the bottom of here)

In case you want to follow our "essentials" course first, we plan to schedule one in spring 2025. Please subscribe here if you want to receive notifications about upcoming courses. 

Please also note that this course is organised for the High Energy Physics (HEP) community. Please provide details about your affiliation to a HEP laboratory or university during the registration process. 

Important Links

Organisation and Content

The event will run over 3 days, Monday, Wednesday and Friday.  Each day will feature one two hour lecture session in the morning and a two hours session focused around hands-on training exercises in small groups (related to the morning training) in the afternoons.

The morning lectures of this event will be held in a hybrid format, i.e. in the main auditorium of the CERN training center and also broadcasted on zoom. The afternoon training sessions will be held in another room of the CERN training center. 

For local participants, the training will be held in the CERN Training center, i.e.

  • Morning lectures in room 593/R-10
  • Afternoon hands-on trainings in rooms 572/R-010 and/or 572/R-006

Two registration forms are available for in person or remote participation. Please note, the hands-on training will be only available to in person participants.

If it is possible for you to attend the event on premise, we would encourage you to do so, as we believe the training effect will be higher. 

The course is based on material developed originally by Sebastien Ponce and further extended mainly in collaboration with Bernhard Gruber and Stephan Hageboeck and David Chamont

The morning lectures and afternoon trainings will be delivered by 

  • Sebastien Ponce (CERN & LHCb)
  • Stephan Hageboeck (CERN)
  • David Chamont (CNRS IJCLAB)

 

In addition we are supported by additional mentors for the afternoon trainings: 

  • Daniele Massaro (CERN)
  • Oliver Lantwin (CERN)
  • Attila Krasznahorkay (CERN & ATLAS)
  • Laura Promberger (CERN)

 

The lecture sessions contain the following topics

Day 1 Day 2 Day 3
Recap: Language Basics & Object orientation (recap from "essentials course" plus new features)

Core Modern C++ I (constexpr, move semantics, ...)
Core Modern C++ II (lambda, STL, ranges, RAII, ...)

Concurrency

Tools (formatting, sanitizers, profiling, ...)

Expert C++ (3 way comparison, variadic templates, perfect forwarding, ...)

Registration : Important notice !!!

The number for in person participant places for this course and training are deliberately limited in order to allow us to give you more personalised training.

Is this training for me?

Good question.  Our target audience for this training are members of the high energy physics community who are in any kind related to software development (experiments, services, tools, ...). 

The registration process is not moderated but we ask that you reflect on two things before registering. 

[1] Can I commit to attending the full event?

The most important thing is that those who want to learn are given the full opportunity to do so.  And in our teaching pedagogy, learning means staying engaged both during the lecture and the hands-on sessions.  Please only register for in person attendance if you can commit to attending and being engaged.  

[2] What level of C++ is required?

This course is a follow-on training of the "essentials" HEP C++ Course, e.g. held in spring '23 (6th HEP C++ Course and Hands-on Training). We will briefly run again through the main parts of this training at the beginning, but we would expect participants to be familiar with most of the topics handled in that course. The goal of this course is, in addition to write your own analysis software, to already enable you to contribute meaningfully to your experiment core code base. If you aren't sure of your current skill level, then don't hesitate to contact us.

Finally, every person interested in the training is welcome to subscribe. The sessions for this iteration of the event are more optimised for European time zones.  If you don't plan to attend this training but maybe another iteration please still subscribe here so we can reach out to you and inform you of any future C++ trainings.

Really want to attend but timing doesn't work?

No need to worry, we plan to record the morning courses and publish them on this indico page. In case you only want to consume the recordings and not participate live in the lectures and training you also don't need to register for the training.

Cost of attendance and attestation

For students attending the course in person we ask for a registration fee of CHF 50. The fee can be paid via internal CERN "TID" or by credit card. Detailed payment instructions will be provided soon. 

In case it is useful we can provide an attendance certificate to students.

 

Stefan Roiser
Zoom Meeting ID
61763419323
Host
Stefan Roiser
Passcode
98518071
Useful links
Join via phone
Zoom URL
    • 09:00 10:15
      Lecture: Day 1 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
      Conveners: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
      • 09:00
        Language Recap & Core Modern C++, Part 1 1h 15m
        Speakers: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
    • 10:15 10:45
      Break: Coffee, Tea, ... 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
    • 10:45 12:00
      Lecture: Day 1 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
      Conveners: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
      • 10:45
        Language Recap & Core Modern C++, Part 2 1h 15m
        Speakers: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
    • 14:00 16:00
      Hands-on Training 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
    • 09:00 10:15
      Lecture: Day 2 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
      Conveners: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
      • 09:00
        Core Modern C++ & Concurrency, Part 1 1h 15m
        Speakers: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
    • 10:15 10:45
      Break: Coffee, Tea, ... 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
    • 10:45 12:00
      Lecture: Day 2 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
      Conveners: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
      • 10:45
        Core Modern C++ & Concurrency, Part 2 1h 15m
        Speakers: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
    • 14:00 16:00
      Hands-on Training 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
    • 09:00 10:15
      Lecture: Day 3 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
      Conveners: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
      • 09:00
        Tools & Expert C++, Part 1 1h 15m
        Speakers: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
    • 10:15 10:45
      Break: Coffee, Tea, ... 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
    • 10:45 12:00
      Lecture: Day 3 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map
      Conveners: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
      • 10:45
        Tools & Expert C++, Part 2 1h 15m
        Speakers: Dr David Chamont (IJCLab - IN2P3 - CNRS), Sebastien Ponce (CERN), Stephan Hageboeck (CERN)
    • 14:00 16:00
      Hands-on Training 593/R-010 - Salle 11

      593/R-010 - Salle 11

      CERN

      50
      Show room on map