Professeur responsable
Daniel Lemire
* COURS EN PRÉPARATION *
Ce cours n'est pas offert actuellement.
Préalable
INF 1220
Objectifs
- Mettre en œuvre les structures de données et algorithmes communs d'une manière correcte et efficace.
- Manipuler les données telles que des chaînes de caractères et de nombres sur le plan des bits et des octets.
- Identifier et corriger les problèmes de performance communs.
Contenu
Notions élémentaires de génie logiciel: tests et contrôle des versions; représentation des données: entiers signés et non signés, le complément à deux, les nombres à virgule flottante (norme IEEE 754), encodage des caractères (ASCII, Unicode, UTF-8), encodage base64. Manipulation des bits au sein d'un mot; génération des nombres aléatoires, fonctions de hachage, mise en œuvre des tables de hachage, des vecteurs de bits, des tableaux dynamiques, des tas binaires et des structures en arbre. Filtres de Bloom; recherche binaire. Tri et permutation aléatoire. Compression; hiérarchie de la mémoire (L1, L2, RAM, etc.) et échecs de la mémoire tampon; concurrence et parallélisme. Programmation parallèle: multiprocesseur et vectorisée; loi d'Amdahl. Fils et verrous. Sémaphores, barrières, moniteurs. Coût d'appel d'une fonction; processeurs superscalaires, pipelines, prédiction des embranchements.
Renseignements technologiques
Consultez l'information sur le matériel informatique recommandé.