University of Geneva
Data-Oriented C++ in Scientific Programming

Vente anticipée ! Débloquez plus de 10 000 cours de Google, Microsoft et autres pour 160 €/an. Économisez maintenant.

Ce cours n'est pas disponible en Français (France)

Nous sommes actuellement en train de le traduire dans plus de langues.
University of Geneva

Data-Oriented C++ in Scientific Programming

Jonas Latt
Bastien Chopard
Jean-Luc Falcone

Instructeurs : Jonas Latt

Inclus avec Coursera Plus

Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
niveau Intermédiaire

Expérience recommandée

2 semaines à compléter
à 10 heures par semaine
Planning flexible
Apprenez à votre propre rythme
Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
niveau Intermédiaire

Expérience recommandée

2 semaines à compléter
à 10 heures par semaine
Planning flexible
Apprenez à votre propre rythme

Ce que vous apprendrez

  • Software architecture using an object-oriented and a data-oriented approach

  • Efficient programming using language-specific features in C++

  • GPU and multi-core CPU software development in C++

Compétences que vous acquerrez

  • Catégorie : Computer Architecture
  • Catégorie : Programming Principles
  • Catégorie : Algorithms
  • Catégorie : Data Structures
  • Catégorie : Performance Tuning
  • Catégorie : Data Processing
  • Catégorie : Object Oriented Programming (OOP)
  • Catégorie : C++ (Programming Language)
  • Catégorie : Computer Hardware

Détails à connaître

Certificat partageable

Ajouter à votre profil LinkedIn

Récemment mis à jour !

juin 2025

Évaluations

54 devoirs

Enseigné en Anglais

Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

 logos de Petrobras, TATA, Danone, Capgemini, P&G et L'Oreal

Il y a 5 modules dans ce cours

To follow this MOOC, you should be familiar with the fundamentals of the C++ language. In this first module however, you will find a refresher on the most important concepts needed to complete the course. You will (re)discover variable types (stack variables, references, smart pointers), containers and algorithms, classes and polymorphism. If you already master these notions but your knowledge predates the C++11 standard, we still encourage you to follow this module for up-to-date recommendations on the efficient use of C++. In particular, have a look at Lesson 4 if you are not yet familiar with the notion of ranges in C++20 and later versions.

Inclus

17 vidéos1 lecture11 devoirs

Part of the work of processing data efficiently consists in reducing the amount of computations and the complexity of the execution path. A complex execution path is often implemented to express design choices in the organization of software components. In the form of a compile-time execution framework, C++ offers a way to offload this complexity to the compilation stage and keep the execution environment simple and efficient.

Inclus

12 vidéos1 lecture10 devoirs

Memory is one of the most critical resources of a computing platform. In this module, you will learn how memory is used in the C++ language and how memory access works on different types of machines. You will translate this knowledge into code that is at the same time clearly structured and efficient.

Inclus

15 vidéos1 lecture13 devoirs

Learn to think about your program in a way that puts the critical hardware resource, memory, in the center of your thoughts. Apply these principles to discrete-event systems, a problem solving strategy with applications in all applied areas of science. Understand that data-oriented programming is not opposed to object-oriented programming but rather offers a way to model your objects in a way that accounts for your data structure, your algorithms, and your hardware.

Inclus

8 vidéos9 devoirs

This module introduces you to an amazing feature available in the C++17 and onward: the ability to parallelize an algorithm with almost no effort, using C++ parallel algorithms. You will learn that you can gain a manifold speedup with simple changes by running your code on multi-core CPUs and on GPUs. You will dive once more into the working principles of computer memories to understand how to reach substantial performance improvements, and you will link the concepts of data-oriented programming to efficient paralellism.

Inclus

15 vidéos11 devoirs

Obtenez un certificat professionnel

Ajoutez ce titre à votre profil LinkedIn, à votre curriculum vitae ou à votre CV. Partagez-le sur les médias sociaux et dans votre évaluation des performances.

Instructeurs

Jonas Latt
University of Geneva
2 Cours46 251 apprenants
Bastien Chopard
University of Geneva
2 Cours46 251 apprenants

Offert par

University of Geneva

En savoir plus sur Algorithms

Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?

Felipe M.
Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’
Jennifer J.
Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’
Larry W.
Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’
Chaitanya A.
’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’
Coursera Plus

Ouvrez de nouvelles portes avec Coursera Plus

Accès illimité à 10,000+ cours de niveau international, projets pratiques et programmes de certification prêts à l'emploi - tous inclus dans votre abonnement.

Faites progresser votre carrière avec un diplôme en ligne

Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne

Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires

Améliorez les compétences de vos employés pour exceller dans l’économie numérique

Foire Aux Questions