176 lines
6.9 KiB
Plaintext
176 lines
6.9 KiB
Plaintext
Première journée : Le langage Python
|
||
-------------------------------------
|
||
|
||
+------------------------------------------------------+------------------------------------------------------------------------+
|
||
| Contenus | Précisions et commentaires |
|
||
+======================================================+========================================================================+
|
||
| Recherche dans une liste, recherche du maximum dans | |
|
||
| une liste de nombres, calcul de la moyenne et de la | |
|
||
| variance. | |
|
||
+------------------------------------------------------+------------------------------------------------------------------------+
|
||
| Recherche d’un mot dans une chaîne de caractères. | On se limite ici à l’algorithme "naïf", en estimant sa complexité. |
|
||
+------------------------------------------------------+------------------------------------------------------------------------+
|
||
|
||
|
||
Séance 1 : Un apercu des possibles utilisations de Python
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
+ Objectif de la formation
|
||
|
||
+ les outils de travail avec Python
|
||
+ éditeur de texte + IPython (commandes intéractives + `%run`)
|
||
+ environnement de développement intégré (ex. Spyder)
|
||
+ Notebook IPython (proche de Maple/Mathematica)
|
||
|
||
|
||
Séance 2 : Éléments de base du langage
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
- structures de données
|
||
+ (),[],{}
|
||
+ listes en compréhension
|
||
|
||
- éléments du langage
|
||
boucles, conditions, fonctions, itérateur, map , enumerate
|
||
|
||
- Exemple en algorithmique de base
|
||
|
||
::
|
||
|
||
In [1]: def tri1():
|
||
|
||
%timeit l1.sort()
|
||
|
||
Séance 3 : Chaînes et fichiers
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
+ traitement des chaines de caractères
|
||
+ s.replace()
|
||
+ s1 + s2
|
||
+ un exemple de regexp simple
|
||
+ type de fichiers
|
||
+ mode d'accès
|
||
+ glob.glob
|
||
+ Sans doute ces points peuvent être intégrés dans la séance 2.
|
||
|
||
Séance 4 : Python Objet & Bases de données
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
+ Classe
|
||
+ Méthodes
|
||
+ Surcharge d'opérateurs
|
||
|
||
+ Construire un exemple de classe progressivement
|
||
|
||
Idéalement un exemple avec l'utilisation d'une base de données MySQL
|
||
utiliser `pymysql`
|
||
|
||
|
||
|
||
Deuxième journée : Python Scientifique
|
||
--------------------------------------
|
||
|
||
Séance 5 : Calcul numérique avec Numpy
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
+ Lecture fichiers (type structuré)
|
||
|
||
+ Algèbre de base
|
||
|
||
+ broadcasting
|
||
|
||
+ stacking(hstack,vstack,dstack)
|
||
|
||
+ boucle ou pas boucle einsum vs numba comme exemple
|
||
|
||
Séance 6 : Graphiques avec Matplotlib
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
+ `visite de la grande galerie <http://matplotlib.org/gallery.html>`_
|
||
et de `la petite galerie <http://www.loria.fr/~rougier/coding/gallery/>`_
|
||
+ construction d'un graphe simple en 2d en ajoutant des éléments
|
||
graduellement pour enrichir le graphe (légendes, titre, ....)
|
||
|
||
+ imshow , contouplot
|
||
|
||
+ 3D ?
|
||
|
||
Séance 7 : Calcul scientifique avec Scipy
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
+ optimisation
|
||
+ intégration, ode
|
||
+ stats
|
||
|
||
Séance 8 : Cas pratique de mise en oeuvre
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
|
||
+ écrire des instructions conditionnelles avec alternatives,
|
||
+ démontrer qu’une boucle se termine effectivement.
|
||
+ organisation modulaire des programmes
|
||
+ programmation structurée.
|
||
|
||
|
||
1. Récupérer des données physiques ouvertes sur le réseau (T°, ...)
|
||
2. Appliquer un traitement
|
||
3. Mettre en forme une représentation graphique des données
|
||
|
||
|
||
+ **Variables** : notion de type et de valeur d’une variable, types simples.
|
||
Les types simples présentés sont les entiers, flottants, booléens et chaînes de caractères.
|
||
|
||
+ **Expressions et instructions simples** :
|
||
affectation, opérateurs usuels, distinction entre expression et instruction
|
||
Les expressions considérées sont à valeurs numériques, booléennes ou de type chaîne de caractères.
|
||
|
||
+ **Instructions conditionnelles**:
|
||
expressions booléennes et opérateurs logiques simples, structurer et comprendre plusieurs
|
||
instruction if. Variantes avec alternative (else).
|
||
|
||
Les étudiants devront être capables de niveaux d’alternatives implantées par des instructions conditionnelles imbriquées.
|
||
|
||
+ **Instructions itératives** :
|
||
boucles for, boucles conditionnelles while.
|
||
Les sorties de boucle (instruction break) peuvent être présentées et se
|
||
justifient uniquement lorsqu’elles contribuent à simplifier notablement la
|
||
programmation sans réelle perte de lisibilité des conditions d’arrêt.
|
||
|
||
+ **Fonctions** :
|
||
notion de fonction (au sens informatique), définition dans le langage utilisé, paramètres (ou arguments) et résultats, portée des variables.
|
||
On distingue les variables locales des variables globales et on décourage l’utilisation des variables globales autant que possible.
|
||
|
||
La récursivité sera présentée plus tard.
|
||
|
||
+ **Manipulation de quelques structures de données**:
|
||
chaînes de caractères (création, accès à un caractère, concaténation), listes (création, ajout
|
||
d’un élément, suppression d’un élément, accès à un élément, extraction d’une partie de liste), tableaux à une ou plusieurs dimensions.
|
||
|
||
On met en évidence le fait que certaines opérations d’apparence simple cachent
|
||
un important travail pour le processeur. On met à profit la structure de
|
||
tableau d’entiers à deux dimensions pour introduire la notion d’image
|
||
ponctuelle (« bitmap »). Les algorithmes de traitement d’image seront abordés
|
||
plus tard.
|
||
|
||
+ **Fichiers** :
|
||
notion de chemin d’accès, lecture et écriture de données numériques ou de type chaîne de caractères depuis ou vers un fichier.
|
||
|
||
On encourage l’utilisation de fichiers en tant que supports de données ou de résultats avant divers traitements, par exemple graphiques.
|
||
|
||
|
||
+ **Piles**
|
||
Algorithmes de manipulation : fonctions 'push' et 'pop'. On utilise des listes
|
||
(ou tableaux à 1 dimension) pour leur implantation.
|
||
|
||
+ **Récursivité**
|
||
|
||
On en présente les avantages et les inconvénients.
|
||
|
||
+ **Tris** d’un tableau à une dimension de valeurs
|
||
numériques : tri par insertion, tri rapide (ou 'quicksort'),
|
||
tri par fusion. Application à la
|
||
recherche de la médiane d’une liste de nombres.
|
||
|
||
On étudie et on compare ces algorithmes de tri du point de vue des complexités temporelles dans le meilleur et dans le
|
||
pire cas.
|