Logo MIAI

Grenoble AI Summer School July 2023

Ce cours propose une introduction à la programmation en Python et s'adresse à un public débutant en algorithmique et en programmation. Il n'y a aucun pré-requis.

Python est un langage à la syntaxe relativement simple qui permet d'acquérir les bases de l'algorithmique de manière plus aisée que d'autres langages de programmation qui nécessitent la maîtrise de mécanisme bas-niveaux, tels que le C.


L'objectif de la formation Fidle est de proposer une introduction au Deep Learning, allant des concepts fondamentaux aux architectures avancées (VAE, Transformers, GAN, ...).
Cette formation est totalement libre, gratuite et ouverte à toutes et à tous !

Pré-requis :
  • Bases de l'algorithmique : variables & types, instruction conditionnelle (Si), boucle (Pour et Tant que), tableaux (ou listes au sens Python)
  • (recommandé mais pas strictement nécessaire) implémentation en C ou en Python des bases de l'algorithmiques mentionnées ci-dessus

Objectifs :

  • Savoir analyser un algorithme : complexité temporelle, preuve de correction, preuve de terminaison
  • Maîtriser plusieurs structures de données : avantages et inconvénients de chacun, savoir les manipuler
  • Maîtriser les algorithmes classiques de parcours et de tri

Contenu/Plan du cours :

  • Rappels des notations de pseudo-code
  • Complexité temporelle
  • (Introduction aux) Preuves d'algorithme : correction, terminaison
  • Récursivité
  • Structure de données liste chaînée :
    • Variantes : simplement chaînée, doublement chaînée, doublement chaînée circulaire
    • Comparaison de complexité avec les tableaux pour les opérations usuelles.
  • Structures de données pile et file
  • Arbre binaire (enraciné).
    • Vocabulaire, opérations simples
    • Parcours (en largeur, en profondeur, préfixe, infixe, suffixe)
    • Introduction aux Arbres Binaire de Recherche : recherche et insertion simple (sans rotation)
  • Algorithmes classiques de tri : par insertion, par sélection, rapide, fusion

À la fin de ce cours, vous serez capable de :

  • Créer une base de données
  • Créer et modifier des tables
  • Insérer, modifier, supprimer et sélectionner des données dans la base
  • Réaliser une requête portant sur plusieurs tables avec les jointures