1.
2.
3.
4.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
1.
2.
3.
Objectifs
L'objectif principal de ce cours est de former l'étudiant aux notions de de la programmation par objets avec comme support le base
langage . À l'issue de ce cours, l'étudiant sera en mesure de:Python
résoudre des problèmes de programmation en maniant efficacement les éléments fondamentaux de :procédure
•les blocs ,séquentiels
•conditionnels,
•et ;répétitifs
effectuer la d'un problème;décomposition fonctionnelle
intégrer les concepts dans la résolution d'un problème:orientés objets
•notion de et ,classe d'objet
•d'encapsulation,
•de et passage de ,méthode message
•d'héritage,
•et de ;polymorphisme
écrire des programmes pour entre autres réaliser:Python
•des ,interfaces graphiques
•du .calcul scientifique
Contenu du cours
Types de données et opérations: nombres, chaînes de caractères, listes, dictionnaires, tuples et fichiers.
Énoncés et syntaxe de base: affectation, expressions, énoncés séquentiels, conditionnels et répétitifs, entrées/sorties,
documentation du code; notion de complexité algorithmique.
Fonctions: décomposition fonctionnelle, pré- et post conditions, arguments, itérateurs, fonction lambda, fonctions génératrice;
notion de récursion
Classes et objets: notions d'encapsulation, d'héritage, de composition, de surdéfinition d'opérateurs, d'espace de noms et de
polymorphisme; portée des identifieurs.
Modules: architecture d'un programme Python, création et usage d'un module, espaces de noms, importation de modules; aperçu
de la librairie standard: dates et heure, nombres aléatoires, encodage unicode, expressions régulières, sérialisation, journalisation,
itérateurs, etc.
Exceptions: mécanismes de traitement des erreurs et tests unitaires.
Interfaces graphiques: notion de programmation événementielle; introduction à «tkinter».
Programmation orientée objet: retour sur les classes et les hiérarchies de classes; notion de «design pattern»; introduction à UML.
Programmation fonctionnelle: retour sur les «lambda», les fonctions génératrices et les «itertools».
Calcul scientifique: tableaux multidimensionnels, matrices et calcul matriciel; introduction à «numpy/matplotlib».
Python vs C/C++: processus de compilation et d'édition des liens; typage statique des données, expression, pointeur, fonction et
arguments; énoncés séquentiels, conditionnels et répétitifs; classes et objets.
Déroulement du cours
Chaque semaine, l'étudiant doit procéder de façon à trois types d'activités:autonome
Étudier des thématiques qui lui permettent non seulement d'exécuter les exemples illustrant les concepts notes de cours
théoriques, mais également de les modifier afin de pouvoir répondre lui-même à des questions de type « que se passerait-il si je
faisais ceci au lieu de cela? ».
Faire des qui permettent d'assimiler les notions présentées dans les notes de cours. Ces exercices s'effectuent exercices interactifs
via une interface web spécialement conçue à cette fin. L'étudiant résoud le problème posé en écrivant ses énoncés Python dans
l'interface web, puis il exécuteson code dans cette interface afin de le tester. En pressant simplement un bouton, il peut ensuite
soumettre sa solution à un serveur qui la corrigera automatiquement en lui fournissant, le cas échéant, des indications sur la
nature de ses erreurs. L'étudiant peut alors modifier sa solution puis la soumettre de nouveau jusqu'à la satisfaction des exigences
de l'exercice.
Tester ses connaissances avec des (quiz) qui simulent sur une durée plus courte le déroulement des épreuves chronométrées
Description du cours