ICS (for CMS)
PREPA-025 / coefficient 0
Teacher(s): Hardiman Leonard Paul Arthur, Maatouk Ghid, Sauser Roger
Language: French
Résumé
Ce cours présente les fondements de la programmation Python et une introduction à la pensée algorithmique à travers des algorithmes fondamentaux.
Contenu
Programmation Python
1. Notions générales et caractéristiques du langage Python
2. Syntaxe du langage Python, types de données, variables, références, opérateurs
3. Fonctions: fonctions prédéfinies, définition et appel d'une fonction, paramètres, arguments, portée des variables, import de bibliothèques
4. Structures de contrôle du flux (choix et boucles)
5. Structures de données: chaînes de caractères, listes, tuples, dictionnaires, compréhensions
Algorithmique
1. Compréhension d'algorithmes: identification de l'entrée et de la sortie, réponse aux questions "cet algorithme est-il correct?" et "cet algorithme termine-t-il?"
2. Analyse du temps de parcours d'un algorithme :
- calcul du nombre d'opérations
- expression du temps de parcours à l'aide de la notation grand-O
- comparaison de la vitesse de croissance de différents temps de parcours exprimés en notation grand-O
3. Récursivité
4. Algorithmes de recherche: recherche linéaire, recherche binaire (par dichotomie) d'un élément dans une liste
5. Algorithmes de tri: tri par insertion, tri par bulles (bubble sort), tri par sélection, tri par fusion (merge sort)
6. Algorithmes de graphes: définition, applications, représentation de graphes, parcours en largeur (BFS), parcours en profondeur (DFS), plus court chemin, arbre couvrant
Mots-clés
programmation, Python, syntaxe Python, fonctions Python, structures de données Python, Jupyter Notebook, algorithmique, temps de parcours, récursivité, algorithmes de recherche, algorithmes de tri, algorithmes de graphes
Acquis de formation
A la fin de ce cours l'étudiant.e doit être capable de:
- Concevoir des programmes Python et des algorithmes afin de résoudre des problèmes proposés et en respectant des consignes spécifiées
- Analyser des programmes Python et des algorithmes donnés (y compris comprendre leur but, expliquer leur fonctionnement, corriger d'éventuelles erreurs, estimer le temps de parcours, anticiper leurs résultats, améliorer leur conception)
Méthode d'enseignement
Cours ex cathedra et travaux pratiques sur ordinateur
Méthode d'évaluation
Contrôles écrits
Encadrement
| Office hours | Non |
| Assistant.e.s | Oui |
| Forum électronique | Oui |
Ressources
Bibliographie
- Notes de cours disponibles en ligne
- T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Algorithmique : cours avec 957 exercices et 158 problèmes, Dunod, 2010, ISBN : 9782100545261
Ressources en bibliothèque
Liens Moodle
Préparation pour
Cours PREPA-026 ICS (pour CMS)
Cours de 1ère année a l'EPFL
In the programs
- Semester: Fall
- Exam form: During the semester (winter session)
- Subject examined: ICS (for CMS)
- Courses: 2 Hour(s) per week x 14 weeks
- Courses: 2 Hour(s) per week x 14 weeks
- Exercises: 2 Hour(s) per week x 14 weeks
- Exercises: 2 Hour(s) per week x 14 weeks
- Type: mandatory
- Semester: Spring
- Exam form: During the semester (summer session)
- Subject examined: ICS (for CMS)
- Courses: 2 Hour(s) per week x 14 weeks
- Exercises: 2 Hour(s) per week x 14 weeks
- Type: mandatory
- Semester: Fall
- Exam form: During the semester (winter session)
- Subject examined: ICS (for CMS)
- Courses: 2 Hour(s) per week x 14 weeks
- Courses: 2 Hour(s) per week x 14 weeks
- Exercises: 2 Hour(s) per week x 14 weeks
- Exercises: 2 Hour(s) per week x 14 weeks
- Type: mandatory
- Semester: Spring
- Exam form: During the semester (summer session)
- Subject examined: ICS (for CMS)
- Courses: 2 Hour(s) per week x 14 weeks
- Exercises: 2 Hour(s) per week x 14 weeks
- Type: mandatory