INF889X - Sujets spéciaux en informatique

Ce cours est à contenu variable. Il vise à présenter aux étudiants des sujets de recherche de pointe ou en émergence dans le domaine de l'informatique qui ne sont pas couverts par d'autres cours.

INF889A - Analyse de programmes pour la sécurité logicielle

Objectifs

Étudier les vulnérabilités et l'exploitation logicielle en utilisant des techniques et outil axés sur l’analyse de programmes et de langages de programmation.

Sommaire du contenu

Principes et techniques mis en œuvre par les outils de sécurité logicielle et les logiciels malveillants pour l’analyse, la détection, l’exploitation, la protection, etc. de problèmes de sécurité dans les programmes informatiques. Analyse des techniques et des mécanismes impliqués dans les failles logicielles modernes et les contre-mesures proposées par la littérature scientifique et l'industrie. Étude des langages de programmation et des pratiques de développement d'un point de vue de la sécurité.

INF889B - Algorithmes d'optimisation combinatoire

Objectifs

Se familiariser avec les méthodes d'optimisation combinatoire exactes, approximatives et adaptatives. Connaître leurs avantages, leurs limites, être en mesure de les implémenter et d'évaluer leur performance.

Sommaire du contenu

Modélisation d'un problème d'optimisation combinatoire. Optimisation exacte: solution naïve, séparation et évaluation progressive, algorithmes paramétrés. Optimisation convexe: programmes linéaires, algorithme du simplexe, théorie de la dualité, programmation linéaire en nombres entiers. Méthodes approximatives et métaheuristiques: recherche locale, recuit simulé, recherche taboue. Méthodes bio-inspirées: algorithmes évolutionnaires, colonies de fourmis, etc. Optimisation par apprentissage: survol des méthodes d'apprentissage automatique, intégration d'apprentissage dans des algorithmes d'optimisation combinatoire.

INF889C - Technologies émergentes des services de télécommunication

Le cours INF889C est accepté comme un des deux cours à choisir pour la concentration en systèmes électroniques.

Objectifs

Ce cours familiarise les étudiants avec les principes fondamentaux des technologies émergentes telle l’infonuagique, les réseaux définis par logiciel, la virtualisation des fonctions des réseaux et l’internet des objets.

Sommaire du contenu

Approvisionnement des services réseaux émergents. Présentation des principes de base de l’infonuagique. Infrastructures et centres de données. Déploiement des nouvelles applications: Internet des objets, réalité augmentée et Internet tactile. Logicielisation et virtualisation. Découpage virtuel des réseaux nouvelle génération. Placement et réplication des données. Stockage et mise en mémoire cache. Évaluation et optimisation de la qualité de service et la qualité d’expérience.

INF889D - Usines logicielles à grande échelle

Objectifs

Ce cours présente les défis du développement de logiciels de grande envergure et illustre, au travers du paradigme de séparation des préoccupations, comment mettre en pratique des approches de décomposition puis de recomposition automatique pour développer des logiciels de grande envergure produits en masse et hautement configurables. À la fin du cours, les étudiants seront capables de mettre en place une usine logicielle permettant de produire des versions à-la-carte d’un logiciel.

Sommaire du contenu

Séparation des préoccupations. Variabilité logicielle. Configuration Logicielle. Décomposition et recomposition. Langages spécifiques au domaine. Déploiement à la carte. Programmation orientée aspects. Composants et intercepteurs. Étude de cas.

INF889E - Méthodes d’intelligence artificielle en bioinformatique

Le cours INF889E est accepté comme un des deux cours à choisir pour la concentration en intelligence artificielle.

Objectifs

Ce cours vise à présenter aux étudiants les récentes méthodes d’intelligence artificielle en bioinformatique. Il vise aussi à passer en revue les fondements, approches et techniques d’intelligence artificielle utilisée en bioinformatique appliquée à la santé et l’agriculture.

Sommaire du contenu

Introduction aux principales approches d’intelligence artificielle en bioinformatique. Méthodes d’apprentissage à partir des données génomiques. Méthodes d'intégration de données. Acquisition et représentation de connaissances. Méthodes génératives. Méthodes appliquées aux diagnostiques et surveillances des maladies. Approches d’intelligence artificielle en agriculture et sécurité alimentaire.

INF889F - Cryptographie appliquée

Objectifs

Etudier le fonctionnement de la cryptographie moderne, ses usages dans des protocoles variés et des applications actuelles.

Sommaire du contenu

Concepts fondamentaux de la cryptographie. Cryptographie symétrique. Modes d’opération. Cryptographie asymétrique. Fonctions de hachage, codes d’authentification de messages et signatures numériques. Protocoles d’échange de clé, certificats et gestion de clés. Preuves à divulgation nulle. Principes et techniques de la cryptographie homomorphe et ses applications dans le calcul sécurisé sur données chiffrées (infonuagique, retrait d’information privé, calcul d’intersection privé, mémoire oublieuse, obfuscation de programmes, génomique privée, base de données chiffrées).

INF889G - Vision par ordinateur

Le cours INF889G est accepté comme un des deux cours à choisir pour la concentration en intelligence artificielle et pour la concentration en systèmes électroniques.

Objectifs

Ce cours vise à familiariser les étudiants avec les notions théoriques et pratiques en vision par ordinateur (aussi nommé vision artificielle, vision numérique ou vision machine). Cette discipline concerne la conception de systèmes et les techniques informatiques permettant de manipuler des images et vidéos, d’extraire l’information contenue afin de permettre à l’ordinateur de comprendre l’information visuelle. À l’issue de ce cours, les étudiant.e.s devraient :

  • Connaître les fondements théoriques et pratiques de la vision par ordinateur
  • Savoir implémenter des méthodes et algorithmes liés la vision par ordinateur
  • Réaliser un projet simple en vision par ordinateur

Sommaire du contenu

Formation d’images numériques, modélisation de la couleur. Fondements du traitement d’images, filtres linéaires, extraction de caractéristiques et représentation des textures. Géométrie binoculaire et perception de la profondeur (stéréopsie). Inférence de la structure à partir du mouvement, segmentation, méthodes de suivi, recalage, classification, et détection. Autres sujets (selon le temps disponible) : analyse de données de distance, modélisation et synthèse basée sur les images, estimation de pose, recherche et récupération d’images, apprentissage automatique pour la vision ...

INF889H - Algorithmes en bioinformatique

Objectifs

Ce cours vise à présenter les algorithmes fondamentaux de bioinformatique. Il vise aussi à passer en revue les modifications et applications récentes. Aucune connaissance en biologie n'est requise, tout sera expliqué durant le cours.

Sommaire du contenu

Introductions aux algorithmes fondamentaux de bioinformatique. Alignement de séquences. Prédiction et design de structures d’ARN. Échantillonnage de Boltzmann. Prédiction de structures de protéine. Analyses de données de séquençage NGS et nanopore. Réseaux d’interactions entre molécules. Phylogénie et reconstruction ancestrale. Analyses de données de cellules uniques. Diverses applications.

INF889J - Fondements pratiques des langages de programmation

Objectifs

Ce cours présente les concepts fondamentaux des langages de programmation. À la fin de ce cours, les étudiants pourront définir de façon rigoureuse un langage de programmation, ainsi que raisonner à son sujet et démontrer ses propriétés de sûreté. Les étudiants pourront aussi reconnaître et raisonner au sujet de diverses abstractions fondamentales et de pointe offertes par les langages de programmation courants ou spécialisés.

Sommaire du contenu

Syntaxe abstraite, variables liées et portée des variables. Systèmes de typage. Sémantique axiomatique, opérationnelle et dénotationnelle. Propriétés de sûreté. Structures de contrôle telles que les exceptions et les continuations. Récursivité. Polymorphisme. Structures de programmation concurrente et parallèle.

Département d'informatique

Le département d'informatique compte près de quarante professeur.e.s qui oeuvrent dans divers domaines, tant en enseignement qu'en recherche. De nos jours, l'informatique occupe une place importante dans notre société. L'informatique est devenue plus accessible par l'abondance de logiciels et de systèmes de plus en plus faciles à utiliser. Ceux-ci sont conçus selon des techniques et des approches variées. Nos professeur.e.s travaillent sur ces techniques et approches au sein de nos unités de recherche et les enseignent à nos étudiant.e.s dans les programmes de premier cycle et de cycles supérieurs.

Suivez-nous

Coordonnées

Département d'informatique
Local PK-4150
201, Avenue du Président-Kennedy
Montréal (Québec) H2X 3Y7