INFO1001 - Principes de programmation I
Introduction à l'ordinateur : composantes d'un ordinateur, système d'exploitation, réseau local, compilateur et environnement de travail. Méthodologie et stratégie à suivre pour la résolution d'un problème : démarches, décomposition et raffinement graduel, notion d'algorithme, description informelle. Langage de programmation : syntaxe, structures de données élémentaires, structures de contrôle, passage du pseudocode au code, structuration et bon style de programmation. Introduction à la récursivité et aux tables.
INFO1002 - Principes de programmation II
Approfondissement de la connaissance d'un langage de programmation. Structures de données abstraites (liste, fichiers, piles, files, etc.). Algorithmes de recherche et de tri. Algorithmes itératifs et récursifs. Allocations dynamiques. Évaluation des programmes : complexité, vérification. Concept et éléments de la programmation orientée objet.
INFO1003 - Initiation à l'ordinateur
Structure générale d'un micro-ordinateur. Notion de systèmes d'exploitation, de logiciels et de réseaux. Introduction aux logiciels concernant : le traitement de texte, la présentation électronique, le chiffrier électronique et les bases de données. Laboratoire pratique sur l'utilisation des logiciels étudiés.
INFO2000 - Stage I en informatique
| Préalables : | être inscrit au B.I.A. - régime coopératif, avoir complété 18 crédits de cours de sigle INFO et avoir la permission du Département. |
L'étudiante ou l'étudiant effectue un travail en informatique dans une entreprise ou laboratoire. Le projet de stage doit être approuvé par le Département. Après son stage, l'étudiante ou l'étudiant doit remettre un rapport et exposer oralement celui-ci au plus tard six semaines après la fin du stage.
INFO2001 - Int. à l'architecture d'ord.
Systèmes numériques et représentation des données ainsi que les opérations associées. Logique numérique : numérique versus analogue, propriétés physiques des signaux numériques, propagation, fan-in, fan-out. Logique de base et théorie de commutation : minimisation et implantation de fonction. Technologie d'implantation des circuits. Circuits combinatoires et leur conception. Systèmes séquentiels et leur conception : bascules, registres, compteurs, synchrones versus asynchrone. Systèmes de mémoires et leurs différentes technologies. Transfert des données : entre registres, bus et portes à trois états, contrôle du flux de données, introduction à la microprogrammation.
INFO2003 - Org. d'ord. et lang. assemb.
Organisation de base d'un ordinateur : le modèle Von Neumann, processeur central, mémoire centrale, bus, entrées-sorties. Représentation de données et codage d'instructions. L'architecture du processeur au niveau registres. Mémoire physique et mémoire virtuelle. Transfert de données dans l'ordinateur. Langage assembleur, modes d'adressage, entrées-sorties, interruptions.
INFO2006 - Int. au dévelop. de logiciel
Modèles de cycle de vie du logiciel. Conception. Documentation. Gestion et contrôle de configuration et de version. Fiabilité, sécurité, responsabilité, évaluation du risque. Entretien. Outils de spécification, de conception et d'implantation. Spécifications : informelles, formelles, algébriques. Conceptions fonctionnelle et orientée-tâche. Réutilisation. Stratégies d'implantation. Vérification et validation. Assurance de qualité. Métriques. Estimation du coût, échéanciers.
INFO2012 - Struct. de données et algor.
Rappel des structures linéaires (listes, piles, files d'attente). Structures de données abstraites, leurs opérateurs, et leurs implémentations (arbres binaires, de recherche, de Huffman, manceaux, graphes). Algorithmes récursifs. Analyse asymptotique. Suite des algorithmes de recherche, de hachage et de tri. Introduction à la complexité P et NP.
INFO2014 - Fichiers et bases de données
Rappel des fichiers et supports externes. Représentation des enregistrements. Gestion de l'espace. Tri externe, B-arbres et indexation, adressage aléatoire. Introduction aux systèmes de gestion de bases de données. Modèles relationnels et orienté-objets. Formes normales. Langages de définition de données et d'interrogation. Optimisation des requêtes. Récupération et accès concurrentiel aux bases de données. Introduction aux bases de données réparties.
INFO3000 - Stage II en informatique
| Préalables : | être inscrit au B.I.A. - régime coopératif, avoir complété 27 crédits de cours de sigle INFO et avoir la permission du Département. |
L'étudiante ou l'étudiant effectue un travail en informatique dans une entreprise ou laboratoire. Le projet de stage doit être approuvé par le Département. Après son stage, l'étudiante ou l'étudiant doit remettre un rapport et exposer oralement celui-ci au plus tard six semaines après la fin du stage.
INFO3002 - Système d'exploitation
Structures et fonctions des systèmes d'exploitation. Tâches et processus. Synchronisation et coordination des processus. Blocages. L'ordonnancement de l'unité centrale : modèles déterministes et probabilistes. Gestion de la mémoire : organisation de la mémoire physique, implantation de la mémoire virtuelle, gestion de la mémoire secondaire. Sécurité et protection.
INFO3003 - Architecture d'ordinateur
Microprogrammation : organisation, séquenceur, codage vertical et horizontal, comparaison entre contrôles câblé et microprogrammé. Opérations en virgules flottantes. Microprocesseurs : CISC versus RISC, superscalaire, superpipeline, effets de branchement sur le pipeline. Cache de mémoire : hiérarchie, cache de données, caches d'instructions, différentes méthodes de mapping. Circuits d'entrées/sorties. Introduction aux architectures parallèles.
INFO3005 - Paradigmes de programmation
Étude comparative des paradigmes des langages de programmation. Modalités d'accès et types de données, gestions de l'allocation dynamique de la mémoire, traduction de programmes et sémantique. Paradigmes fonctionnel, logique et orienté-objets.
INFO3012 - Algorithmique
Rappel des notions d'algorithme et de complexité temporelle et spatiale. Relations de récurrence. Algorithmes de retour en arrière, voraces, diviser-pour-régner, probabilistes, heuristiques, parallèles et distribués. Programmation dynamique. Classes de complexité P, NP. NP-complétude. Introduction aux fonctions calculables et à la décidabilité.
INFO3014 - Informatique théorique
Langages réguliers et automates à états finis et à piles. Langages libres de contexte. Hiérarchie de Chomsky. Machine de Turing. Machine universelle. Hypothèse de Church. Calculabilité et déterminisme, problèmes indécidables. Applications dans les traitements de texte et les compilateurs.
INFO3020 - Int. réseaux d'ordinateurs
Communications de données : supports de transmission, signaux, atténuation et distorsion. Transmission synchrone/asynchrone. Détection des erreurs. Introduction aux protocoles de communication : contrôle des erreurs et du flux de données. Protocoles orientés caractère et protocoles orientés bit. Introduction aux réseaux locaux. Réseaux publics de données. Interconnexion. Architectures de réseaux interconnectés. Normalisation.
INFO4000 - Stage III en informatique
| Préalables : | être inscrit au B.I.A. - régime coopératif, avoir complété 36 crédits de cours de sigle INFO et avoir la permission du Département. |
L'étudiante ou l'étudiant effectue un travail en informatique dans une entreprise ou laboratoire. Le projet de stage doit être approuvé par le Département. Après son stage, l'étudiante ou l'étudiant doit remettre un rapport et exposer oralement celui-ci au plus tard six semaines après la fin du stage.
INFO4001 - S.C. gestion de l'information
| (3-0) |
3 cr. |
| Préalables : | avoir terminé les deux premières années du programme et obtenir l'autorisation du directeur ou de la directrice du département |
Sujets choisis par le directeur ou la directrice du Département en tenant compte des activités récentes en gestion de l'information.
INFO4002 - Applications client-serveur
Modèle client-serveur. Installation et gestion des différents types de serveurs et clients existants sur le marché : Windows NT, Httpd, WAIS, etc. Conception et développement d'une application client-serveur utilisant un langage de programmation réseau.
INFO4004 - Principes de simulations
Ce cours vise à familiariser l'étudiant et l'étudiante avec la simulation des processus complexes et le développement des applications distribué utilisant ces techniques de simulation. Concepts classiques de simulation. Techniques de programmation pour imiter l'évolution des systèmes dynamiques complexes. Modélisation, phénomènes aléatoires. Files d'attente, priorités, techniques de scheduling, synchronisation. Protocolea de coordination. Hyper-ordinateurs. Langages de simulation distribue. Développement des simulations complexes.
INFO4006 - Multimédia
Réalisation des éléments de base d'une application multimédia : image, vidéo, son, texte, etc. Logiciels-outils nécessaires pour produire ces éléments. Techniques de conversion et de compression de données spécifiques. Programmation et implantation d'une application multimédia.
INFO4007 - S.C technologie de l'inforoute
| (3-0) |
3 cr. |
| Préalables : | avoir terminé les deux premières années du programme et obtenir l'autorisation du directeur ou de la directrice du département |
Sujets choisis par le directeur ou la directrice du Département en tenant compte des activités récentes en technologie de l'inforoute.
INFO4008 - Programmation UNIX
UNIX/LINUX : langage C, processus, fichiers, tubes, entrées/sorties, communication, synchronisation, administration système (courriel, news, ftp), mise en place d'un réseau. SHELL : variables d'environnement, fichiers de configuration, fonctions réseau, scripts SHELL.
INFO4009 - Applications en temps réel
Outils et techniques de programmation en temps réel. Application : contrôle de processus, acquisition de données, communication.
INFO4012 - Analyse et dév. orienté objet
Concepts et relations spécifiques. Méthodes d'analyse et notations. Les avantages et les inconvénients de la conception orienté objet. Exemples d'applications orienté objet. Langage de programmation orienté objet. Projet.
INFO4014 - S.C. développement logiciel
| (3-0) |
3 cr. |
| (Cours à contenu variable) |
| Préalables : | Avoir terminé les deux premières années du programme et obtenir l'autorisation du directeur ou de la directrice du département |
Sujets choisis par le directeur ou la directrice du Département en tenant compte des activités récentes en développement de logiciels.
INFO4015 - Intelligence artificielle
Représentation de connaissances utilisant : la logique des prédicats, les règles d'inférence, raisonnement symbolique, etc. Systèmes experts : conception et développement. Traitement de langage naturel : traitement syntactique, analyse sémantique, discours, etc.
INFO4016 - Développement systèmes experts
Histoire des systèmes experts. Rappel des stratégies de résolution de problèmes. Choix du domaine. Représentation des connaissances expertes, coquille des SE, règles de production et logique floue, et moteur différence. Raisonnement par chaînage avant et arrière et raisonnement temporel. Facteurs de certitude. L'évaluation d'un système et ses attributs. Exemples de SE.
INFO4017 - Int. aux réseaux neurones
Le concept informatique de neurone (Kohonen). Types de réseaux de neurones (RN) : propagation avant, propagation avant-arrière, etc. Capacité d'apprentissage et de simulation d'un RN. Types de données et problèmes qui peuvent être traités utilisant les RNs. Analyse de la complexité d'un RN. Applications utilisant des logiciels de simulation de RN. Utilisation de réseaux de neurones en connexion avec les algorithmes génétiques.
INFO4018 - S.C. en systèmes intelligents
| (3-0) |
3 cr. |
| Préalables : | avoir terminé les deux premières années du programme et obtenir l'autorisation du directeur ou de la directrice du département |
Sujets choisis par le directeur ou la directrice du Département en tenant compte des activités récentes en intelligence artificielle.
INFO4019 - Trait. auto. langage naturel
Origines du traitement automatique du langage naturel (TALN). Classes de grammaires et des langages, sous-catégorisation et attributs. Analyse syntaxique et ambiguïté. La représentation des connaissances sémantiques : faits, relations, inférences, contexte. Domaines du TALN : compréhension, génération, traduction, enseignement de la langue, et interfaces aux bases de données et aux systèmes experts.
INFO4021 - Architectures de réseaux
Architecture des réseaux ouverts. Le modèle OSI. Protocoles, services, identification et adressage en réseaux. Protocoles pour le contrôle des liaisons de données. Routage et transport de données en réseaux. Protocoles de contrôle de la transmission (TCP).Protocoles d'interconnexion (IP). Protocoles d'application. Spécification, vérification et validation des protocoles de communication en réseaux.
INFO4022 - Réseaux locaux
Caractéristiques des réseaux locaux. Topologies, support de transmission et contrôle d'accès au support. Contrôle du transport. Protocoles pour les réseaux locaux. Modèles pour les réseaux locaux : client - serveur et groupe de travail. Contrôle et sécurité. Installation et exploitation. Administration. Études de cas.
INFO4024 - S.C architec. syst. ou réseaux
| (3-0) |
3 cr. |
| Préalables : | avoir terminé les deux premières années du programme et obtenir l'autorisation du directeur ou de la directrice du département |
Sujets choisis par le directeur ou la directrice du Département en tenant compte des activités récentes en architecture des systèmes ou des réseaux.
INFO4025 - Architectures avancées d'ord.
Modèles parallèles d'ordinateur : état de l'art. Programmes et réseaux de connexion : conditions de parallélisme, partitions et ordonnancements de programmes, mécanismes du flot de programmes, réseaux de connexion d'ordinateurs. Principes des performances échelonnées : mesure de la performance, applications parallèles, lois d'accélération des performances, architectures échelonnées. Alternatives architecturales. Multiprocesseur et multiordinateur : systèmes de connexion, cohérence de la cache, mécanismes de passage des messages. Multivecteur et ordinateur de type SIMD. Architecture; flux de données et multifiles.
INFO4028 - Analyse et traitement d'images
Ce cours couvre les techniques numériques utilisées en traitement d'images. On y abordera entre autres la théorie de l'échantillonnage, les standards, le filtrage, la restauration, la compression, l'appariement d'images, etc. Ce cours comprend une partie théorique, la programmation par l'étudiant ou l'étudiante d'algorithmes spécifiques ainsi qu'un projet appliqué.
INFO4029 - Sécurité informatique
Définitions formelles des concepts de sécurité informatique, confidentialité et intégrité des données. Évaluation et gestion des risques de sécurité. Éléments de cryptographie. Méthodes d'authentification. Virus. Bombes logiques. Aspects légaux. Contrôle d'accès aux bases de données. Noyau de sécurité. Méthodes de vérification. Sécurité sur l'Internet et les Intranets.
INFO4030 - BD relationnelles et réparties
Approfondissement du modèle relationnel : forme normale. Contrôle des accès concurrents. Concepts de modélisation avancés : classification, instantiation, généralisation, spécialisation, agrégation, association. Bases de données distribuées, BDDD. Fragmentation, réplication. Traitement et optimisation des requêtes dans un BDDD. Contrôle des accès concurrents et reprise après une panne dans un BDDD. Bases de connaissances. Bases de données multimédias.
INFO4034 - Algorithmes syst. distribués
Réseau : synchrone et asynchrone. Algorithmes de routage : point-à-point, diffusion, etc. Algorithmes pour la définition d'un sens de la direction dans un réseau. Algorithmes d'élection et de diffusion dans un réseau : avec identités, un réseau avec sens de la direction, un réseau anonyme. Algorithmes pour les réseaux avec connexions ou processus défectueux. Complexité de temps et de communication.
INFO4035 - Algorithmes syst. par. et dist
Le cours porte sur la conception, la structure et l'utilisation des systèmes basés sur l'interaction des processeurs multiples. Exécution parallèle et synchronisation. Support architectural. Constructions parallèles dans les langages de programmation. Algorithmes parallèles, complexité. Messages, RPCs, modèles à mémoire partagée, processus et threads. Client-serveur. Objets distribués. Agents.
INFO4038 - Prog. log. et fonctionnelle
Le langage Prolog : unification et résolution, sémantique déclarative et opérationnelle, contrôle et backtracking, grammaires logiques, recherche en profondeur et en largeur, prédicats d'ordre supérieur, méta-programmation, programmation logique orientée-objet, programmation logique distribuée.
INFO4041 - Analyse perf., vérif. et valid
Processus et cycle de vie. Méthodes de spécification, notations et outils. Validation et vérification. Déverminage et compréhension du code. Paradigmes de testage (unité, régression). Stratégies de testage (boîte blanche, testage fonctionnel). Gestion des configurations. Considérations reliées à l'usager, modélisation d'usager. Standards internationaux. Méthodologies de développement orientée objet.
INFO4114 - Modélisation objet avec UML
Rappel des notions de cycle de vie et de génie logiciel. Analyse et conception orientées objets, modélisation avec le langage UML. Traitement de la complexité, spécification des besoins, conception du système, vues d'usager et du développeur. Validation, vérification. Diagrammes d'objets, spécification des classes, raffinement des modèles. Projet d'application utilisant UML.
INFO4243 - Les compilateurs
Compilation. Interprètes et compilateurs. Analyse lexicographique et syntaxique. Allocation de mémoire. Génération de code. Optimisation. Grammaires, langages, leurs syntaxes et sémantiques. Description BNF. Grammaires état-fini. Automates PDA. Descente récursive, LL(R), LR(R), SLR(R).
INFO4453 - Infographie
Traçage : points, courbes, surfaces, antialiasing. Remplissage. Transformation : découpage, opérations géométriques, projections. Élimination des parties cachées : modèle d'illumination - lumière ambiante, réflexion diffuse, réflexion spéculaire, méthode de Gouraud, méthode de Phong; modèles de couleurs; textures - rugosité et motif; ombres; lancer de rayon; radiosité; techniques d'animation.