Support pour les 13 séances de travaux pratiques
- Séance 1 : introduction
- Séance 1 : premiers pas
cliquer ici pour copier / coller les examples
- Séance 2 : variables, boucles, fonctions, recherche dichotomique
- Séance 3 : fonctions et dictionnaires, code de Vigenère
- Séance 4 : modules, fichiers, expressions régulières
- Séance 5 : classes, attributs, méthodes, carrés magiques
- Séance 6 : classes, héritage
- Séance 7 : calcul scientifique, pandas, numpy, matplotlib
- Séance 8 : SQL, stations vélib
- Séance 9 : Graphes, javascript, d3.js
Cette séance est réservée à ceux qui sont déjà à l'aise avec la programmation
ou qui pratiquent le javascript.
L'environnement IPython Notebook
permet de tester des scripts javascript assez facilement. Voir également :
More about interactive graphs using Python.
Pour les autres, on s'entraînera avec l'énoncé 2010-2011.
- Séance 10 : programmation dynamique
- Séance 11 : arbre, trie
- Séance 12 : optimisation sous contraintes
- Séance 13 : séance notée, voir plus bas.
Quelques exercices pour se préparer (de difficultés croissantes) :
exercice 1,
exercice 2,
exercice 3,
exercice 4,
exercice 5.
Vous trouverez dans l'article qui suit
les instructions pour installer Python
et les modules importants :
Installer Python pour faire des statistiques.
Supports
Modules
Références
L'informatique évolue très vite. Il ne faut pas acheter un livre trop vieux (plus de 2, 3 ans). Il vaut mieux un livre qui se retreint aux bases du langages
et utiliser un moteur de recherche pour les besoins spécifiques. Le meilleur est sans doute d'avoir un geek pour ami.
Autour du langage Python
- Python avec la Khan Academy :
La Khan Academy propose des leçons de dix minutes sur des sujets précis. Cet article
suggère quelques pointeurs.
- Python Tutor :
Ce site permet de visualiser l'exécution de programmes courts.
Très pratique lorsqu'on apprend.
- Apprenez à programmer en Python (Vincent Le Goff) :
Le livre peut être acheté où téléchargé. Le livre est bien conçu, chaque concept est expliqué de façon concise et sans interférence avec d'autres concepts.
- Apprentissage de la programmation (Gérard Swinnen) :
Le livre est mise à jour de façon régulière au gré des évolutions du langages, c'est un des rares livres à survivre d'années en années.
- Programmation Python (Tarek ZIADÉ) :
Le livre est aussi constamment mis à jour. Le chapitre techniques avancées définit ce qu'est l'écriture d'un programme
destiné à d'autres personnes qu'à soi-même (mise en production, tests unitaires).
- Python for Kids (Jason R. Briggs) :
(English) It introduces the language bases, easy to read and colorful.
- Learning Python the Hard Way (Zed. A. Shaw) :
(English), every chapter follows the sam pattern: concept, example, your turn.
- Raspberry Pi - Le guide de l'utilisateur (Eben Upton, Gareth Halfacree)
Pour ceux qui veulent programmer en Python le plus petit ordinateur du monde
(pour ceux qui ont l'âme de Mister Q).
Python et datamining
- Python for Data Analysis (Wes McKinney) :
Ce livre ne vous apprendra rien sur l'analyse des données mais il présente les outils les plus utilisés aujourd'hui pour faire de l'analyse des données avec Python.
- Building Machine Learning Systems with Python (Willi Richert, Luis Pedro Coelho) :
Revue des techniques les plus utilisées en machine learning aujourd'hui.
Mathématiques
Appartés
Quelques exemples développés en cours.
Examens passés
Certains énoncés nécessitent des données ou des bouts de programmes.
Ils sont accessibles ici :
données complémentaires.
Séances notées
- énoncé 2005-2006, correction
(recherche dans une liste triée de mots)
- énoncé 2006-2007, correction
(éloignement des jours fériés, fonctions et classes)
- énoncé 2007-2008, correction
(statistiques simples sur un fichier plat de données - logs)
- énoncé 2008-2009, correction
(composition optimale d'une somme avec un système de pièces de monnaie)
- énoncé 2009-2010, correction
(clustering en 2D)
- énoncé 2010-2011, correction
(clustering dans Paris)
- énoncé 2011-2012, correction
(statistiques simples sur un fichier plat de données - temps passé devant la télévision)
- énoncé 2012-2013, correction
(coloriage)
- énoncé 2013-2014, correction
(recherche dichotomique, distance d'édition). L'énoncé s'appuie sur les deux
programmes suivant :
Séances de rattrapage :
Interrogations rapides
- énoncé 2012-2013 (1),
correction
(récurrence, fréquences, somme)
- énoncé 2012-2013 (2),
correction
(triangle de Pascal, tri, statistiques, permutation aléatoire)
- énoncé 2013-2014 (1),
correction
(interprétation d'une erreur, compréhension d'une fonction non commentée)
- énoncé 2013-2014 (2),
correction
(correction d'un programme, entiers parfaits, entiers divisible par 11)
- énoncé 2013-2014 (3),
correction
(fréquence des lettres dans un mot, anagrammes)
Examens écrits
- énoncé 2005-2006
(héritage, précision des calculs, ...)
- énoncé 2006-2007
(coût d'un algorithme, ...)
- énoncé 2006-2007 (rattrapage 1)
(comprendre et corriger des erreurs d'algorithme, ...)
- énoncé 2006-2007 (rattrapage 2)
- énoncé 2007-2008
(réduction de boucles, coût d'une suite récurrente double, héritage, ...)
- énoncé 2007-2008 (rattrapage)
(comparaison de deux listes, précision des calculs, hyper cube, passage par adresse, ...)
- énoncé 2008-2009
(portée des variables, dictionnaires imbriqués, plus court chemin dans le métro, ...)
- énoncé 2008-2009 (rattrapage)
(listes récursives, alignement de numéros)
- énoncé 2009-2010
(erreurs simples, permutations, ordre d'écriture de comparaisons le plus rapide en fonction des données, ...)
- énoncé 2010-2011
(coloriage, sac-à-dos)