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 base
support le 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 notes de cours
concepts 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 exercices interactifs
s'effectuent 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écute son 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 épreuves chronométrées
Description du cours