Advanced programming practices for scientific computing
Friday 14 March 2025
Training
Cerfacs is Qualiopi certified for its training activities
Duration : 1 day / 6 hours
Abstract
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.
Prerequisites and registration
- 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.
Questionnaire and registration: click here
Before signing up, you may wish to report us any particular constraints (schedules, health, unavailability…) at the following e-mail address : training@cerfacs.fr
Deadline for registration: 15 days before the starting date of each training
Fee
- Trainees/PhDs/PostDocs : 96 € excl. tax
- CERFACS shareholders/CNRS/INRIA : 240 € excl. tax
- Public : 480 € excl. tax
Program
Morning
– 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
Afternoon
– 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.