Introduction à l'algorithmique

linfo1103  2021-2022  Louvain-la-Neuve

Introduction à l'algorithmique
5 crédits
30.0 h + 30.0 h
Q2
Enseignants
Langue
d'enseignement
Français
Préalables
Ce cours suppose acquises les notions de base de la programmation visées par le cours LINFO1101
Thèmes abordés
  • Conception et mise en oeuvre d'algorithmes itératifs ou récursifs : parcours, comptage, tri, recherche dans des collection
  • Complexité calculatoire
  • Structures de données élémentaires : tableaux, piles, files, listes chaînées
  • Structures de données récursives : structures arborescentes, arbres binaires de recherche
  • Invariants
Acquis
d'apprentissage

A la fin de cette unité d’enseignement, l’étudiant est capable de :

1
Eu égard au référentiel AA du programme « Bachelier en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • S1.I2, S1.I3
  • S2.2-4
  • S6.2
Les étudiants ayant suivi avec fruit ce cours seront capables de :
  • justifier un choix entre plusieurs solutions algorithmiques pour résoudre un problème donné,
  • analyser des d'algorithmes, itératifs ou récursifs, pour représenter et manipuler des collections et d'en proposer des variantes,
  • choisir, concevoir et utiliser des structures de données, y compris récursives,
  • donner une estimation motivée de la complexité temporelle d'algorithmes itératifs et de la complexité spatiale de structures de données,
  • raisonner sur des propriétés d'algorithmes ou de structures de données en terme d'invariants.
Les étudiants auront développé des compétences méthodologiques et opérationnelles. En particulier, ils ont développé leur capacité à :
  • porter un regard critique et faire une analyse argumentée sur une solution ou un ensemble de solutions qui pourraient être apportées à un problème posé en se fixant des critères de qualité,
  • réaliser des programmes de taille réduite utilisant des algorithmes et structures de données classiques.
 
Contenu
L'algorithmique concerne la résolution de problèmes par la mise en oeuvre de suites d'opérations élémentaires selon un processus défini aboutissant à une solution.
Cette discipline est à la fois abstraite et mise en pratique par le biais de programmes, typiquement en Python, exécutés sur un ordinateur. 
  • Complexité temporelle et spatiale
  • Algorithmes de recherche dans les tableaux
  • Types abstraits et structures de données : piles, files, tableaux dynamiques, liste chaînes
  • Algorithmes de tri
  • Récursion
  • Types abstraits récursifs
  • Complexité calculatoire des algorithmes récursifs, équations de récurrence
  • Arbres binaires et dictionnaires
  • Invariants
     
Méthodes d'enseignement
  • Cours magistraux
  • Travaux pratiques sur le serveur Inginious
  • Un projet en fin de quadrimestre
Modes d'évaluation
des acquis des étudiants
Une note de PARTICIPATION reflète l'implication de l'étudiant lors de ses travaux sur Inginious et le projet en fin de quadrimestre.
En première session, la note de participation vaut pour 20 % de la note finale + 80 % pour l'examen final.
La note de participation ne peut pas être réévaluée.
En seconde session, la note de participation compte pour 10 % et l'examen final pour 90 % de la note globale.
L'examen final est un écrit à livre fermé sur ordinateur ou, le cas échéant, sur papier.
Bibliographie
Il n'y a pas d'ouvrage de référence obligatoire mais, à titre complémentaire, des ouvrages sont recommandés sur le site Moodle.
Support de cours
  • Les supports obligatoires sont constitués de l'ensemble des documents (transparents des cours magistraux, énoncés des travaux pratiques, compléments, ...) disponibles depuis le site Moodle du cours.
  • Required teaching material include all documents (lecture slides, project assignments, complements, ...) available from the Moodle website for this course.
Faculté ou entité
en charge


Programmes / formations proposant cette unité d'enseignement (UE)

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Master [120] en linguistique

Approfondissement en sciences géographiques

Mineure en sciences informatiques

Mineure en technologies numériques et société

Bachelier en sciences informatiques

Bachelier en sciences mathématiques