1ALG1A - Algorithmique I

Appartient à l'UE Algorithmique I

Personnes enseignantes

Description technique du cours

  • Acronyme de l’activité : 1ALG1A
  • Bloc : 1
  • Quadrimestre : 1
  • Nombre de crédits : 4
  • Nombre d’heures de cours : 40
  • Nombre d’heures de travail hors cours (estimation) : 40
  • Format du cours : classe
  • Langue d’instruction : français
  • Implantation : HE2B – ESI
  • Pré-requis : néant
  • Co-requis : néant

Description générale du cours

Ce cours pose les bases du raisonnement spécifique à l’élaboration d’algorithmes informatiques. Il se compose d’une approche théorique illustrée d’exemples représentatifs, et de nombreux exercices visant à mettre en œuvre les différentes techniques exposées.

Les algorithmes sont rédigés dans un pseudo-code au vocabulaire minimal permettant une traduction aisée dans les langages de programmation enseignés dans les cours de développement.

Transition Environnementale et Sociale

La dimension écologique sera également prise en compte en favorisant l’écriture d’algorithmes optimisés, contribuant ainsi à un usage parcimonieux des ressources énergétiques consommées par les machines.

Objectifs généraux

Au terme de l’activité d’apprentissage, l’étudiante ou l’étudiant sera en mesure de :

  • Analyser dans un problème posé les données et le résultat attendu
  • Créer une marche à suivre permettant de résoudre un problème posé
  • Analyser un problème complexe pour le décomposer en sous-problèmes plus simples
  • Appliquer les “bonnes” pratiques algorithmiques : syntaxe claire, transparence du code, indentation correcte, choix adéquat des noms de variables, utilisation pertinente des variables booléennes, optimisation du code

Acquis d’apprentissage spécifiques sanctionnés par l’évaluation

Au terme des séances, l’étudiante ou l’étudiant sera évalué sur sa capacité à :

  • Identifier dans un problème posé les données et le résultat attendu
  • Rédiger des algorithmes simples dans le pseudo-code enseigné, et agissant sur des données numériques, des chaines de caractères ou des tableaux
  • Décomposer un problème complexe en sous-problèmes plus simples, et faire communiquer les différentes portions d’algorithme entre elles par le biais de paramètres et de valeurs de retour
  • Mettre en œuvre quelques modèles algorithmes classiques (parcours de tableau, parcours des chiffres d’un nombre, valeur sentinelle…)

Modalités d’évaluations

Le cours est évalué à deux moments distincts.

  1. Lors d’une évaluation, appelée bilan, organisée à mi-parcours.
  2. Lors d’une évaluation, appelée examen, organisée durant la session.

Le bilan et l’examen sont des évaluations écrites

Si le bilan est réussi (≥ 10/20) et que la note obtenue est supérieure à celle de votre examen, la cotation sera effectuée comme suit :

  • 25 % pour la note du bilan,
  • 75 % pour la note de l’examen.

Dans toute autre situation ainsi qu’en seconde et troisième session, la cotation sera effectuée comme suit :

  • 100 % pour la note de l’examen.

Contenu

Les contenus suivants pourront être abordés au sein de l’UE, dans un ordre qui sera déterminé par l’équipe enseignante :

  1. Introduction
    • Résolution de problème
    • Définition d’un problème “bien posé”
    • Spécification d’un problème : données, résultat attendu
    • Méthode de résolution, concept d’instruction
  2. Algorithmes linéaires
    • Variables, constantes
    • Types courants (entier, réel, booléen, chaîne, caractère)
    • Lecture/écriture des données
  3. Structures alternatives
    • if… [else…] (si… [sinon…])
    • switch (selon que…)
  4. Modularisation
    • Variables en entrée, valeur de retour
    • Appel d’algorithmes
    • Réécriture d’algorithmes précédents
  5. Types structurés
    • Structures classiques : date, moment, point…
  6. Itérations
    • Boucle de type « for » (pour)
    • Boucle de type « while » (tant que)
    • Générations de suites
    • Lecture multiple (valeur sentinelle)
    • Parcours des chiffres d’un nombre
    • Algorithmes arithmétiques (PPCM, PGCD, nombre premier)
    • Boucles imbriquées
  7. Tableaux à une dimension
    • Déclaration et initialisation de tableau
    • Parcours de tableau
    • Recherche dans tableau (non trié VS trié)
  8. Tableaux à deux dimensions
    • Déclaration et initialisation de tableau
    • Parcours de tableau

Bibliographie

Syllabus du cours, accessible sur poESI