Cerfacs Enter the world of high performance ...

Advanced programming practices for scientific computing

  Friday 22 March 2024

  Training       Cerfacs, Toulouse, France    

Cerfacs is Qualiopi certified for its training activities

Duration : 1 day / 6 hours


Programming plays a crucial role in scientific research, and this training session is designed to provide participants with a strong foundation in programming skills and code development practices.

Objective of the training

The primary goal of this advanced training is to enhance the candidate’s ability to excel in professional settings that involve scientific software programming. This objective will be accomplished by improving understanding of programming projects, introducing common concepts, and directing participants to additional online resources.

Learning outcome

Upon completing this course, participants should be able to:

1. Identify the principal code smells,Identify then reduce the statefulness of a code
2. Prepare the error handling strategy of an edge case
3. Read a global callgraph, and know what should be expected from high-level, mid-level and low-level parts of a code base
4 Consider the global git history of a code and spot conserning trends.
5. Assess the different complexities of a program: mccabe, indentation-based, structural
6. Understand what is a unit test, a functional test?
7. Know how to use some standards : semantic versionning, keep-a-changelog, cactus branching model, sphinx docs

Teaching methods

Each skill or concept will be illustrated with examples from real-world projects. This training is language-agnostic, making it suitable for participants regardless of their preferred programming language.

Referent teacher: Antoine DAUPTAIN

Target participants

This 6-hour training session is tailored for engineering graduates with more than one year of experience, especially those in the middle of Ph.D. studies in Numerical Simulation of Physics.


  • Participants are required to have a basic understanding of a data processing language like Python, Matlab, or R, or a compiled language like C or Fortran, and be familiar with Git/GitLab.
  • Level B2 of CEFR is required (training can take place in French or English depending on the audience)

To verify that the prerequisites are satisfied, the following questionnaires must be completed. You need to get at least 75% of correct answers in order to be authorized to follow this training session. If you don’t succeed it, your subscription will not be validated. You only have two chances to complete them.



Before signing up, you may wish to report us any particular constraints (schedules, health, unavailability…) at the following e-mail address : training@cerfacs.fr

I certify that I obtained at least 75% of correct answers, I register

Deadline for registration: 15 days before the starting date of each training


  • Trainees/PhDs/PostDocs : 96 € excl. tax
  • CERFACS shareholders/CNRS/INRIA : 240 € excl. tax
  • Public : 480 € excl. tax



– 9:00 Warm-up, Initial evaluation
– 10:00 Code smells, Some error handling
– 11:00 Break
– 11:15 Hands on standards (semver, changelog, cactus branching, sphinx)
– 12:30 Lunch


– 13:30 Discussion and feedbacks
– 14:00 Code Complexity Indicators, Unit and functional tests
– 15:00 Break
– 15:15 Global CallGraphs, Git Evolution
– 15:40 Final evaluation
– 16:55 Training feedback

Evaluation of learning

A final exam will be conducted during the training.






Sparse Days Meeting 2024

From Monday 17 June 2024 to Tuesday 18 June 2024

  Cerfacs, Toulouse, France    





🎓 PhD Defense: Thibault DURANTON

Monday 17 June 2024From 14h00 at 18h00

  Phd Thesis       Cerfacs, Seminar room, Toulouse, France    





🎓 PhD Defense: Nicola DETOMASO

Tuesday 18 June 2024From 14h00 at 18h00

  Phd Thesis       Cerfacs, JCA room, Toulouse, France