1ALG1A - Algorithmique 1
Appartient à l'UE Algorithmique 1
Personnes enseignantes
- Arnaud Pollaris (APO)
- Jonas Beleho (BEJ)
- Emanuel Falkenauer (EFA)
- Amine Hallal (HAL)
- Laurent Beeckmans (LBC)
- Rami Oueslati (ROU)
Description technique du cours
- Acronyme de l’activité : ALG1
- 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 oeuvre les différentes techniques exposées.
Les algorithmes sont rédigés dans un pseudo-code au vocabulaire minimal (une dizaine de mots clés) permettant une traduction aisée dans le langage de programmation enseigné dans le cours de développement.
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
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 oeuvre 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.
- Lors d’une évaluation, appelée bilan, organisée à mi-parcours.
- 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
- 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
- Algorithmes linéaires
- Variables, constantes
- Types courants (entier, réel, booléen, chaîne, caractère)
- Lecture/écriture des données
- Structures alternatives
- Si… [sinon…] finsi
- Selon que…
- Modularisation
- Variables en entrée, valeur de retour
- Appel d’algorithmes
- Réécriture d’algorithmes précédents
- Types structurés
- Structures classiques : date, moment, point…
- Itérations
- Boucle de type POUR
- Boucle de type TANT QUE
- Générations de suites
- Lecture multiple (valeur sentinelle)
- Parcours des chiffres d’un nombre
- Algorithmes arithmétiques (PPCM, PGCD, nombre premier)
- Tableaux à une dimension
- Initialisation de tableau
- Parcours de tableau
- Recherche dans tableau trié
Bibliographie
Syllabus du cours, accessible sur poESI