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, complément à deux, 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.
Matériel didactique
Site Web du cours
Renseignements technologiques
Le cours nécessite l'utilisation du logiciel Adobe Reader.
Consultez l'information sur le matériel informatique recommandé.
Encadrement
L'encadrement est individualisé et assuré par un professeur, une professeure ou une personne tutrice. Les communications se font par courriel ou, sur demande, par vidéoconférence ou téléphone.
Évaluation
L'évaluation repose sur six travaux écrits (10 %, 5 %, 15 %, 10 %, 20 % et 40 %).
Échelle de conversion
Notation | Valeur numérique | Valeur en pourcentage |
---|---|---|
A+ | 4,3 | 96 à 100 % |
A | 4 | 92 à 95 % |
A- | 3,7 | 88 à 91 % |
B+ | 3,3 | 84 à 87 % |
B | 3 | 80 à 83 % |
B- | 2,7 | 76 à 79 % |
C+ | 2,3 | 72 à 75 % |
C | 2 | 68 à 71 % |
C- | 1,7 | 64 à 67 % |
D+ | 1,3 | 60 à 63 % |
D | 1 | 50 à 59 % |
E | 0 | 0 à 49 % |
* Échelle de conversion actuellement en vigueur pour ce cours.
Particularités d'inscription
Ce cours présuppose la connaissance des mathématiques du collégial et des connaissances de base en programmation.