Arborescence des pages
ConfigureOutils de l'espace
Aller directement à la fin des métadonnées
Aller au début des métadonnées

CES7AJ - CES9AK 

Introduction à C/C++

 

Crédits : 4 ECTS

Durée : 36 heures

Semestre : S7 + S9

Responsable(s) :

Pierre-Etienne MOREAU, Professeur, pierre-etienne.moreau@univ-lorraine.fr

Mots clés : langage machine, langage de programmation, microprocesseur, compilation, structures de donnée, gestion de la mémoire, outils de build

 

Pré requis : Être motivé

Objectif général :

“This course provides a fast­paced introduction to the C and C++ programming languages.
You will learn the required background knowledge, including memory management, pointers, preprocessor macros, object­oriented programming, and how to find bugs when you inevitably use any of those incorrectly.” (MIT 6.S096)

 

Programmes et contenus :

Comprendre de manière abstraite le mécanisme d’exécution des programmes

Être capable de comprendre le fonctionnement d’un programme

Être capable d’écrire ou de modifier un programme écrit en C ou C++

Fonctionnement d’un ordinateur

    • architecture
    • rappels sur l'exécution d'un programme
    • processeur, langage machine
    • langage d’assemblage, assembleur
    • langage haut niveau, compilation
    • notion de machine abstraite
    • mémoire, donnée, programme
    • introduction à Unix

Compilation pipeline

    • pré­processeur
    • compilation, règles de déclaration, règles de typage
    • compilation séparée, linkage
    • conception modulaire de programmes
    • outils de build (makefile)

Syntaxe et sémantique de core C

    • types de données élémentaires
    • codage de l’information (int, short, char)
    • structures de contrôle
    • notion de tableau

Organisation de la mémoire

    • notion d’adresse
    • déréférencement
    • pile et tas
    • allocation dynamique

Structures de données avancées

    • type record
    • allocation dynamique et gestion de la mémoire

Introduction à C++

    • encapsulation des données, classes, espace de noms, constructeurs et destructeurs
    • gestion de la mémoire, constructeurs et destructeurs

Programmation objet

    • héritage, polymorphisme
    • liaison dynamique
    • entrées/sorties

Utilisation avancées

    • standard template library
    • pointeurs de fonctions
    • exceptions
    • standardisation

Applications

    • Exemples issus de problématiques liées aux départements autres que I&S

Compétences : 

Niveaux

Description et verbes opérationnels

Connaître 

la syntaxe et la sémantique des constructions du langage C
les règles de typage du langage
le rôle des différents outils de développement

Comprendre 

le fonctionnement de base d’un ordinateur et les différents niveaux de langages
le rôle d’un préprocesseur et d’un compilateur
les mécanismes de compilation modulaire
la notion de pointeur et les mécanismes de gestion de la mémoire
les principes de base de la programmation objet

Appliquer 

savoir mettre en place une architecture de base pour développer un logiciel
savoir compiler et exécuter un logiciel sur une plate­forme spécifique

Analyser 

savoir choisir une structure de donnée adaptée pour résoudre un problème
savoir détecter les erreurs de programmation

Synthétiser

savoir définir une structure de donnée et les différentes fonctions associées
savoir exprimer un algorithme en langage C

Évaluer

savoir évaluer la qualité d’un code écrit pour y déceler des améliorations possibles

Évaluations :

  • Test écrit
  • Contrôle continu
  • Oral, soutenance
  • Projet
  • Rapport
  • Aucune étiquette