Syllabus INFO-H-100 Informatique -
Release 3.2 (2012)
Thierry Massart
December 12, 2012
CONTENTS
1 Présentation du cours 1
1.1 Avant-propos ................................... 1
1.2 But du cours ................................... 1
1.3 Compétences principales visées ......................... 2
1.4 Ressources .................................... 3
1.5 Pourquoi Python ? (et pas C++, Java, ...) .................... 3
1.6 Un peu de vocabulaire .............................. 3
2 Mon premier programme Python 5
2.1 Notions fondamentales .............................. 5
2.2 Python pour faire des calculs ........................... 5
2.3 Erreur syntaxique ................................. 7
2.4 Python pour manipuler du texte ......................... 7
2.5 Variables et assignation ............................. 8
2.6 print() ....................................... 9
2.7 Types ....................................... 10
2.8 input() ...................................... 11
2.9 Commentaires .................................. 11
2.10 Assignation multiple et assignation de tuples .................. 12
2.11 Autres fonctions prédéfinies intéressantes .................... 12
2.12 Mon premier programme complet ........................ 13
2.13 Sémantique précise de l’assignation ....................... 14
3 Contrôle de flux (instructions if et while) 17
3.1 Conditions et instruction conditionnelle if .................... 17
3.2 Instruction pass .................................. 21
3.3 Instruction répétitive while ............................ 21
3.4 Instruction for .................................. 24
3.5 break et continue ................................. 24
4 Définition de nouvelles fonctions 25
4.1 Fonction retournant une valeur .......................... 25
4.2 Type des paramètres et du résultat ........................ 26
4.3 Fonction ne retournant pas de valeur ....................... 27
4.4 Exécution de la fonction appelée (passage de paramètres par valeur) ...... 28
4.5 Espace de noms (namespace), variables locales et globales ........... 30
i
4.6 Passage de fonction comme argument et fonction lambda ........... 32
4.7 Valeur par défaut pour les paramètres et argument mots-clés .......... 32
5 Chaînes de caractères (strings), tuples, listes et instruction for 33
5.1 Chaînes de caractères (strings) .......................... 33
5.2 Tuples ...................................... 36
5.3 Listes ....................................... 38
5.4 Instruction for .................................. 46
5.5 Autres opérations et méthodes sur les séquences, strings, listes ......... 47
5.6 Compréhension de liste (list comprehension) .................. 48
5.7 Copie de listes complexes et réference cyclique ................. 49
6 Conception d’algorithmes simples 55
6.1 Récurrences simples ............................... 55
6.2 Manipulation de séquences ............................ 58
6.3 argv et eval .................................... 62
6.4 Polygones réguliers avec le module turtle .................... 63
6.5 Tableaux à plusieurs dimensions ......................... 64
7 Création d’un module de gestion de polynômes 67
7.1 Encodage d’un polynôme ............................ 67
7.2 Opérations sur les polynômes .......................... 67
7.3 Plot de polynômes avec turtle .......................... 69
8 Ensembles et Dictionnaire 73
8.1 Set ........................................ 73
8.2 Dictionnaire ................................... 74
8.3 Changement de type ............................... 80
9 Recherches et tris 85
9.1 Les classiques : recherches ............................ 86
9.2 Les classiques : tris ................................ 88
10 Notion de complexité et grand O97
10.1 Motivation .................................... 97
10.2 Le grand O....................................103
10.3 Application des règles de calcul .........................110
10.4 Complexité des méthodes de manipulation de séquences ............115
11 Logique, invariant et vérification d’algorithme 119
11.1 Introduction ...................................119
11.2 Rappel de logique ................................120
11.3 Exprimer l’état du programme formellement ..................123
11.4 Preuve partielle et totale .............................128
11.5 Exemples de preuves d’algorithmes .......................131
12 Récursivité 135
12.1 Motivation et introduction du concept ......................135
12.2 Mécanismes ...................................138
ii
12.3 Structures de données récursives .........................142
12.4 Traduction de fonction récursive en fonction itérative ..............144
12.5 Gestion de la mémoire à l’exécution .......................145
13 Fichiers, persistance et Exceptions 159
13.1 Fichiers et persistance ..............................159
13.2 Exceptions ....................................162
14 Classes et objets 169
14.1 Objet et classe ..................................169
14.2 Définition de nouvelles classes ..........................170
14.3 Programmation orientée objet ..........................179
15 Quelques mots sur les langages de programmation 181
15.1 Introduction ...................................181
15.2 Les langages de programmation .........................187
15.3 Paradigmes des langages de programmation ...................191
15.4 Histoire des langages de programmation ....................192
16 Glossaire 201
17 Aide-mémoire Python 3.2 - (version Octobre 2012) 207
17.1 Fonctions .....................................207
17.2 Modules .....................................207
17.3 Opérations et méthodes sur les séquences (str, list, tuples) ...........208
17.4 Méthodes sur les str ...............................208
17.5 Opérateurs et méthodes sur les listes s ......................209
17.6 Méthodes sur les dict ...............................209
17.7 Méthodes sur les fichiers .............................210
17.8 Exceptions ....................................210
Index 211
iii
1 / 218 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !