Programming
Présentation & objectifs
Bienvenue dans la partie du cours consacrée à la programmation !
L’objectif principal du bloc programmation est de consolider (ou de vous faire découvrir) votre capacité à écrire des programmes Python pour résoudre des problèmes. En parallèle, nous insisterons sur les bonnes méthodes de programmation, afin que les programmes que vous écrivez soient réutilisables et fiables.
Nous insisterons donc sur la documentation, les tests unitaires et la décomposition en fonctions. À la fin du semestre, nous vous proposerons une courte introduction à la programmation orientée objet, qui est l’étape suivante pour structurer un programme efficacement.
De plus, nous vous accompagnerons dans votre découverte de l’intelligence artificielle appliquée à la programmation. À cette fin, nous vous ferons utiliser des outils d’IA tels que GitHub Copilot, et terminerons le semestre par une large introduction à l’intelligence artificielle.
Planning
-
Session 1 – Bases de la programmation.
Écrire, exécuter et déboguer du code en suivant les bonnes pratiques de programmation.
-
Session 2 – Fonctions & bibliothèques.
Factoriser le code et favoriser la réutilisabilité (définir et utiliser des librairies).
-
Session 3 – Programmation défensive, tests unitaires & documentation.
Utiliser et concevoir des tests unitaires, apprendre la programmation défensive pour éviter les bugs, et apprendre à bien documenter un code.
-
Session 4 – Introduction à la programmation orientée objet.
Classes, objets, propriétés, méthodes, héritage.
-
Session 5 – Intelligence artificielle.
Découvrir les outils d’IA, et comment coder vos propres modèles.
Comment est organisée une session ?
Les sessions commenceront par une rapide présentation des concepts clés par votre enseignant, avec des diapositives. Ces diapositives ne contiendront qu’un résumé des notions que vous devez apprendre. Ensuite, vous devrez étudier quelques articles pour compléter cette présentation.
Après cette courte introduction, vous devrez travailler sur des exercices qui mettent en pratique les concepts de la session. Dans toutes les activités pratiques, nous vous demandons de commencer par désactiver les outils de codage IA, afin que vous compreniez les concepts fondamentaux des exercices. Plus tard, vous pourrez refaire les exercices avec ces outils activés pour optimiser votre code.
Une fois le cours terminé, vous devez vous assurer de compléter tous les exercices non optionnels, et de comprendre tous les concepts brièvement introduits par l’enseignant, en utilisant les articles détaillés. Nous vous proposons quelques quiz d’auto-évaluation pour vous aider à vérifier votre compréhension. N’hésitez pas à interagir sur la plateforme Discord !
Évaluation
Au début du premier cours de la session 3, nous commencerons par un exercice évalué de 45 minutes. Vous devrez télécharger le sujet sur Moodle, puis déposer une solution sur la même page dans le temps imparti.
Vous serez évalué selon les critères suivants :
- La justesse de votre code.
- L’adéquation de votre code avec la norme Python PEP8 (pensez à PyLint).
- La documentation de vos fonctions, notamment avec les annotations de type (pensez à MyPy).
La programmation sera également évaluée lors de l’examen final.