Cerfacs Enter the world of high performance ...

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.

CALENDAR

Tuesday

21

January

2025

🎓Thomas LESAFFRE thesis defense

Tuesday 21 January 2025 at 9h30

  Phd Thesis       JCA room, CERFACS, Toulouse    

Wednesday

29

January

2025

🎓HDR Omar DOUNIA

Wednesday 29 January 2025 at 9h30

  HDR Defense       JCA room, Cerfacs, Toulouse    

Wednesday

29

January

2025

🎓Victor COULON thesis defense

Wednesday 29 January 2025 at 14h00

  Phd Thesis       JCA room, CERFACS, Toulouse    

ALL EVENTS