Cette page propose des ressources sur le langage Python pour la spécialité NSI au lycée. Les travaux pratiques présentés doivent permettre à un élève de maîtriser les notions de base du langage et d’acquérir des savoirs plus larges sur l’informatique en général. Par ailleurs, il est important de les réaliser dans l’ordre présenté car la progression pédagogique mise en place doit être respectée. L’objectif visé étant de pouvoir se lancer de manière autonome dans des projets de fin d’année ambitieux et intéressants.
I – Les notions fondamentales de Python
Dans cette série de TP, les concepts informatiques généraux abordés sont les suivants :
- structures de contrôle d’un langage de programmation
- affichage et saisie utilisateur
- signature de fonction
- langage objet et méthodes d’objet
- fonction de hachage et générateur de nombres pseudo-aléatoires
- fichiers textes, fichiers binaires, fichiers CSV et persistance des données
Les notions propres au langage Python :
- typage et transtypage des variables
- test conditionnel, boucle FOR et WHILE
- défintion de fonction et retour multiple
- manipulation et formatage de chaînes de caractères
- listes simples et listes imbriquées : recherche de minimum, de maximum et tri de valeurs
- tirage de nombres aléatoires avec le module random
- tuples et dictionnaires
- manipulation de fichiers en lecture/écriture
La pédagogie proposée est d’introduire les concepts de manière simple et concrète au fur et à mesure de leur utilisation dans les exercices et sans rentrer dans des détails trop techniques. Par exemple, l’écriture d’un petit programme simple d’authentification avec vérification de mot de passe permet d’illustrer la notion de fonctions de hachage. L’apprenant intéressé pourra approfondir les notions de manière autonome en consultant les ressources au bas de cette page.
Au début de la courbe d’apprentissage, beaucoup de temps est consacré à la résolution des messages d’erreurs de Python. Pour les comprendre, on pourra s’aider de ce document.
II – Pour aller plus loin en Python
Cette série de TP est l’occasion de présenter des concepts un peu plus avancés pour l’élève courageux et investi dans son apprentissage :
- encodage numérique d’une image : pixel et espace colorimétrique
- différences entre langage compilé et langage interprété
- classe d’objet et instance de classe
- mécanisme de gestion des exceptions en Python
- documentation de code
- algorithmes de traitement d’images : filtres de couleurs, négatif d’une image, histogramme des intensités de couleurs, filtres de convolution et filtre médian
- tracé de courbes
- utilisation de librairies externes : Pillow et matplotlib
Travaux Pratiques | Fichiers d'exercices | Fichiers de corrections |
---|---|---|
Traitement d'images I | perroquet.jpg Exercice 1 Exercice 2 | Corrigé exercice 1 Corrigé exercice 2 |
Traitement d'images II | Exercice 1 Exercice 2 | Corrigé exercice 1 Corrigé exercice 2 |
Traitement d'images III | Exercice 1 Exercice 2 | Corrigé exercice 1 Corrigé exercice 2 |
III – Ressources à consulter
Ressources pour la spécialité NSI au lycée sur le site eduscol.
Les documentations Python, Pillow, et matplotlib sont indispensables lorsqu’on recherche des informations sur une méthode particulière.
Comme toujours, Wikipédia est une porte d’entrée incontournable quand on aborde un nouveau concept :
- Les langages de programmation
- Les fonctions de hachage
- Générateur de nombres pseudo-aléatoires
- Fichier texte et fichier binaire
- Image matricielle et modèle RGB
- Filtres de convolution
- Filtres de détection de contours
Enfin, des sites d’apprentissage du langage Python ou encore des forums pour poser des questions ou bien des sites d’informations sont indispensables lorsqu’on débute en programmation en général ou sur un certain langage en particulier :