Skip to content

Latest commit

 

History

History
183 lines (140 loc) · 5.59 KB

CONTENTS.md

File metadata and controls

183 lines (140 loc) · 5.59 KB

Plan du MOOC sur Python 3

Semaine 1

Thème: Introduction au MOOC et aux outils Python

Niveau: BASIC

  • w1-s1: Organisation du MOOC
  • w1-s2: Pourquoi Python ?
  • w1-s3: Interpréteur et IDLE
  • w1-s4: Les notebooks
  • w1-s5: Notions de variables, objets et typage dynamique
  • w1-s6: Les types numériques

Semaine 2

Thème: Notions de base pour écrire son premier programme en Python

Niveau: BASIC

  • w2-s1: Codage, jeux de caractères et Unicode
  • w2-s2: Les chaînes de caractères
  • w2-s3: Les séquences
  • w2-s4: Les listes
  • w2-s5: Introduction aux tests if et à la syntaxe
  • w2-s6: Introduction aux boucles for et aux fonctions
  • w2-s7: Introduction aux compréhensions de listes
  • w2-s8: Introduction aux modules

NOTE: intégrer w2-s9-x1 qui contient un exo par Benoit Izard

Semaine 3

Thème: Renforcement des notions de base, références partagées

Niveau: BASIC, sauf w3-s8 INTERMÉDIAIRE

  • w3-s1: Les fichiers
  • w3-s2: Les tuples
  • w3-s3: Tables de hash
  • w3-s4: Les dictionnaires
  • w3-s5: Les ensembles
  • w3-s6: Les exceptions
  • w3-s7: Les références partagées
  • w3-s8: Introduction aux classes

Semaine 4

Thème: Fonctions et portée des variables

Niveau: BASIC

  • w4-s1: Fonctions
  • w4-s2: Tests if/elif/else et opérateurs booléens
  • w4-s3: Boucles while
  • w4-s4: Portée des variables - règle LEGB
  • w4-s5: Modification de la portée avec global et nonlocal
  • w4-s6: Passage d'arguments et appel de fonctions

Semaine 5

Thème: Itération, importation et espace de nommage

Niveau: BASIC

  • w5-s1: Itérable, itérateur, itération
  • w5-s2: Objet fonction, fonction lambda, map et filter
  • w5-s3: Compréhension de listes, sets et dictionnaires
  • w5-s4: Expressions et fonctions génératrices
  • w5-s5: Modules et espaces de nommage
  • w5-s6: Processus d'importation des modules
  • w5-s7: Importation des modules et espaces de nommage

Semaine 6

Thème: Conception des classes

Niveau: BASIC, sauf w6-s6, w6-s7, w6-s8 INTERMÉDIAIRE

  • w6-s1: Classes, instances et méthodes
  • w6-s2: Méthodes spéciales
  • w6-s3: Héritage
  • w6-s4: Héritage multiple et ordre de résolution des attributs
  • w6-s5: Variables et attributs
  • w6-s6: Conception d'itérateurs
  • w6-s7: Conception d'exceptions personnalisées
  • w6-s8: Conception de context manager

Semaine 7

Thème: L'écosystème data science Python

Niveau: BASIC

  • w7-s01: Présentation générale
  • w7-s02: numpy: le type ndarray
  • w7-s03: numpy: slicing, reshaping et indexation avancée
  • w7-s04: numpy: vectorisation
  • w7-s05: numpy: broadcasting
  • w7-s06: pandas: introduction aux Series et aux indexes
  • w7-s07: pandas: le type DataFrame
  • w7-s08: pandas: opérations avancées
  • w7-s09: pandas: gestion des dates et des séries temporelles
  • w7-s10 (pas de vidéo): notebooks concernant matplotlib

Semaine 8

Thème: Programmation asynchrone - asyncio

Niveau: AVANCÉ

  • w8-s1: Programmation asynchrone
  • w8-s2: Quelques exemples simples
  • w8-s3: asyncio: historique et écosystème
  • w8-s4: Extensions asynchrones du langage
  • w8-s5: Coroutines et awaitables
  • w8-s6: Boucles d'événements
  • w8-s7: Tâches et exceptions
  • w8-s8: La librairie asyncio
  • w8-s9: Bonnes pratiques

Semaine 9

Thème: Sujets avancés

Niveau: AVANCÉ

  • w9-s1: Méthodes statiques et de classe
  • w9-s2: Les décorateurs
  • w9-s3: Les clôtures de fonctions
  • w9-s4: Les métaclasses
  • w9-s5: property et descripteurs
  • w9-s6: Protocole d'accès aux attributs


fin du cours



DROPPED/TODO LATER

  • w9-s5: La performance en Python
    • essayer de parler de profilage (%timeit %prun %lineprofiler), ça serait bien de parler du décompilateur, mais je connais très mal.

Compléments

  • type hints
    • il faut à mon avis qu'on mentionne ça dans au moins une vidéo - même si c'est pour dire que ce sera traité comme un complément; par exemple W1-S5, quoique c'est sans doute trop tôt..

librairies utiles

  • pytest

  • Date DateTime

  • docstrings + tools

  • regexp

    • en semaine 2 lorsqu'on parle des string, ça me semble bien dans un complément avancé.
  • un truc qui serait à mon avis pas mal; en semaine 8, ajouter une séquence 'projet type sous github'; sans nécessairement entrer trop dans les détails, on pourrait partir d'un projet déjà existant dans github et montrer:

IDEA TO DISCUSS

au lieu d'introduire le contenu de la semaine dans la premiere vidéo (ce qui fige la réorganization des vidéo), faire une vidéo 0 en chaque début de semaine pour introduire le contenu de la semaine.

DRAFT

Python 3:

introduire tot les notions de différents objets (type buit-in, classe, module et expliquer le role de chaque type d'objet).

  • faire une classe qui prend un phrase et construit une liste de mots, implémenter   str  , __len__, __contains__
  • couvrir unittest (Thierry: je préconise plutôt pytest qui est un surensemble)
  • sourire dans les vidéos
  • faire des exercices d'application faisant quelque chose d'utile
  • corriger des exercices en vidéo
  • pour les notions avancées commencer par expliquer à quoi ça sert (décorateur, métaclasse, descripteurs, etc.)