ALG1 - Algorithmique I
Organisé au quadrimestre Q1
Responsable 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
-
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… finsi Si… sinon… finsi Si… sinon 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 Parcours de tableau Recherche dans tableau trié