Le langage Python
INFOS DU JOUR :
- Pas d'infos pour le moment...
1 - Objectifs :
Cette page a pour but de regrouper diverses ressources permettant
une introduction au langage de programmation Python. On y trouve
notamment :
- Des exemples de programmes, des exercices d'application
avec leur solution, ainsi que des projets plus complexes,
tous classés par niveaux de difficulté
- Des pointeurs vers quelques-uns des documents disponibles
sur le Web, pour l'apprentissage de la syntaxe et des fonctionnalités
du langage Python
- Un petite aide à l'installation et au démarrage de l'environnement
de développement Python sous Windows
Le contenu de l'UE comporte trois éléments pédagogiques principaux :
- Les diaporamas (cf. Rubrique 4, ci-dessous) qui fournissent les notions
théoriques
- Les exemples de programmes (cf. Rubrique 2) qui montrent ces notions
théoriques mises en pratique dans un code informatique
- Les exercices de programmation (cf. Rubrique 2) qui permettent une réflexion
et une pratique autonome par les étudiants
Pour accompagner ces ressources pédagogiques déjà disponibles, je vais créer des
fichiers audio et/ou vidéo qui fournissent le discours oral qui vient
habituellement accompagner ces ressources. Ces fichiers vont être mis à
disposition sur ce site, au fur et à mesure de leur création. Un calendrier de
lecture de ces fichiers sera proposé, ce qui vous permettra d'étudier les
notions abordées, en amont d'un cours ou d'un TD.
De la même manière, le discours audio durant les sessions de questions/réponses,
et les sessions de TD sera enregistré, édité pour enlever les séquences inutiles
puis mis en ligne sur ce site, ce qui permettra aux étudiants non présents de le
suivre à leur rythme, indépendamment de la performance de leur accès à internet
et des déconnexions éventuelles pouvant se produire avec des sessions en
streaming.
2 - Exemples, Exercices et Projets
3 - Contrôle des connaissances
Comme indiqué dans les modalités de contrôle des connaissances, la note
finale de l'UE est composée pour 2/3 de la note obtenue lors de l'examen
final et pour 1/3 de la note obtenue pour le projet. L'examen final aura
lieu lors de la session de janvier. Le sujet se composera de deux ou trois
exercices de programmation, similaires à ceux réalisés en TD. Les documents
sont autorisés, mais en fait, vous n'aurez besoin que des exemples et des
solutions des exercices vus en cours et en TD.
Les projets sont à réaliser en binôme. Quelques dérogations peuvent être
accordées pour la réalisation d'un projet en monôme (notamment pour les
étudiants qui ont déjà une très bonne maîtrise de la programmation), par contre
les trinômes ne sont pas autorisés. Ces sujets sont tous à difficulté variable
en fonction des éléments qui vous allez y intégrer, et une notation adaptée à
cette difficulté sela utilisée. Cette notation portera dans une très large
majorité sur la qualité du code (structuration, lisibilité, adéquation des
structures de données et des algorithmes) et dans une moindre mesure sur les
différentes fonctionnalités incluses dans le programme. En particulier, la
structuration du code en classes bien choisies, ainsi qu'un bon usage des
commentaires et des docstrings sur l'ensemble du programme seront des critères
de notation très importants. Par conséquent, la note finale d'un projet
avec peu de fonctionnalités mais bien conçu, peut largement dépasser celle d'un
projet très fourni mais bâclé.
La présentation des projets se déroulera durant une séance spécifique durant la
semaine XX et vous aurez jusqu'à la fin de la semaine XX pour constituer les
binômes. Un compte mail spécifique est mis en place, destiné à tous les échanges
liés aux projets: miashs.prog2@gmail.com (à utiliser impérativement).
Afin de suivre le projet en cours de réalisation, les séances de TD à partir de
la semaine du XXX seront consacrées au suivi du projet.
Comme expliqué lors de la séance de présentation des projets, chaque binôme
devra envoyer des versions intermédiaires de son travail tous les 15 jours
durant la période allouée au projet. Plus précisément, les dates limites
pour l'envoi des deux versions intermédiaires correspondent à la fin des
semaines XX et XX respectivement. La version finale sera envoyée au début
de la semaine XX.
Tous les envois se feront par courrier électronique à l'adresse mail
ci-dessus avec, en pièce-jointe, une archive ZIP ou RAR contenant l'ensemble des
fichiers sources du programme ainsi qu'un fichier "readme.txt" qui résumera
les travaux réalisés durant la quinzaine. Afin de permettre un classement
efficace des versions successives du projet, le nom de l'archive devra
impérativement être "nombinomeA+nombinomeB+N.zip" où 'N' représente le
numéro de la version envoyée (donc 1, 2 ou 3). Pour simplifier, les deux
patronymes des membres du binôme seront mis dans l'ordre alphabétique. Enfin,
le sujet du message correspondant contiendra également le nom de cette archive.
Comme la gestion de ces courriers électroniques utilise des filtres automatiques
sur les messages, il est IMPERATIF de respecter scrupuleusement ces modalités.
Le non-respect engendrera des points de pénalités sur la note finale.
La version finale devra contenir, en plus du code source, une courte (4 pages
max) documentation du programme (impérativement au format PDF). Cette
documentation ne doit pas faire double emploi avec le code source, mais au
contraire, doit permettre de préciser des éléments additionnels (choix
algorithmiques, limitations actuelles du projet, bilan chronologique de la
réalisation, etc) qu'il vous semblera utile de communiquer pour mieux faire
comprendre comment vous avez géré la réalisation de votre projet. Un message
d'accusé de réception sera envoyé pour chaque version finale, n'hésitez pas à
me relancer si vous n'avez pas eu de réponse après le XXX.
Enfin, une séance de démonstration des différents projets sera organisée en
salle informatique durant la semaine d'examen début janvier (les horaires
seront établis en fonction du calendrier des examens, dès qu'il sera diffusé).
Il faut compter entre 10 et 15 minutes par binôme, selon le nombre de questions
à poser. Un ordre de passage sera établi pour éviter les embouteillages.
4 - Ressources pédagogiques
- Le site officiel de Python :
www.python.org
- La version courante (Python 3.10.0) pour Windows, Linux, Max OS :
téléchargement sur www.python.org
Remarque : les machines du CREMI utilisent une version plus
ancienne, mais cela ne change rien car toute version de Python >= 3.6.0 convient
pour l'ensemble des exemples/exercices qui seront vus durant le semestre
- Les diaporamas que j'ai utilisés durant les séances de cours,
en version imprimable (4 diapos par page):
Programmation 1
Programmation 2
Modélisation UML
- Pour une introduction générale au langage Python, il y a l'excellent
ouvrage "Apprendre à programmer avec Python",
par Gérard Swinnen (473 pages) :
téléchargement sur Inforef ou (plus rapide)
copie locale
- Pour la création d'interfaces graphiques en Python, il y a le manuel
"Tkinter Reference: a GUI for Python",
par John Shipman (168 pages) :
téléchargement sur NewMexicoTech ou (plus rapide)
copie locale
5 - Installation et utilisation de l'environnement Python sous Windows
Après avoir téléchargé le fichier, "python-X.Y.Z.msi"
(où X.Y.Z correspond au numéro de la version récupérée),
un double-clic sur celui-ci permet de lancer l'installation de
l'environnement Python sous Windows. A la fin de l'installation, il
doit y avoir une nouvelle entrée "Python X.Y" dans le menu Démarrer.
L'environnement de programmation se lance alors en cliquant sur
l'entrée "IDLE" de ce menu. La fenêtre suivante s'affiche :
A partir de ce moment, on peut soit entrer des commandes Python
directement dans la fenêtre "Python Shell",
soit créer une fenêtre d'édition (raccourci
clavier : Ctrl+N) pour saisir un programme
complet :
A tout moment, un appui sur F5 permet d'exécuter le contenu de
la fenêtre d'édition sélectionnée.
...
Christophe Schlick