Programmation impérative en Python

Introduction

Ceci est la page du cours de programmation impérative en python que je donne en première année de licence. Vous trouverez ci-dessous toutes les informations concernant l’organisation de l’UE, les support de cours, ainsi que les sujets de TD et de TP. Bon courage et bon travail !

Le cours s’appuie sur le langage Python pour découvrir les bases de la programmation et de l’algorithmique. L’objectif est de découvrir les grands principes de la programmation, de savoir construire des petits programmes utiles et/ou amusants et de s'initier à l'algorithmique. Concrètement, nous aborderons les points suivants :

Pour information, ce cours a été initié par Jean-Paul Roy, mon prédécesseur à la fac de Nice. Il a écrit récemment un livre sur Python qui pourra vous aidez à travailler seul.

Consignes pour lire un cours et travailler seul

En cette première année de licence, il est important que vous apprenniez à travailler seul. En générale, trop d'étudiants se contentent du minimum soit en écoutant passivement un joyeux barbu donner des explications sur une estrade, soit en se contentant de lire rapidement le fichier pdf du cours. Ce n'est pas ainsi que l'on apprend (et surtout que l'on comprend).

Pour bien comprendre un cours, il ne suffit donc pas de le lire, il faut le lire en essayant les bouts de code. Que fait-il ? Que ce se passe-t-il si je change ceci ? Et si je change cela ? Et si j'enlève cette ligne ? C'est ainsi qu'on apprend un langage informatique et non pas en lisant des explications de manière passive. De manière générale retenez que la réussite d'un étudiant tient bien plus de son travail personnel que de la qualité des explications de l'enseignant.

Prenez le temps de lire correctement les cours avec Python 3 ouvert à côté pour essayer les morceaux de code que l'on y trouve. Le lire sans essayer n'est guère utile. Si c'est en forgeant qu'on devient forgeron, c'est en pythonnant qu'on devient pythonneux (vous comprenez l'idée…).

Logiciel

Dans ce cours nous utiliserons le langage Python 3 avec le logiciel Thonny que vous pouvez télécharger à l’adresse thonny.org. Nous vous conseillons fortement de l’installer sur votre ordinateur personnel pour pouvoir travailler chez vous.

Pour tous ce qui concerne la partie graphique et animation, nous utiliserons dans ce cours la bibliothèque Tk. Une documentation complète, francophone et sous licence libre, se trouve sur le site de Pascal Ortiz.

Partiel

Le partiel aura lieu le jeudi 21 mars à 15h30 sur les chapitres 1 à 5. Si vous avez déjà un cours ou un TP sur ce créneau, merci de prévenir le plus vite possible l'enseignant concerné. S’il vous explique que ce n'est pas possible, merci de me prévenir au plus tôt que l'on puisse trouver rapidement une solution.

Il n'y aura pas de cours de Python la semaine du partiel : ni TD, ni TP, ni CM.

Projet tk

Comme annoncé durant les amphis, il y aura un projet Tk pour ceux et celles qui le souhaitent. Il faudra créer, en Python et en Tk, un petit programme avec un canvas correspondant : 1) soit à un petit jeu, 2) soit à une animation 3) soit à une image statique paramétrable avec des boutons, des curseurs et les touches du claviers.

  1. Le projet est facultatif.
  2. Le projet devra être fait individuellement.
  3. Le projet devra être rendu sur Moodle, au plus tard le jour de l’examen. Si votre travail consiste en plusieurs fichiers, il faudra rendre une archive zip.
  4. Le programme ne doit utiliser que les outils vu en cours. Si vous souhaitez utiliser une bibliothèque tierce, il faudra en faire la demande préalable.
  5. Votre code devra être conçu suivant le format du cours : un objet état possédant une méthode affichage et responsable de la production de l’image dans le canvas. Pour une animation, on utilisera une fonction tictac pour faire évoluer l’état au cours du temps.
  6. Le projet devra être codé proprement et commenté. En particulier je dois comprendre rapidement ce que fait votre code en le lisant. Les noms de fonctions et de variables doivent être explicites. Les choix non triviaux doivent être expliqués en commentaire.

Si certains le souhaitent, je serais présent dans l’amphi info, lundi 15 avril à 10h30 et jeudi 18 avril à 15h30, pour répondre aux questions sur le projet.

Cours, TD et TP

Les différentes ressources pour les cours seront mises à disposition au fur et à mesure des semaines.

Il y a deux versions pdf de chaque cours :

Les corrigés sont accessibles à la fin de chaque semaine:

Cours avec animations Cours sans animations Travaux dirigés Travaux pratiques
1. Variables, fonctions et conditions Cours 1 TD 1 ( * * ) TP 1 ( * * )
2. Boucles while et récursions Cours 2 TD 2 ( * * ) TP 2 ( * * )
3. Boucles for et chaînes de caractères Cours 3 TD 3 ( * * ) TP 3 ( * * )
4. Graphismes, objets et variables globales Cours 4 TD 4 ( * * ) TP 4 ( * * )
5. Listes, tuples et gestion mémoire Cours 5 TD 5 ( * * ) TP 5 ( * * )
6. Exceptions et fichiers textes Cours 6 TD 6 ( * * ) TP 6 ( * * )
7. Modules et types abstraits Cours 7 TD 7 ( * * ) TP 7 ( * * )
8. Ensembles, dictionnaires et matrices Cours 8 TD 8 ( * * ) TP 8 ( * * )
9. Animations et algorithmes Cours 9 TD 9 ( * * ) TP 9 ( * * )

Pour ceux qui le souhaitent, le sujet sur lequel nous avons travaillé pendant les séances de révision pour les OUI-SI :


Emploi du temps

Voici les emplois du temps des différents groupes pour l'année 2023-2024.

Vous pouvez le récupérer au format pdf. Télécharger l'emploi du temps. Pour information, les TP se feront au troisième étage du petit Valrose.

Emploi du temps du cours de programmation impérative

Annales

Année Partiel Examen terminal Seconde session
2020-2021 Sujet (correction) Sujet (correction) Sujet (correction)
2021-2022 Sujet (correction) Sujet (correction) Sujet (correction)
2022-2023 Sujet (correction) Sujet (correction) Sujet (correction)
2023-2024 Sujet (correction)
Université Côte d’Azur Debian Gnu/Linux GNU/Emacs Auto hébergement
CSS 2.1 valid xhtml 1.0 valid