PREPA-025 / coefficient 0

Enseignant(s): Hardiman Leonard Paul Arthur, Maatouk Ghid, Sauser Roger

Langue: Français


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

Dans les plans d'études

  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: ICS (pour CMS)
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Type: obligatoire
  • Semestre: Printemps
  • Forme de l'examen: Pendant le semestre (session d'été)
  • Matière examinée: ICS (pour CMS)
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Type: obligatoire
  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: ICS (pour CMS)
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Type: obligatoire
  • Semestre: Printemps
  • Forme de l'examen: Pendant le semestre (session d'été)
  • Matière examinée: ICS (pour CMS)
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Type: obligatoire

Semaine de référence

Mercredi, 8h - 10h: Cours PO01

Mercredi, 10h - 12h: Exercice, TP CM1106
CM1104
CO020
CO023
CO021

Cours connexes

Résultats de graphsearch.epfl.ch.