v2.11.0 (5687)

Cours scientifiques - SIM201 : Programmation scientifique en C++

Domaine > Applied Maths.

Descriptif

Ce cours s’adresse aux étudiants qui seront amenés à travailler dans un environnement où le développement logiciel, bien que n’étant pas nécessairement le cœur de métier, est très présent, par exemple les laboratoires de recherche et développement des grandes entreprises et ce dans tous les domaines (mécanique, physique, finances,…). L’utilisation avancée et le développement des logiciels s’inscrivant dans un contexte technique et scientifique spécifique au laboratoire, il requiert bien évidemment un bon niveau  dans les disciplines concernées mais également un bon niveau de programmation, car il s’agit soit de développer un code « durable » soit d’intégrer de nouvelles fonctionnalités dans un code existant reposant sur des concepts informatiques avancées. Les logiciels scientifiques se différencient des logiciels de gestion par des exigences de performance et une complexité des méthodes mises en œuvre . Par le passé, ils ont été développés en Fortran et sont aujourd’hui de plus en plus développés en C++ afin de bénéficier d’une couche objet plus riche et plus sûre. 
Le cours proposé a pour objectif de fournir aux étudiants quelques clés importantes du développement logiciel dans ce contexte. Une partie importante du cours est dédiée au langage C++ afin que l’étudiant acquiert  un niveau suffisant pour développer du code objet.
En parallèle, on aborde des problématiques spécifiques des codes de calcul scientifique : rapidité, efficacité, optimalité, stabilité des calculs.

Une place importante sera donnée à la pratique car pour bien programmer il faut programmer "beaucoup". Dans un premier temps, afin d’acquérir les bases, des séances de travaux pratiques sont proposées.

Objectifs pédagogiques

  • Être capable de prendre en compte les problèmes spécifiques d’un code de calcul scientifique : rapidité, efficacité, optimalité, stabilité des calculs.
  • Être capable de développer du code objet en langage C++ (héritage, programmation générique)

21 heures en présentiel (7 blocs ou créneaux)
réparties en:
  • Travaux dirigés en salle info : 14
  • Cours magistral : 7

Diplôme(s) concerné(s)

Parcours de rattachement

Pour les étudiants du diplôme Master 1 Applied Mathematics ans statistics - Orsay

Programmation en C

Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées

Programmation en C (IN101)

 

Format des notes

Numérique sur 20

Littérale/grade européen

Pour les étudiants du diplôme Master 1 Applied Mathematics ans statistics - Orsay

Vos modalités d'acquisition :

F=note finale, TD=Travaux dirigés, E=Examen final - Session 1 : F=0,5 QCMs+ 0,5 TP7 rapport - Session 2 : F=1E

Le rattrapage est autorisé (Note de rattrapage conservée)
  • le rattrapage est obligatoire si :
    Note initiale < 7
  • le rattrapage peut être demandé par l'étudiant si :
    7 ≤ note initiale < 10
L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 2 ECTS
  • Scientifique acquis : 2

Le coefficient de l'UE est : 1

La note obtenue rentre dans le calcul de votre GPA.

L'UE est évaluée par les étudiants.

Pour les étudiants du diplôme Master 1 Parisien de Recherche Opérationnelle

L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 2.5 ECTS

Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées

Vos modalités d'acquisition :

QCMs and TP7 report

Le rattrapage est autorisé (Max entre les deux notes écrêté à une note seuil)
  • le rattrapage est obligatoire si :
    Note initiale < 6
  • le rattrapage peut être demandé par l'étudiant si :
    6 ≤ note initiale < 10
L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 2 ECTS
  • Scientifique acquis : 2

Le coefficient de l'UE est : 1

La note obtenue rentre dans le calcul de votre GPA.

L'UE est évaluée par les étudiants.

Programme détaillé

  1. CM: Introduction. C++ une extension du C:
    TD: familiarisation avec un environnement de développement C++, exercices basiques
  2. CM: Eléments d'analyse numérique : Représentation des réels, opérations sur les réels, stabilité numérique, vitesse d'exécution:
    TD: expérimentation numérique sur l'instabilité numérique
  3. CM: Introduction à la notion d'objet:
    TD: Ecriture d'une classe vecteur et matrice
  4. CM: Surcharge des opérateurs:
    TD: Surcharge des opérateurs sur les vecteurs et les matrices
  5. CM: Programmation générique (classe modèle):
    TD: Développement de classes vecteur et matrice génériques
  6. CM: Héritage de classes:
    TD: Classe matrice pleine et bande héritant d'une classe abstraite
  7. CM: Librairies et introduction à la stl:
    TD: Utilisation de la stl : list et itérateur

Mots clés

Programmation, C++, Objet, logiciel scientifique, Simulation numérique, projet
Veuillez patienter