CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
3IF1020 - Ateliers de programmation et outils de développement

Table des matières

1. Détails pratiques

Le dépôt Git 3if1020 contient le code (exemples du cours, fichiers squelettes pour les TD et TP) associé à ce cours. Vous devez donc, après avoir choisi votre environnement de programmation (voir ci-dessous), vous y rendre et, après authentification, suivre les indications données.

Si vous utilisez des branches, vous devez les fusionner dans master.

⚠️ Ni fichier objet, ni binaire exécutable dans un dépôt git ⚠️


Campus de Saclay : Des dates limites de prise en compte de vos versions sur votre dépôt GitLab sont indiquées pour chaque sujet.


Le travail sur un TP est individuel. Chacun des 5 TP est noté entre 0 et 4, la somme des 5 notes donne la note du cours.

Pour avoir la note maximale sur un TP, il faut bien sûr faire la partie avancée. Mais réaliser correctement tous les TP sans faire ces parties avancées permet de valider très largement le cours. Les parties avancées sont donc destinées aux étudiant.e.s motivé.e.s et/ou intéressé.e.s par les extensions proposées.


Même si les TP sont notés, ils sont avant tout destinés à vous faire acquérir des compétences de programmation. Aussi, n'hésitez pas à demander de l'aide en dehors des créneaux prévus à l'emploi du temps.

Vous pouvez contacter votre encadrant de TP par messagerie ou par un autre moyen qu'il vous proposera le cas échéant.


Notation

Le code que vous déposez sur GitLab doit bien sûr se compiler et s'exécuter. Mais la note attribuée prendra en compte de manière significative la qualité de votre code (structuration, simplicité…) et sa lisibilité.

Extrait de Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin known as Uncle Bob) :

“Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. …[Therefore,] making it easy to read makes it easier to write.”

On peut ajouter dans le contexte spécifique des TP notés : “makes it easier to understand.”

Deux principes utiles pour cela : KISS et DRY.

Vous pouvez consulter avec profit cette page qui reprend des extraits de code de vos prédécesseurs et vous en propose une version plus simple et plus lisible.

Environnements de programmation

Les encadrants ne sont pas compétents sur l'ensemble de ces environnements et ne pourront pas toujours vous aider si vous avez des problèmes avec le votre. La solution de sécurité est d'utiliser MyDocker

  • Pour les créneaux à l'emploi du temps : demander un environnement 3IF1020 correspondant au créneau.
  • Pour travailler en dehors des créneaux de l'emploi du temps : utiliser l'environnement 3IF1020 daté du 21 septembre 2023.

  • ⚠︎ Environnements lourds sous Windows : pour le premier TP de programmation système, il faut soit utiliser WSL, soit un environnement léger.
  • Il y a maintenant une nouvelle version du standard C++ tous les 3 ans. Le minimum requis pour faire les exercices demandés est la version 2011 du standard, mais il est fortement conseillé d'utiliser la version 2017, et même 2020 si elle est disponible. Certains compilateurs continuent d'utiliser par défaut la version 1998 du standard, il faut alors ajouter sur la ligne de commande l'option -std=c++20 (ou -std=c++2a, ou -std=c++17…) pour ne pas avoir d'erreur lors de l'utilisation du typage par inférence (auto) ou des lambdas ou …

2. Présentation du cours

Support de cours

3. Concepts des langages de programmation, mise en œuvre en C/C++

Support de cours

Exercices

4. Programmation système

Support de cours

Exercices

5. Outils de développement avancés