
| (3-2) | 3 cr. |
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.
| (3-2) | 3 cr. |
| Préalable : | INFO1001 |
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.
| (2-2) | 3 cr. |
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.
| 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.
| (3-1) | 3 cr. |
| Préalable : | INFO1001 |
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.
| (3-1) | 3 cr. |
| Préalable : | INFO2001 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.
| (3-0) | 3 cr. |
| Préalables : | INFO1002 et MATH1563 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.
| 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.
| (3-0) | 3 cr. |
| Préalable : | INFO2003 |
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.
| (3-1) | 3 cr. |
| Préalable : | INFO2003 |
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.
| (3-0) | 3 cr. |
| Préalables : | INFO2003 et INFO2012 |
É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.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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é.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2003 |
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.
| 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.
| (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.
| (3-0) | 3 cr. |
| Préalables : | INFO2003 et INFO2014 |
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.
| (3-0) | 3 cr. |
| Préalables : | INFO2012 et (soit STAT2603 ou STAT2633) |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2003 |
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.
| (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.
| (2-2) | 3 cr. |
| Préalable : | INFO3020 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO3002 |
Outils et techniques de programmation en temps réel. Application : contrôle de processus, acquisition de données, communication.
| (3-0) | 3 cr. |
| Préalable : | INFO2014 |
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.
| (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.
| (3-0) | 3 cr. |
| Préalable : | INFO3012 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO3012 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.
| (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.
| (3-0) | 3 cr. |
| Préalable : | INFO3012 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO3020 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO3020 |
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.
| (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.
| (3-0) | 3 cr. |
| Préalable : | INFO2003 |
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.
| (3-1) | 3 cr. |
| Préalables : | INFO2014 et (MATH2513 ou MATH1054) |
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é.
| (3-0) | 3 cr. |
| Préalable : | INFO2014 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2014 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO2006 |
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.
| (3-0) | 3 cr. |
| Préalables : | INFO2006, INFO2012 et INFO2014 |
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.
| (3-0) | 3 cr. |
| Préalable : | INFO3014 |
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).
| (3-0) | 3 cr. |
| Préalable : | INFO2012 |
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.