Au terme de ce cours, l’étudiant ou l'étudiante sera en mesure :
Rôle des algorithmes et analyse asymptotique. Rappel des types abstraits de données et des structures de données de base : listes, piles, files, arborescences. Techniques de programmation telles la récursivité, et le retour-arrière. Introduction aux arbres binaires. Représentation des structures de données (listes générales et multilistes, arborescences, graphes). Algorithmes de tri (tri rapide, par monceau, pigeonnier) et de recherche (hachage, arbre de recherche). Représentation de données graphiques et d’images. Numérisation des signaux (quantification, échantillonnage, théorème de Nyquist). Algorithmes de compression sans perte (RLE, Huffman, LZW, codage arithmétique) et avec perte. Normes de compression d’images et de séquences vidéo.
Séances de laboratoire : analyser des contenus multimédias à l’aide d’outils logiciels. Concevoir et implémenter des applications permettant de solutionner des problèmes d’optimisation, de tri, de recherche et de codage.