2024—2025
For the lesson lies in learning
And by teaching I'll be taught
Les versions imprimables consistent en les mêmes transparents, à peu de choses près, que ceux montrés aux cours; la différence principale est que les slides correspondant à plusieurs transparents (sur lesquels on rajoute du texte au fur et à mesure) sont comprimés en un seul transparent.
Certaines feuilles d'exercices existent en version "indices", où des indications ont été rajoutées pour les exercices plus difficiles. N'hésitez pas à les consulter si vous ne vous en sortez pas.
- BUT 1: Initiation au développement
- BUT 3: Qualité algorithmique
- L3: Algorithmique des graphes
- SHNU: Administration d'un système GNU / Linux
Partie programmation
Les transparents ci-dessous concernent la partie programmation (merci à Cyril Nicaud pour la première version de ces transparents).Cours | TD | doctests |
---|---|---|
|
|
Partie algorithmique
Voici les notes de cours (partie algorithmique) (version du 01/01/1970).Les sujets de TD d'algorithmique:
- installer le module matplotlib, puis vérifier l'installation en exécutant test_matplotlib.py. Si tout s'est bien passé, le programme doit vous montrer un graphique avec les courbes de plusieurs fonctions, et sauvera le résultat dans l'image test.png dans votre répertoire courant.
Pour installer matplotlib:
-
sous les systèmes GNU/Linux dérivés de Debian (Ubuntu, etc.): ouvrez un terminal et tapez
sudo apt-get install python3-matplotlib
ousudo aptitude install python3-matplotlib
- sous Windows: ouvrez un terminal en exécutant la commande cmd, puis tapez les deux commandes suivantes (remplacez python par python3 si nécessaire):
python -m pip install -U pip setuptools python -m pip install matplotlib
- sous Mac: suivre les instructions habituelles pour l'installation des programmes sous Mac.
-
sous les systèmes GNU/Linux dérivés de Debian (Ubuntu, etc.): ouvrez un terminal et tapez
- lisez ce document, qui résume ce que nous devrons connaître des fonctions pour ce TP; elles seront couvertes plus en détails lors du prochain cours de programmation.
Liens utiles
- Télécharger Python: ici (prenez la version 3).
- La documentation de Python 3.
- PythonTutor; n'oubliez pas de préciser la version de Python à utiliser pour exécuter votre code.
- Structure d'un programme Python: modele.py
- "Apprendre à programmer avec Python 3", un livre de référence écrit par Gérard Swinnen disponible gratuitement en PDF.
- Apprendre Python et d'autres langages en s'amusant: CodinGame
- Apprendre Python en s'amusant (niveau avancé): The Python Challenge
- Un programme pour tester votre installation matplotlib: test-matplotlib.py (utilisation: python3 test-matplotlib.py)
- Un programme pour vous aider à comprendre la récursivité : decorecursivite.py (lisez son contenu pour savoir comment le réutiliser pour les fonctions récursives que vous écrirez)
Matériel de cours
Cours | TP |
---|---|
|
|
Quelques références
- High Performance Python: Practical Performant Programming for Humans, de Micha Gorelick et Ian Ozsvald
Notes de cours
- Chapitre 0: Rappels de complexité et programmation orientée objet en Python (version du 01/01/1970)
- Chapitre 1: Notions de base (version du 01/01/1970)
- Chapitre 2: Parcours et applications (version du 01/01/1970)
- Chapitre 3: Graphes pondérés (version du 01/01/1970)
- Chapitre 4: Graphes orientés (version du 01/01/1970)
- Chapitre 5: Plus courts chemins (2) (version du 01/01/1970)
- Chapitre 6: Flots (version du 01/01/1970)
- Chapitre 7: Techniques algorithmiques (version du 01/01/1970)
Algorithmes vus au cours
- Parcours de graphes non orientés et applications
- Arbres couvrants, Dijkstra
- Algorithmes sur les graphes orientés
- Algorithmes pour le calcul de plus courts chemins (2)
- Algorithmes pour le calcul de flots
- Techniques algorithmiques
- Branch and bound
Feuilles de TD
Liens utiles
- Le site de Graphviz et la documentation du langage dot, comprenant la description des options des divers programmes de dessin.
Matériel de cours
Voici:- les notes de cours (version du 01/01/1970), en complément des slides ci-dessous;
- un résumé des commandes et programmes standards sous GNU / Linux (version du 01/01/1970).
Slides
Les slides sont en cours de réécriture. Vous pouvez déjà consulter les anciennes versions de l'an passé ci-dessous.Feuilles de TP
Vidéos
- Installer Ubuntu sur VirtualBox; téléchargez la dernière version d'Ubuntu et installez VirtualBox
Liens utiles
- Advanced Bash-Scripting Guide: une ressource très complète sur l'écriture de scripts bash.
- RegExr: pour se former aux expressions régulières.
- The Bandit wargame, pour apprendre à se servir du shell en s'amusant.
- The Linux Command Line, un livre disponible gratuitement en PDF couvrant la ligne de commande et les scripts shell.