ALG1 - Algorithmique I

Organisé au quadrimestre Q1

Coordinateur de l'unité: Laurent Beeckmans (LBC)

Activités d'apprentissage incluses

Sections concernées

Description

ALG1

Description générale du cours

Ce cours magistral pose les bases du raisonnemment nécessaires à 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 permettant la traduction immédiate dans le langage de programmation enseigné dans le cours de développement.

Objectifs

  • Pouvoir identifier clairement dans un problème posé les données et le résultat attendu
  • Acquérir l’aptitude à modéliser une marche à suivre permettant de résoudre un problème posé
  • Pouvoir rédiger des algorithmes simples dans le pseudo-code enseigné, et agissant sur des données numériques, des chaines de caractères et des tableaux
  • Pouvoir 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
  • Pouvoir traduire aisément les algorithmes vus dans le langage de programmation étudié dans le cours de développement
  • Assimiler quelques modèles algorithmes classiques (parcours de tableau, parcours des chiffres d’un nombre, valeur sentinelle…)
  • Acquérir les “bonnes” pratiques algorithmiques : syntaxe claire, transparence du code, indentation correcte, choix adéquat des noms de variables, utilisation pertinente des variables booléennes

Activités pédagogiques proposées

  • Cours magistral combinant exposé de concepts théoriques (25%) et nombreux exercices (75%)

Évaluation

  • bilan comptant pour 25% de la cote finale
  • examen comptant pour 75% de la cote finale

Matières de base utilisées

  • aucune en dehors des compétences supposées acquises dans l’enseignement secondaire

Plan du cours

ALGORITHMIQUE 1

  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 Si… finsi Si… sinon… finsi Si… sinon si… sinon… finsi 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 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)

  7. Tableaux à une dimension Parcours de tableau Recherche dans tableau trié