Programmation avancée et outils de développement
Ref: 3IF1020
Description
Les objectifs de ce cours sont de présenter :
- les principaux concepts que l'on retrouve dans les différents langages de programmation de haut niveau, et les variations sur leurs mises en œuvre ; un objectif secondaire est l'apprentissage des langages de programmation C et C++,
- la programmation système,
- les approches actuelles de développement des logiciels (DevOps, Software craftsmanship).
Période(s) du cours
SD9
Prérequis
- 1CC1000 : Systèmes d'Information et Programmation
- 1CC2000 : Algorithmique et Complexité
Syllabus
- Concepts des langages de programmation
- Introduction, panorama des langages de programmation, modules et fichiers
- Approche impérative
- Approche fonctionnelle
- Approche objet
- Approche générative
- Compléments
- Programmation système
- Threads, processus
- Mécanisme de communication et de synchronisation
- Outils de développement avancés
- DevOps
- Intégration et déploiement continus
- Software craftsmanship
Composition du cours
- Cours magistraux : 12h00
- Travaux dirigés : 3h00
- Travaux pratiques : 15h00
- Ateliers : 6h00
- Travail personnel (exercices à terminer) : 24h00
Ressources
Ce cours est constitué de cours magistraux pour présenter les concepts, de travaux pratiques permettant une appropriation opérationnelle de ces concepts et d'ateliers sur les aspects outillage et méthodologie.
Résultats de l'apprentissage couverts par le cours
À l'issue de ce cours, les élèves seront capables :
- d'écrire des programmes corrects et performants en C et C++ ;
- d'apprendre rapidement un nouveau langage de programmation ;
- d'utiliser dans un programme les possibilités offertes par un système d'exploitation ;
- de mettre en œuvre les approches modernes de développement de logiciels.
Support de cours, bibliographie
- Livres
- The C++ Programming Language - Bjarne Stroustrup
- Programmer en C++ : Des premiers pas à la maîtrise de C++20 - Alain Gibaud - Ellipses
- Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 - Scott Meyers
- Supports
- Transparents commentés projetés pendant les cours magistraux
- Énoncés des exercices à réaliser lors des travaux pratiques et en travail personnel