Jan 18 – 22, 2021
virtual (zoom)
Europe/Zurich timezone

We are sorry, please note the available places for this iteration of the course have been taken. If you want to be contacted about further courses PLEASE STILL REGISTER ON THE WAITING LIST so we can eventually inform you and it would also allow us to gauge the overall interest in such an event.


This is the second iteration of a C++ course for the high energy physics community organised in collaboration between the Software Institute for Data Intensive Sciences and the Training Working Group of the HEP Software Foundation.

Important Links

Organization and Content

This event will run over 5 days.  Each day will feature one two hour interactive lecture session in the morning and a session focused around hands-on training exercises in small breakout groups (related to the morning training) in the afternoons (CEST).

Due to the current pandemic circumstances we expect the whole event (course and training) to be held virtual. The link to the conference tool will be provided on this page.

The morning lectures will be held by Sebastien Ponce.

The afternoon trainings are supported by mentors from within the HEP community

  • David Chamont (IN2P3)
  • Benedikt Hegner (CERN)
  • Graeme Stewart (CERN)
  • David Smith (CERN)
  • Andrea Valassi (CERN)
  • Ben Couturier (CERN)
  • Attila Krasznahorkay (CERN)
  • Stephan Hageboeck (CERN)
  • Walter Lampl (Arizona)
  • Stewart Martin-Haugh (RAL)
  • Martin Ritter (LMU)
  • Riccardo Maria Bianchi (Pittsburgh)
  • Bernhard Gruber (CERN)
  • Benedikt Hegner (CERN)
  • Stefan Roiser (CERN)

The lecture sessions contain the following topics

Monday Tuesday Wednesday Thursday Friday
Basics (syntax, pointers, references, compound types, objects ...) Object Orientation (classes, inheritance, virtuality, operators, ... ) Constness Tools (git, compile chain, gdb, valgrind suite, ...) Core modern C++ (move semantic, templates, lambdas, STL, RAII, ...) A la carte: Concurrency, Python & C++, Expert C++  (poll in the subscription form)


Registration : Important notice !!!

The number of participant places for this course and training are deliberately limited in order to allow us to give you more personalized instruction while gaining experience with the online/virtual training format.

In case you registered and got a place but find out later that you cannot attend, please contact the organizers so we eventually could make your place available to others.

Alternatively if you find the participant places already all booked, please feel free to register on the waiting list. In case a place gets available we will move you there (FIFO) and we would also contact you for an eventual new iteration of the course.

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 if you can commit to attending and being engaged.  If you are interested but aren't sure, don't hesitate to sign up for the waiting list to express your interest!

[2] Do I know basic programming?

While we will be starting from the basics we will rapidly accelerate to more advanced topics (check out the curriculum above) and so its important that you have a basic knowledge of programming, compiling, debugging etc.  If you aren't sure of your current skill level, then don't hesitate to contact us to ask if you "know enough", we'll be able to help you assess your current level and whether this training is right for you.

Finally, every individual interested in the training is welcome to subscribe. The sessions for this iteration of the event are more optimized for European time zones while for future iterations we aim concentrate on other major time zones (US and/or Asia).  If you don't plan to attend this training but maybe another iteration please still subscribe to the waiting list 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 to allow us to eventually use this content for more dissemination of the course. In the registration form you will need to consent that your participation is recorded.

Cost of attendance and attestation

The training is organized free of charge. The only thing we ask is that if you register to attend, you commit to attending the full event.

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


Registration for this event is currently open.