CES7AJ - CES9AK INTRODUCTION À C/C++ CES7AJ - CES9AK Crédits : 4 ECTS Introduction à C/C++ Durée : 36 heures Semestre : S7 + S9 Responsable(s) : Pierre-Etienne MOREAU, Professeur, [email protected] 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 : Description et verbes opérationnels Niveaux 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 Appliquer 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 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