Salut !
Ce sujet a pour but d'organiser la rédaction du premier cours de ce projet, à savoir « Python 3 pour l'apprenti sorcier », dont la rédaction collaborative est menée sur ce dépôt GitHub.
Suite à une remarque pleine de bon sens dans les issues, il est clair qu'il faut qu'on définisse un plan, grâce auquel il sera plus facile d'avancer en parallèle…
D'abord, l'objectif du cours est de transmettre une bonne base à propos de la programmation Python, à des débutants complets. Je pense qu'on peut sainement se dire que cette "bonne base" correspond plus ou moins à ce qu'on peut attendre d'un élève d'ISN en Terminale (mais en carrément plus solide, évidemment1) :
- Manipuler des variables, reconnaître les types de données (sans oublier que ce sont tous des objets) ;
- Utiliser et écrire des fonctions (passage par référence, arguments optionnels, keyword arguments) ;
- Connaître les structures de contrôle du flot d'exécution :
if/else
,while(/else)
,for(/else)
,try/except/finally(/else)
,with ... (as ...)
;
- Gérer les exceptions (sans forcément savoir définir des nouveaux types d'exception) ;
- Manipulations simples sur des fichiers (lire/écrire dans un fichier, a minima en mode texte) ;
- Manipuler les builtins (
list
,tuple
,set
,str
,…) ; - Utiliser quelques fonctions (et objets) de la bibliothèque standard, aller piocher des infos dans la doc ;
En somme, être capable d'écrire un programme Python structuré (compatible avec un projet d'ISN). La limite haute du cours c'est le mot-clé class
, qui marquera le début du cours suivant sur la conception et la programmation orientées objet : à la fin de ce cours l'apprenant a juste besoin de savoir utiliser des objets et savoir plus ou moins que tout est un objet. Ça fait déjà un bel éventail, j'en conviens.
Mettons-nous d'accord sur le plan. Une fois un consensus atteint, on pourra créer les issues correspondantes sur GitHub.
Voilà un premier jet du plan :
-
Introduction
- Généralités
- Installation (à terminer)
-
Premier contact avec la console interactive (déjà écrit)
- premières notions de programmation (expression, sémantique, syntaxe)
- manipulation rapide de chaînes et de nombres
-
"Des noms et des objets" (déjà écrit)
- Notion de variable
- Notion de type: certains objets sont des données (
str
,int
,float
) et d'autres sont des actions (fonctions)
-
Branchements confitionnels (entamé)
- Booléens
- prédicats (
not
,or
,and
) if/else
while
-
Collections
- Listes
- tuples,
- dictionnaires
- boucle
for
- opérateur
in
-
Fonctions
- Définition d'une fonction (
def
,return
) - arguments optionnels
- Définition d'une fonction (
-
Gestion des exceptions
try/except/finally
raise
(en se servant d'exceptions standard, styleRuntimeError
,ValueError
…)
-
Manipulation de fichiers
open()
read()/write()
- itération sur un fichier en mode texte
with open(...) as monfichier:
Tout cela devrait évidemment être entrecoupé de TD/TPs qui seront d'abord des exemples détaillés, puis qui deviendront progressivement de simples cahiers des charges au fur et à mesure que le cours avancera.
Évidemment, rien n'est figé dans le marbre.
Qu'en pensez-vous ? Voyez-vous des oublis ? Avez-vous des remarques ? Suggestions ?