Les cours suivants sont offerts par la Faculté de génie.
CSI 2101 Discrete Structures (3 units)
Discrete structures as they apply to computer science, algorithm analysis and design. Predicate logic. Review of proof techniques; application of induction to computing problems. Graph theory applications in information technology. Program correctness, preconditions, postconditions and invariants. Analysis of recursive programs using recurrence relations. Properties of integers and basic cryptographical applications.
Course Component: Lecture, Tutorial
Prerequisite: MAT 1348.
CSI 2110 Data Structures and Algorithms (3 units)
The concept of abstract data types. Simple methods of complexity analysis. Trees. The search problem: balanced trees, binary-trees, hashing. Sorting. Graphs and simple graph algorithms: traversal, minimum spanning tree. Strings and pattern matching.
Course Component: Laboratory, Lecture, Tutorial
CSI 2120 Programming Paradigms (3 units)
Presentation of the major programming paradigms: object-oriented, imperative, logic, functional. Related programming languages, their essential properties and typical applications. Programming in imperative, logic and functional languages. Influence of programming paradigms on problem solving and program design strategies. An overview of other paradigms, such as constraint-based, rule-based and event-driven programming.
Course Component: Laboratory, Lecture, Tutorial
Prerequisite: CSI 2110.
CSI 2132 Databases I (3 units)
Fundamental database concepts. Entity-Relationship modeling. Relational algebra and relational calculus. Relational databases. Database definition and manipulation using SQL. Embedded SQL. Functional dependencies and normalization. Introduction to physical database design. Design and implementation of a database application in a team project.
Course Component: Laboratory, Lecture, Tutorial
Prerequisite: CSI 2110.
CSI 2372 Advanced Programming Concepts With C++ (3 units)
Differences between C++ and Java programming. C++ data types. Pointers and memory management. Object oriented programming in C++. File and stream I/O. Pre-processor macros. Templates and the Standard Template Library. Numerical computation in C++. Interfacing with hardware. Engineering applications.
Course Component: Laboratory, Lecture, Tutorial
CSI 2501 Structures discrètes (3 crédits)
Structures discrètes utilisées en informatique. Analyse et conception des algorithmes. Logique des prédicats. Révision des techniques de preuves. Application de l'induction aux problèmes en informatique. Théorie des graphes. Applications en technologie de l'information. Justesse des programmes correction. Pré, post conditions et invariants. Analyse des programmes récursifs à l'aide des relations de récurrence. Propriétés des entiers et application de base et en cryptographie.
Volet : Cours magistral, Tutoriel
Préalable : MAT 1748.
CSI 2510 Structures de données et algorithmes (3 crédits)
Types abstraits de données. Méthodes simples d'analyse de complexité. Arbres. Recherche : arbres binaires, arbres équilibrés et hachage. Tris. Graphes et algorithmes simples pour graphes : parcours, arbre minimal recouvrant. Chaînes, patrons et filtrage.
Volet : Laboratoire, Cours magistral, Tutoriel
CSI 2520 Paradigmes de programmation (3 crédits)
Présentation des principaux paradigmes de programmation: orienté objet, impératif, logique, fonctionnel. Langages de programmation correspondants, leurs propriétés essentielles et leurs applications typiques. Programmation avec langages impératifs, logiques et fonctionnels. Influence des paradigmes de programmation sur la résolution de problèmes et les stratégies de conception de programmes. Survol d'autres paradigmes tels que les programmations orientées contraintes, à base de règles, et événementielle.
Volet : Laboratoire, Cours magistral, Tutoriel
Préalable : CSI 2510.
CSI 2532 Bases de données I (3 crédits)
Concepts fondamentaux des bases de données. Modèle entité relation. Algèbre et calcul relationnels. Bases de données relationnelles. Définition de bases de données et manipulation à l'aide de SQL embarqué. Dépendances fonctionnelles et normalisation. Introduction à la conception physique des bases de données. Conception et implantation d'une application avec base de données (projet d'équipe)
Volet : Laboratoire, Cours magistral, Tutoriel
Préalable : CSI 2510.
CSI 2772 Concepts avancés de programmation en C++ (3 crédits)
Différences entre la programmation Java et la programmation C++. Pointeurs et gestion de la mémoire. Programmation orientée objet en C++. Entrée-sortie des fichiers et flux de données. Macros du préprocesseur. Classes génériques et bibliothèque STL. Calcul numérique en C++. Interfaçage avec le matériel. Applications d'ingénierie.
Volet : Laboratoire, Cours magistral, Tutoriel
CSI 2911 Pratique professionnelle de l'informatique / Professional Practice in Computing (3 crédits / 3 units)
Professionnalisme en informatique. Pratique éthique. Propriété intellectuelle. Répercussions sociales de l'informatique. Confidentialité et aspects légaux. / Professionalism in Computer Science. Ethical practice. Intellectual property rights. Social impact of computing. Privacy and legal issues.
Volet / Course Component: Cours magistral / Lecture, Tutoriel / Tutorial
CSI 3104 Introduction to Formal Languages (3 units)
Regular languages, finite automata, transition graphs Kleene's theorem. Finite automata with output. Context-free languages, derivation trees, normal form grammars, pumping lemma, pushdown automata, determinism. Decidability. Recursively enumerable languages, Turing machines, the halting problem.
Course Component: Lecture
CSI 3105 Design and Analysis of Algorithms I (3 units)
Analysis of algorithms: worst-case analysis, complexity analysis, asymptotic notations and basic complexity classes. Algorithm design techniques: brute force, divide and conquer, dynamic programming, greedy, backtracking. Computational complexity of problems: lower bound arguments, the classes P, NP, NP-complete, dealing with NP-complete problems.
Course Component: Lecture
Prerequisites: CSI 2110, CSI 2101 or for honors mathematics students: CSI 2110, (MAT 2141 or MAT 2143).
CSI 3120 Programming Language Concepts (3 units)
Design and evaluation criteria for programming languages. Introduction to syntactic and semantic description of programming languages. Basics of programming language implementation. Scripting languages. A comparison of design choices across programming paradigms: data objects, data types, control structures, sub-programs. Basics of concurrency.
Course Component: Laboratory, Lecture, Tutorial
CSI 3130 Databases II (3 units)
Advanced physical database design. Access right, privacy and security. Query processing and optimization. Transaction processing, concurrency control and recovery. Object-oriented databases. Distributed and multi-databases. Data warehousing. Data integration. Design and implementation of a database component in a team project.
Course Component: Laboratory, Lecture, Tutorial
Prerequisite: CSI 2132.
CSI 3131 Operating Systems (3 units)
Principles of operating systems. Operating systems design issues. Process management, process scheduling, concurrency issues. CPU scheduling. Memory management. Virtual memory. Mass storage systems. Input/Output system. File system. Security and protection. Examples of operating systems.
Course Component: Laboratory, Lecture, Tutorial
CSI 3140 WWW Structures, Techniques and Standards (3 units)
Basic infrastructure of the Web. Servers and browsers. Examples of protocols. Internet and viruses. Search engine architecture. WWW Contents and presentation. Web pages, their structuring and interpretation. HTML, XML and their derivatives. Web interfaces to software and databases. Cookies and privacy issues. Semantic Web and o ontologies. Web services.
Course Component: Laboratory, Lecture, Tutorial
CSI 3504 Introduction aux langages formels (3 crédits)
Langages réguliers, automates d'états finis, graphes de transition et théorème de Kleene. Automates d'états finis avec sortie. Langages non-contextuels, arbres de dérivation, grammaires de forme normale, automates à pile, déterminisme. Décidabilité. Langages recursivement dénombrables, machines de Turing, le problème de terminaison.
Volet : Cours magistral
CSI 3505 Conception et analyse des algorithmes I (3 crédits)
Analyse des cas moyens et du pire cas. Analyse de la complexité. Notations asymptotiques et classes de complexité de base. Techniques de conception d'algorithmes: exhaustive, diviser pour régner, programmation dynamique glouton, retour arrière. Complexité computationnelle de problèmes : arguments de borne inférieure. Classes P, NP, et NP complet; traitement des problèmes NP complet.
Volet : Cours magistral
Préalables : CSI 2510/CSI 2610, CSI 2501 ou pour les étudiants et étudiantes inscrits aux programmes spécialisés en mathématiques : CSI 2510/CSI 2610, (MAT 2541 ou MAT 2543).
CSI 3520 Concepts des langages de programmation (3 crédits)
Critères de conception et d'évaluation pour langages de programmation. Introduction à leur description syntaxique et sémantique. Principes d'implantation. Langages de script. Comparaison de choix de conception selon le paradigme de programmation: objets, types, structures de contrôle, sous-programmes. Éléments de concurrence.
Volet : Laboratoire, Cours magistral, Tutoriel
CSI 3530 Bases de données II (3 crédits)
Conception avancée de bases de données physiques. Droits d'accès, protection et sécurité. Traitement et optimisation des requêtes. Traitement des transactions, contrôle du parallélisme et reprise. Bases de données orientées objets, base de données distribuées et multi-bases de données. Entrepôts de données. Intégration des données. Conception et implantation d'un composant de base de données (projet de groupe).
Volet : Laboratoire, Cours magistral, Tutoriel
Préalable : CSI 2532.
CSI 3531 Systèmes d'exploitation (3 crédits)
Principes et conception des systèmes d'exploitation. Gestion des processus, ordonnancement des processus et concurrence. Ordonnancement du processeur. Gestion de la mémoire. Mémoire virtuelle. Mémoire de masse. Entrées/sorties. Système de fichiers. Sécurité et protection. Exemples de systèmes d'exploitation.
Volet : Laboratoire, Cours magistral, Tutoriel
CSI 3540 Structures, techniques et normes du Web (3 crédits)
Infrastructure de base du Web. Serveurs et navigateurs. Exemples de protocoles. Internet et virus. Architecture de moteur de recherche. Contenu et présentation Web. Pages Web, leur structure et leur interprétation. HTML, XML et leurs dérivés. Interfaces Web vers les logiciels et bases de données. Témoins et droit à la vie privé. Web sémantique et ontologies. Services Web.
Volet : Laboratoire, Cours magistral, Tutoriel
CSI 4103 Topics in Computer Science I (3 units)
Selected topics in areas not covered by regular courses.
Course Component: Lecture
Prerequisite: Permission of the School.
CSI 4104 Topics in Computer Science II (3 units)
Selected topics in areas not covered by regular courses.
Course Component: Lecture
Prerequisite: Permission of the School.
CSI 4105 Design and Analysis of Algorithms II (3 units)
Theory of NP-completeness, methods for dealing with NP-complete problems. Selected topics in such areas as combinatorial optimization, computational geometry, cryptography, parallel algorithms.
Course Component: Lecture
Prerequisite: CSI 3105.
CSI 4106 Introduction to Artificial Intelligence (3 units)
The roots and scope of Artificial Intelligence. Knowledge and knowledge representation. Search, informed search, adversarial search. Deduction and reasoning. Uncertainty in Artificial Intelligence. Introduction to Natural Language Processing. Elements of planning. Basics of Machine Learning.
Course Component: Lecture
Prerequisites: MAT 1348, 9 course units in computer science (CSI) or software engineering (SEG) at the 3000 or 4000 level.
CSI 4107 Information Retrieval and the Internet (3 units)
Basic principles of Information Retrieval. Indexing methods. Query processing. Linguistic aspects of Information Retrieval. Agents and artificial intelligence approaches to Information Retrieval. Relation of Information Retrieval to the World Wide Web. Search engines. Servers and clients. Browser and server side programming for Information Retrieval.
Course Component: Lecture
Prerequisites: 9 course units in computer science (CSI) or software engineering (SEG) at the 3000 or 4000 level.
CSI 4108 Cryptography (3 units)
The notion of secure communication. Building secure cryptosystems based on the assumption of computational hardness. Cryptographic one-way functions, trap-door functions, pseudorandom generators, and public/private-key encryption schemes. Computational indistinguishable and unpredictability. Digital signature and message authentication. Zero-knowledge/interactive proof systems. Application to e-commerce and e-trade.
Course Component: Lecture
Prerequisites: 9 course units in computer science (CSI) or software engineering (SEG) at the 3000 or 4000 level.
CSI 4109 Introduction to Distributed Computing (3 units)
Computational models. Communication complexity. Design and analysis of distributed algorithms. Control algorithms. Asynchronous computations. Synchronous computations. Fault-tolerant algorithms. Manipulation of distributed data. Examples of applications in data and communication networks, mobile computing and systems of communicating agents.
Course Component: Lecture, Tutorial
Prerequisite: CSI 3105.
CSI 4118 Computer Networks Protocols (3 units)
Communication services, protocols and software. Details of layered protocol hierarchies. The transport, session, presentation and application layers. Fundamental concepts of computer network design. Computer network and communication protocol architectures.
Course Component: Lecture
Prerequisite: CEG 3185.
CSI 4124 Foundation of Modelling and Simulation (3 units)
The modelling and simulation process from a project oriented perspective. The role of conceptual modelling in the discrete event dynamic system context. Dealing with randomness. Distinctive features of modelling and simulation for continuous time dynamic systems and overview of numerical procedures. Validation and verification. Simulation software and program development.
Course Component: Lecture
Prerequisites: MAT 2377.
CSI 4125 Theory of Programming Languages (3 units)
The concept of formal semantics. Attribute grammars. Denotational semantics. Operational semantics. Axiomatic semantics. Lambda-calculus for programming language description. Resolution and the semantics of logic programming. Theory of abstract data types. Concurrent programming, process algebras, CCS, CSP.
Course Component: Lecture
CSI 4130 Computer Graphics (3 units)
Interactive computer graphics. Display data structures and procedures. Graphics pipeline. Geometric transformations. Viewing in three dimensions. Illumination and color models. Object modelling in 2D and 3D.
Course Component: Laboratory, Lecture
Prerequisites: MAT 1341, 9 course units in computer science (CSI) or software engineering (SEG) at the 3000 or 4000 level.
CSI 4133 Computer Methods in Picture Processing and Analysis (3 units)
Representation of digital pictures. Elements of visual perception. Imaging geometry. Image enhancement and image restoration. Image segmentation and feature identification. Content-based analysis of images. Images compression, compression standards and graphics file format.
Course Component: Laboratory, Lecture
Prerequisite: CSI 3105.
CSI 4139 Design of Secure Computer Systems (3 units)
Security policies. Security mechanisms. Physical security. Security awareness. User authentication. Application security mechanisms. Encryption. External and internal firewalls. Security of operating systems and software. Security of e-commerce applications. Design of security system and components. Devices for security analysis; sniffers, attack detectors. Information warfare. Ethical issues in computer security.
Course Component: Laboratory, Lecture, Tutorial
CSI 4140 Introduction to Parallel Computing (3 units)
Models of parallel computation. Architecture of parallel computers. Interconnection networks. Communication primitives. MPI, OpenMP. Principles of parallel algorithm design. Partitioning strategies. Load balancing. Analytical modeling of parallel programs. Parallel linear algebra. Parallel sorting. Parallel graph algorithms. Parallel searching.
Course Component: Lecture
Prerequisite: CSI 3105.
CSI 4141 Real Time Systems Design (3 units)
Definition of real-time systems; examples. Characteristics of real-time systems. Analysis frameworks and tools. Elements of real-time system structure. Reliability and fault tolerance. Exceptions and exception handling. Concurrency and concurrent programming in real-time systems. Synchronisation and communication, resource control, and scheduling in real-time systems. Real-time system design methodologies. Computer assisted design of real-time systems.
Course Component: Laboratory, Lecture, Tutorial
CSI 4142 Fundamentals of Data Science (3 units)
Big data, analytics, and cloud computing; data preparation: organization, basic statistics, cleaning, and integration; data mining techniques: pattern mining, classification, clustering, outlier and anomaly detection; model evaluation; data warehousing and multi-dimensional analysis; data visualization and visual data analytics.
Course Component: Lecture
Prerequisites: CSI 2132, (CSI 3120 or SEG 2106), MAT 2377 or (MAT 2371 and MAT 2375).
CSI 4145 Machine Learning (3 units)
Basic concepts of machine learning. Essentials of mathematics. Supervised learning. Unsupervised learning. Reinforcement learning. Algorithms for regression, classification, density estimation, and clustering.
Course Component: Lecture
Prerequisites: MAT 1341, ((MAT 2371, MAT 2375) or MAT 2377) and 12 course units in CSI or SDS at the 3000 level.
CSI 4150 Introduction to Optimization Methods (3 units)
Linear optimization models and their solution. Modelling techniques for linear programming problems, the simplex solution method, duality theory, sensitivity analysis, interior point methods. Formulation of problems as integer linear programs, solution methods such as branch and bound and cutting plane algorithms.
Course Component: Lecture
Prerequisite: CSI 3105.
CSI 4503 Sujets en informatique I (3 crédits)
Sujets choisis dans des domaines non couverts par les cours réguliers.
Volet : Cours magistral
Préalable : Permission de l'École.
CSI 4504 Sujets en informatique II (3 crédits)
Sujets choisis dans des domaines non couverts par les cours réguliers.
Volet : Cours magistral
Préalable : Permission de l'École.
CSI 4505 Conception et analyse des algorithmes II (3 crédits)
Théorie du NP-complet. Méthodes de traitement des problèmes NP-complets. Sujets choisis parmi les domaines suivants: optimisation combinatoire, géométrie de calcul, cryptographie, algorithmes parallèles.
Volet : Cours magistral
Préalable : CSI 3505.
CSI 4506 Introduction à l'intelligence artificielle (3 crédits)
Concepts et méthodes de base de l'intelligence artificielle. Connaissances et représentation des connaissances. Recherche, recherche stratégique, jeux de stratégie. Raisonnement et déduction. Incertitude en intelligence artificielle. Introduction au traitement du langage naturel. Éléments de base de la planification. Éléments de base de l'apprentissage automatique.
Volet : Cours magistral
Préalables : MAT 1748, 9 crédits de cours en informatique (CSI) ou génie logiciel (SEG) de niveau 3000 ou 4000.
CSI 4507 Recherche d'information et l'Internet (3 crédits)
Principes de base de la recherche d'information. Méthodes d'indexage. Traitement des requêtes. Aspects linguistiques de la recherche d'information. Agents et approches d'intelligence artificielle pour la recherche d'information. Relation entre la recherche d'information et le World Wide Web. Moteur de recherche. Serveurs et clients. Programmation du côté client et du côté serveur pour la recherche d'information.
Volet : Cours magistral
Préalables : 9 crédits de cours en informatique (CSI) ou génie logiciel (SEG) de niveau 3000 ou 4000.
CSI 4508 Cryptographie (3 crédits)
La notion de communication sûre. Construction de cryptosystèmes sûrs fondée sur l'hypothèse de la complexité calculatoire. Fonctions cryptographiques unidirectionnelles, fonctions à portes de déroutement, générateurs pseudo-aléatoires, et schémas de chiffrement à clé publique/privée. Incapacité de distinction et imprévisibilité calculatoires. Signature numérique et authentification de messages. Systèmes de preuves interactifs/à divulgation nulle. Application au commerce électronique et au courtage électronique.
Volet : Cours magistral
Préalables : 9 crédits de cours en informatique (CSI) ou génie logiciel (SEG) de niveau 3000 ou 4000.
CSI 4509 Introduction au calcul réparti (3 crédits)
Modèles de calcul. Complexité de communication. Conception et analyse d'algorithmes répartis. Algorithmes de contrôle. Calcul dans les systèmes asynchrones. Calcul dans les systèmes synchrones. Algorithmes tolérants aux défaillances. Manipulation de données réparties. Exemples d'applications dans les réseaux de communication, réseaux mobiles, et systèmes d'agents communicants.
Volet : Cours magistral, Tutoriel
Préalable : CSI 3505.
CSI 4518 Réseaux d'ordinateurs et protocoles (3 crédits)
Services de communication, protocoles et logiciels. Détails des hiérarchies de protocoles à couches. Les couches transport, session, présentation et application. Concepts fondamentaux de la conception de réseaux d'ordinateurs. Architectures de réseaux d'ordinateurs et de protocoles de communication.
Volet : Cours magistral
Préalable : CEG 3585.
CSI 4524 Principes de base de modélisation et simulation (3 crédits)
Le processus de la modélisation et la simulation de la perspective d un projet. Le rôle de la modélisation conceptuelle dans le contexte de système dynamique d évènements discrets. Composer avec des phénomènes aléatoires. Les caractéristiques particulières de la modélisation et simulation pour les systèmes dynamiques à temps continu et un survol des procédures numériques. Validation et vérification. Logiciel de simulation et le développement de programmation.
Volet : Cours magistral
Préalables : MAT 2777.
CSI 4525 Théorie des langages de programmation (3 crédits)
Le concept de sémantique formelle. Grammaires d'attributs. Sémantique dénotationnelle. Sémantique opérationnelle. Sémantique axiomatique. Le calcul Lambda pour la description des langages de programmation. Le principe de résolution et la sémantique des langages de programmation logique. Théories de types abstraits de données. Programmation parallèle, algèbres de processus, CCS, CSP.
Volet : Cours magistral
CSI 4530 Graphiques interactifs (3 crédits)
Infographie interactive. Structures de données et procédures d'affichage. Pipeline graphique. Transformations géométriques. Représentation en trois dimensions. Modèles de couleur et d'illumination. Modélisation d'objets en deux et trois dimensions.
Volet : Laboratoire, Cours magistral
Préalables : MAT 1741, 9 crédits de cours en informatique (CSI) ou génie logiciel (SEG) de niveau 3000 ou 4000.
CSI 4533 Méthodes informatisées en traitement d'image (3 crédits)
Volet : Laboratoire, Cours magistral
Préalable : CSI 3505.
CSI 4539 Conception de systèmes informatiques sécuritaires (3 crédits)
Politiques de sécurité. Mécanismes de sécurité. Sécurité physique. Conscience de la sécurité. Authentification d'utilisateur. Application des mécanismes de sécurité. Codage. "Firewalls" internes et externes. Sécurité des systèmes d'opération et des logiciels. Sécurité des applications de commerce électronique. Design de systèmes et composantes de sécurité. Dispositifs pour l'analyse de la sécurité, renifleurs, détecteurs d'attaque. Guerre de l'information. Aspects éthiques de la sécurité informatique.
Volet : Laboratoire, Cours magistral, Tutoriel
CSI 4540 Introduction au calcul parallèle (3 crédits)
Modèles de calcul parallèle. Machines parallèles à mémoire partagée. Réseaux d'interconnexion et leurs propriétés topologiques. Tableaux systoliques. Architectures hypercube. Configuration physique. Mesures de performance pour algorithmes parallèles. Recherche parallèle et structures de données. Traitement algébrique et géométrique parallèle. Calcul tolérant les pannes. Évaluation parallèle d'expressions.
Volet : Cours magistral
Préalable : CSI 3505.
CSI 4541 Conception de systèmes en temps réel (3 crédits)
Définition de systèmes en temps réel; exemples. Caractéristiques de systèmes en temps réel. Outils et techniques d'analyse. Structure de systèmes en temps réel. Fiabilité et tolérance de défaillances. Prise en charge d'exceptions. Simultanéité d'exécution et programmation simultanée de systèmes en temps réel. Synchronisation et communication, contrôle et ordonnancement de ressources dans des systèmes en temps réel. Méthodologies de conception de systèmes en temps réel. Conception assistée par ordinateur de systèmes en temps réel.
Volet : Laboratoire, Cours magistral, Tutoriel
Préalable : CSI 3531/CSI 3631. Aussi offert sous la cote CEG 4566.
CSI 4542 Principes fondamentaux de la science des données (3 crédits)
Données massives, analyse de données et infonuagique; préparation des données : organisation, statistiques de base, nettoyage et intégration des données; techniques d'exploration de données, exploration des motifs, classification, partionnement des données, détection des données aberrantes, évaluation des modèles, entreposage des données et analyse multidimensionnelle, visualisation des données, analyse des données visuelles.
Volet : Cours magistral
Préalables : CSI 2532, (CSI 3520 ou SEG 2506), MAT 2777 ou (MAT 2771 et MAT 2775).
CSI 4545 Apprentissage automatique (3 crédits)
Concepts de base de l'apprentissage automatique. Principes essentiels de mathématiques. Apprentissage supervisé. Apprentissage non supervisé. Apprentissage par renforcement. Algorithmes pour la régression, la classification, l'estimation de la densité et le regroupement.
Volet : Cours magistral
Préalables: MAT 1741, ((MAT 2771, MAT 2775) ou MAT 2777) et 12 crédits de cours en CSI ou SDS de niveau 3000.
CSI 4550 Introduction aux méthodes d'optimisation (3 crédits)
Modèles d'optimisation linéaire et leurs solutions. Techniques de modélisation des problèmes de programmation linéaire, les solutions par la méthode du simplex, théorie de la dualité, analyse de sensibilité, méthodes de point intérieur. Formulation de problèmes par programmation linéaire en nombres entiers, méthodes de résolution telles que les algorithmes de coupes et les algorithmes de séparation et évaluation.
Volet : Cours magistral
Préalable : CSI 3505.
CSI 4900 Projet de recherche / Honours Project (3 crédits / 3 units)
Un projet d'une durée d'un semestre, à faire seul ou en petit groupe, sous la supervision d'un professeur. Les projets sont affichés et sont choisis durant le semestre précédent. Les étudiants doivent participer aux présentations des projets, cédulées à la fin du semestre. / A one-semester project, individual or for a small group, carried out under the supervision of a faculty member. Projects are posted and selected in the preceding semester. The students are required to participate in project presentations scheduled at the end of the semester.
Volet / Course Component: Recherche / Research
Préalable : 18 crédits de cours en informatique (CSI) ou génie logiciel (SEG) de niveau 3000 ou 4000. / Prerequisite: 18 course units in computer science (CSI) or software engineering (SEG) at the 3000 or 4000 level.
CSI 5100 Data Integration (3 units)
Materialized and virtual approaches to integration of heterogeneous and independent data sources. Emphasis on data models, architectures, logic-based techniques for query processing, metadata and consistency management, the role of XML and ontologies in data integration; connections to schema mapping, data exchange, and P2P systems. This course is equivalent to COMP 5306 at Carleton University.
Course Component: Lecture
CSI 5101 Knowledge Representation (3 units)
KR is concerned with representing knowledge and using it in computers. Emphasis on logic-based languages for KR, and automated reasoning techniques and systems; important applications of this traditional area of AI to ontologies and semantic web. This course is equivalent to COMP 5307 at Carleton University.
Course Component: Lecture
CSI 5102 Topics in Medical Computing (3 units)
Introductory course on data structures, algorithms, techniques, and software development related to medical computing (in particular spatial modeling). Topics may include: computational geometry algorithms for cancer treatment, medical imaging, spatial data compression algorithms, dynamic programming for DNA analysis. This course is equivalent to COMP 5308 at Carleton University.
Course Component: Lecture
CSI 5105 Network Security and Cryptography (3 units)
Advanced methodologies selected from symmetric and public key cryptography, network security protocols and infrastructure, identification, anonymity, privacy technologies, secret-sharing, intrusion detection, firewalls, access control technologies, and defending network attacks. This course is equivalent to COMP 5406 at Carleton University.
Course Component: Lecture
Prerequisites: familiarity with basic concepts in networks, network security, and applied cryptography.
CSI 5106 Cryptography (3 units)
Security in encryption algorithms. Encryption and decryption. Entropy, equivocation, and unicity distance. Cryptanalysis and computational complexity. Substitution, transposition, and product ciphers. Symmetric ciphers: block and stream modes. Modular arithmetic. Public key cryptosystems. Factorization methods. Elliptic curve, lattice-based, and homomorphic cryptography. Proofs of security.
Course Component: Lecture
CSI 5107 Principle of Intelligent Transportation Systems (3 units)
Fundamental Concepts of ITS. Computer Information and Communication for ITS. The Backbone of ITS Communication, Network Topologies and Configurations. ITS Models and Evaluation Methods. Advanced Transportation Management Systems (ATMS). Advanced Traveler Information Systems (ATIS). Advanced Driver Assistant Systems. Data Stream Management System (DSMS) in the intelligent transportation Systems. Intelligent Traffic Control Algorithms. Traffic Demand Modeling and Analysis. Incident Detection and Collusion Avoidance Algorithms. Smart Mobility and GPS Localization Algorithms. Software Defined Network for ITS. Security & Privacy in ITS
Course Component: Lecture
CSI 5108 Introduction to Convex Optimization (3 units)
Mathematics of optimization: linear, nonlinear and convex problems. Convex and affine sets. Convex, quasiconvex and log-convex functions. Operations preserving convexity. Recognizing and formulating convex optimization problems. The Lagrange function, optimality conditions, duality, geometric and saddle-point interpretations. Least-norm, regularized and robust approximations. Statistical estimation, detector design. Adaptive antennas. Geometric problems (networks). Algorithms.
Course Component: Lecture
CSI 5110 Principles of Formal Software Development (3 units)
Methodologies in formal software specification, development, and verification. The use of theorem proving, automated deduction, and other related formal methods for software correctness. Applications in program verification and secure computation. This course is equivalent to COMP 5707 at Carleton University.
Course Component: Lecture
CSI 5111 Software Quality Engineering (3 units)
Software quality issues. Quality components and metrics. Software process quality. Software reliability engineering. Software design for testability. Requirements capture and validation. Systematic design validation; grey-box approach, test design, implementation and management, case studies in validation and verification of communications software. Object-oriented design and test. Theoretical aspects. This course is equivalent to COMP 5501 at Carleton University.
Course Component: Lecture
CSI 5112 Software Engineering (3 units)
Topics of current interest in Software Engineering, such as requirements engineering, precise and advanced modelling, development processes, change management, standards, and emerging types of applications. This course is equivalent to COMP 5207 at Carleton University.
Course Component: Lecture
CSI 5113 Foundations Programming Languages (3 units)
Advanced study of programming paradigms from a practical perspective. Paradigms may include functional, imperative, concurrent, distributed, generative, aspect- and object-oriented, and logic programming. Emphasis on underlying principles. Topics may include: types, modules, inheritance, semantics, continuations, abstraction and reflection. This course is equivalent to COMP 5001 at Carleton University.
Course Component: Lecture
CSI 5115 Database Analysis and Design (3 units)
The dimensional and multidimensional data models for data warehousing. Data dependencies and decomposition. Structure and use of data definition and manipulation languages. Database economics, engineering, deployment and evolution. Issues in integrity, security, the Internet and distributed databases. Relationships to decision support systems. This course is equivalent to COMP 5503 at Carleton University.
Course Component: Discussion Group, Laboratory, Lecture, Research, Seminar, Work Term, Theory and Laboratory, Tutorial
CSI 5116 Authentication and Software Security (3 units)
Specialized topics in security including advanced authentication techniques, user interface aspects, electronic and digital signatures, security infrastructures and protocols, software vulnerabilities affecting security, non-secure software and hosts, protecting software and digital content. This course is equivalent to COMP 5407 at Carleton University.
Course Component: Lecture
CSI 5118 Automated Verification and Validation of Software (3 units)
Topics in formal test derivation methods, test management, high-level, CASE-based verification and validation, data-flow & control-flow measures and metrics for assessing quality of designs and code, regression analysis & testing. This course is equivalent to COMP 5302 at Carleton University.
Course Component: Lecture
CSI 5121 Advanced Data Structures (3 units)
Simple methods of data structure design and analysis that lead to efficient data structures for several problems. Topics include randomized binary search trees, persistence, fractional cascading, self-adjusting data structures, van Emde Boas trees, tries, randomized heaps, and lowest common ancestor queries. This course is equivalent to COMP 5408 at Carleton University.
Course Component: Lecture
CSI 5122 Software Usability (3 units)
Design principles and metrics for usability. Qualitative and quantitative methods for the evaluation of software system usability: Heuristic evaluation, usability testing, usability inspections and walkthroughs, cognitive walkthroughs, formal usability experimentation. Ethical concerns when performing studies with test users. Economics of usability. Integration of usability engineering into the software engineering lifecycle. This course is equivalent to COMP 5301 at Carleton University.
Course Component: Lecture
CSI 5124 Computational Aspects of Geographic Information Systems (3 units)
Computational perspective of geographic information systems (GIS). Data representations and their operations on raster and vector devices: e.g., quadtrees, grid files, digital elevation models, triangular irregular network models. Analysis and design of efficient algorithms for solving GIS problems: visibility queries, point location, facility location. This course is equivalent to COMP 5204 at Carleton University.
Course Component: Lecture
CSI 5126 Algorithms in Bioinformatics (3 units)
Fundamental mathematical and algorithmic concepts underlying computational molecular biology; physical and genetic mapping, sequence analysis (including alignment and probabilistic models), genomic rearrangement, phylogenetic inference, computational proteomics and systemics modelling of the whole cell. This course is equivalent to COMP 5108 at Carleton University.
Course Component: Lecture
CSI 5127 Applied Computational Geometry (3 units)
Design and analysis of efficient algorithms for solving geometric problems in applied fields such as Geometric Network Design, Geometric Routing and Searching. Geometric spanners, Greedy spanners, Theta-Graphs, Yao-Graphs, Well-Separated Pair Decomposition, Delaunay Triangulations. Introduction to the game of Cops and Robbers. This course is equivalent to COMP 5409 at Carleton University.
Course Component: Lecture
CSI 5128 Swarm Intelligence (3 units)
Collective computation, collective action, and principles of self-organization in social agent systems. Algorithms for combinatorial optimization problems, division of labour, task allocation, task switching, and task sequencing with applications in security, routing, wireless and ad hoc networks and distributed manufacturing. This course is equivalent to COMP 5002 at Carleton University.
Course Component: Lecture
CSI 5129 Advanced Database Systems (3 units)
In-depth study on developments in database systems shaping the future of information systems, including complex object, object-oriented, object-relational, and semi-structured databases. Data structures, query languages, implementation and applications. This course is equivalent to COMP 5305 at Carleton University.
Course Component: Lecture
CSI 5131 Parallel Algorithms and Applications in Data Science (3 units)
Multiprocessor architectures from an application programmer's perspective: programming models, processor clusters, multi-core processors, GPUs, algorithmic paradigms, efficient parallel problem solving, scalability and portability. Projects on high performance computing in Data Science, including data analytics, bioinformatics, simulations. Programming experience on parallel processing equipment. This course is equivalent to COMP 5704 at Carleton University.
Course Component: Lecture
CSI 5134 Fault Tolerance (3 units)
Hardware and software techniques for fault tolerance. Topics include modeling and evaluation techniques, error detecting and correcting codes, module and system level fault detection mechanisms, design techniques for fault-tolerant and fail-safe systems, software fault tolerance through recovery blocks, N-version programming, algorithm-based fault tolerance, checkpointing and recovery techniques, and survey of practical fault-tolerant systems. This course is equivalent to COMP 5004 at Carleton University.
Course Component: Lecture
CSI 5135 Information Visualization and Visual Analytics (3 units)
Principles, techniques, technology and applications of information visualization for visual data analysis. Topics include human visual perception, cognitive processes, static and dynamic models of image semantics, interaction paradigms, big data visual analysis case studies. This course is equivalent to COMP 5209 at Carleton University.
Course Component: Lecture
CSI 5136 Computer Security and Usability (3 units)
Design and evaluation of security and privacy software with particular attention to human factors and how interaction design impacts security. Topics include current approaches to usable security, methodologies for empirical analysis, and design principles for usable security and privacy. This course is equivalent to COMP 5110 at Carleton University.
Course Component: Lecture
CSI 5137 Selected Topics in Software Engineering (Category E) (3 units)
Selected topics in Software Engineering (Category E), not covered by other graduate courses. Details will be available from the School at the time of registration. This course is equivalent to COMP 5900 at Carleton University.
Course Component: Lecture
CSI 5138 Selected Topics in Theory of Computing (Category T) (3 units)
Selected topics in Theory of Computing (Category T), not covered by other graduate courses. Details will be available from the School at the time of registration. This course is equivalent to COMP 5900 at Carleton University.
Course Component: Lecture
CSI 5139 Selected Topics in Computer Applications (Category A) (3 units)
Selected topics in Computer Applications (Category A), not covered by other graduate courses. Details will be available from the School at the time of registration. This course is equivalent to COMP 5900 at Carleton University.
Course Component: Lecture
CSI 5140 Selected Topics in Computer Systems (Category S) (3 units)
Selected topics in Computer Systems (Category S), not covered by other graduate courses. Details will be available from the School at the time of registration. This course is equivalent to COMP 5900 at Carleton University.
Course Component: Lecture
CSI 5142 Protocols for Mobile and Wireless Networks (3 units)
Link and network layer protocols of wireless networks; applications of wireless networks may be discussed. Topics may include: protocol implementation, mobile IP, resource discovery, wireless LANs/PANs, and Spreadspectrum. Courses CSI 6136 (SYSC 5306), CSI 5142 (COMP 5402) cannot be combined for units. This course is equivalent to COMP 5402 at Carleton University.
Course Component: Lecture
Precludes additional credit for SYSC 5306.
CSI 5146 Computer Graphics (3 units)
Principles and advanced techniques in rendering and modelling. Research field overview. Splines, subdivision surfaces and hierarchical surface representations. Physics of light transport, rendering equation and Bidirectional Reflectance Distribution Function. Classical ray tracing, radiosity, global illumination and modern hybrid methods. Plenoptic function and image-based rendering. This course is equivalent to COMP 5202 at Carleton University.
Course Component: Lecture
CSI 5147 Computer Animation (3 units)
Theories and techniques in 3D modeling and animation. Animation principles, categories, and history. Forward and inverse kinematics. Motion capture, editing and retargeting. Flexible bodies. Particle animation. Behavioral animation. Human modeling. Facial animation. Cloth animation and other sub-topics. This course is equivalent to COMP 5201 at Carleton University.
Course Component: Lecture
CSI 5148 Wireless Ad Hoc Networking (3 units)
Self-organized, mobile, and hybrid ad hoc networks. Physical, medium access, networks, transport and application layers, and cross-layering issues. Power management. Security in ad hoc networks. Topology control and maintenance. Data communication protocols, routing and broadcasting. Location service for efficient routing. This course is equivalent to COMP 5103 at Carleton University.
Course Component: Lecture
CSI 5149 Graphical Models and Applications (3 units)
Bayesian networks, factor graphs, Markov random fields, maximum a posteriori probability (MAP) and maximum likelihood (ML) principles, elimination algorithm, sum-product algorithm, decomposable and non-decomposable models, junction tree algorithm, completely observed models, iterative proportional fitting algorithm, expectation- maximization (EM) algorithm, iterative conditional modes algorithm, variational methods, applications. Courses CSI 5149 (COMP 5007), ELG 5131 (EAGJ 5131) and ELG 7177 (EACJ 5605) cannot be combined for units. This course is equivalent to COMP 5007 at Carleton University.
Course Component: Lecture
Permission of the Department is required.
CSI 5151 Virtual Environments (3 units)
Basic concepts. Virtual worlds. Hardware and software support. World modeling. Geometric modeling. Light modeling. Kinematic and dynamic models. Other physical modeling modalities. Multi-sensor data fusion. Anthropomorphic avatars. Animation: modeling languages, scripts, real-time computer architectures. Virtual environment interfaces. Case studies. Courses ELG 5124 (EACJ 5204), CSI 5151 (COMP 5205) cannot be combined for units. This course is equivalent to COMP 5205 at Carleton University.
Course Component: Lecture
CSI 5152 Evolving Information Networks (3 units)
Convergence of social and technological networks with WWW. Interplay between information content, entities creating it and technologies supporting it. Structure and analysis of such networks, models abstracting their properties, link analysis, search, mechanism design, power laws, cascading, clustering and connections with work in social sciences. This course is equivalent to COMP 5310 at Carleton University.
Course Component: Lecture
CSI 5153 Data Management for Business Intelligence (3 units)
Data management problems and information technology in decision making support in business environments. Topics include advanced data modeling, semantic modeling, multidimensional databases and data warehousing, on-line-analytical processing, elements of data mining, context in data management, data quality assessment, data cleaning, elements of business process modeling. This course emphasizes concepts and techniques rather than specific applications or systems/implementations. This course is equivalent to COMP 5111 at Carleton University.
Course Component: Lecture
CSI 5154 Algorithms for Data Science (3 units)
Algorithmic techniques to handle (massive/big) data arising from, for example, social media, mobile devices, sensors, financial transactions. Algorithmic techniques may include locality-sensitive hashing, dimensionality reduction, streaming, clustering, VC-dimension, external memory, core sets, link analysis and recommendation systems. This course is equivalent to COMP 5112 at Carleton University.
Course Component: Lecture
CSI 5155 Machine Learning (3 units)
Concepts, techniques, and algorithms in machine learning; representation, regularization and generalization; supervised learning; unsupervised learning; advanced methods such as support vector machines, online algorithms, neural networks, hidden Markov models, and Bayesian networks; curse of dimensionality and large-scale machine learning. Category T in course list. This course is equivalent to COMP 5116 at Carleton University.
Course Component: Lecture
Courses CSI 5155, DTO 5100, DTO 5101, ELG 5255, IAI 5100, IAI 5101, MIA 5100, SYS 5185 cannot be combined for units.
CSI 5161 Principles of Distributed Simulation (3 units)
Distributed simulation principles and practices. Synchronization protocols: Optimistic vs Conservative, Deadlock detection in conservative simulations, Time warp simulation. Distributed interactive simulation: Data distribution management, Interest management, High Level Architectures (HLA), Run Time Infrastructure (RTI). Distributed web-based simulation. Distributed agent based simulation. Real time applications of distributed simulation. Distributed and collaborative virtual simulations. This course is equivalent to COMP 5606 at Carleton University.
Course Component: Lecture
CSI 5163 Algorithm Analysis and Design (3 units)
Topics of current interest in the design and analysis of computer algorithms for graph-theoretical applications; e.g. shortest paths, chromatic number, etc. Lower bounds, upper bounds, and average performance of algorithms. Complexity theory. This course is equivalent to COMP 5703 at Carleton University.
Course Component: Lecture
CSI 5164 Computational Geometry (3 units)
Study of design and analysis of algorithms to solve geometric problems; emphasis on applications such as robotics, graphics, and pattern recognition. Topics include: visibility problems, hidden line and surface removal, path planning amidst obstacles, convex hulls, polygon triangulation, point location. This course is equivalent to COMP 5008 at Carleton University.
Course Component: Lecture
CSI 5165 Combinatorial Algorithms (3 units)
Design of algorithms for solving problems that are combinatorial in nature, involving exhaustive generation, enumeration, search and optimization. Algorithms for generating basic combinatorial objects (permutations, combinations, subsets) and for solving hard optimization problems (knapsack, maximum clique, minimum set cover). Metaheuristic search, backtracking, branch-and-bound. Computing isomorphism of combinatorial objects (graphs), isomorph-free exhaustive generation. This course is equivalent to COMP 5709 at Carleton University.
Course Component: Lecture
CSI 5166 Applications of Combinatorial Optimization (3 units)
Topics in combinatorial optimization with emphasis on applications in Computer Science. Topics include network flows, various routing algorithms, polyhedral combinatorics, and the cutting plane method. This course is equivalent to COMP 5805 at Carleton University.
Course Component: Lecture
CSI 5167 Human-Computer Interaction Models, Theories and Frameworks (3 units)
A basis for graduate study in HCI with an emphasis on the application of theory to user interface design. Review of main theories of human behaviour relevant to HCI, including especially Cognitive Dimensions of Notations Framework, Mental Models, Distributed Cognition, and Activity Theory, and their application to design and development of interactive systems. This course is equivalent to COMP 5210 at Carleton University.
Course Component: Lecture
CSI 5168 Digital Watermarking (3 units)
Overview of recent advances in watermarking of image, video, audio, and other media. Spatial, spectral, and temporal watermarking algorithms. Perceptual models. Use of cryptography in steganography and watermarking. Robustness, security, imperceptibility, and capacity of watermarking. Content authentication, copy control, intellectual property, digital rights management, and other applications. This course is equivalent to COMP 5309 at Carleton University.
Course Component: Lecture
CSI 5169 Wireless Networks and Mobile Computing (3 units)
Computational aspects and applications of design and analysis of mobile and wireless networking. Topics include Physical, Link Layer, Media Access Control, Wireless, Mobile LANs (Local Area Networks), Ad-Hoc, Sensor Networks, Power Consumption optimization, Routing, Searching, Service Discovery, Clustering, Multicasting, Localization, Mobile IP/TCP (Internet Protocol/Transmission Control Protocol), File Systems, Mobility Models, Wireless Applications. Courses CSI 5169, ELG 6168 cannot be combined for units. This course is equivalent to COMP 5304 at Carleton University.
Course Component: Lecture
CSI 5173 Data Networks (3 units)
Mathematical and practical aspects of design and analysis of communication networks. Topics include: basic concepts, layering, delay models, multi-access communication, queuing theory, routing, fault-tolerance, and advanced topics on high-speed networks, ATM, mobile wireless networks, and optical networks. This course is equivalent to COMP 5203 at Carleton University.
Course Component: Lecture
CSI 5174 Validation Methods for Distributed Systems (3 units)
Review of formal specification and description techniques for distributed and open systems. Verification techniques. Correctness proofs. Verification of general properties of distributed systems. Analysis and relief strategies. Testing techniques. Test generation strategies. Test architectures. This course is equivalent to COMP 5604 at Carleton University.
Course Component: Lecture
CSI 5175 Mobile Commerce Technologies (3 units)
Wireless networks support for m-commerce; m-commerce architectures and applications; mobile payment support systems; business models; mobile devices and their operating systems; mobile content presentation; security issues and solutions; relevant cross layer standards and protocols; case studies. Courses DTI 5175, CSI 5175 cannot be combined for units. This course is equivalent to COMP 5220 at Carleton University.
Course Component: Lecture
CSI 5180 Topics in Artificial Intelligence (3 units)
Selected topics in Artificial Intelligence (A.I.); could include A.I. programming techniques, pattern matching systems, natural language systems, rule-based systems, constraint systems, machine learning systems, and cognitive systems. Applications could include areas in Finance, Medicine, Manufacturing, Smart Cities, Semantic Web, Healthcare, Fraud Detection, Intrusion Detection, Autonomous Vehicles, Opinion mining, Sentiment Analysis or similar areas. Assignments will be both (a) programming-oriented, requiring implementation and/or extensions of prototypes in Lisp and/or Prolog and (b) research-oriented, requiring readings of special topics in current A.I. journals. This course is equivalent to COMP 5100 at Carleton University.
Course Component: Lecture
CSI 5183 Evolutionary Computation and Artificial Life (3 units)
Study of algorithms based upon biological theories of evolution, applications to machine learning and optimization problems. Possible topics: Genetic Algorithms, Classifier Systems, and Genetic Programming. Recent work in the fields of Artificial Life (swarm intelligence, distributed agents, behavior-based AI) and of connectionism. This course is equivalent to COMP 5206 at Carleton University.
Course Component: Lecture
Precludes additional credit for COMP 4107.
CSI 5185 Statistical and Syntactic Pattern Recognition (3 units)
Topics include a mathematical review, Bayes decision theory, maximum likelihood and Bayesian learning for parametric pattern recognition, non-parametric methods including nearest neighbor and linear discriminants. Syntactic recognition of strings, substrings, subsequences and tree structures. Applications include speech, shape and character recognition. This course is equivalent to COMP 5107 at Carleton University.
Course Component: Lecture
CSI 5195 Ethics for Artificial Intelligence (3 units)
Students critically examine topics in applied AI ethics through the lens of contemporary philosophy and applied ethics texts, popular media articles, and technology case studies. Topics may include: bias and fairness; explainability; accountability; privacy; deception; trust/trustworthiness; and metaphors. Methods for applying ethical considerations in technology design are introduced through hands-on design projects. (Category E)
Course Component: Lecture
Courses CSI 5195, DTI 5310, DTO 5310, SYS 5295 cannot be combined for units.
CSI 5200 Projects on Selected Topics (3 units)
Course Component: Lecture
CSI 5218 Uncertainty Evaluation in Engineering Measurements and Machine Learning (3 units)
Uncertainty, uncertainty propagation, Bayesian inference, sensor fusion, time series, Gaussian processes, integrating scientific/user knowledge into machine learning, neural networks for differential equations, probabilistic deep learning, sequential decision making. Case studies will be drawn from various fields including biomedical, autonomous vehicles, sensors, and signal processing.
Course Component: Lecture
The courses CSI 5218, ELG 5218 cannot be combined for units.
CSI 5308 Principles of Distributed Computing (3 units)
Formal models of distributed environment; theoretical issues in the design of distributed algorithms; message and time complexity; problem solving in distributed settings. Problems discussed may include: coordination and control, information diffusion, leader election, consensus, distributed data operations, computing by mobile entities. This course is equivalent to COMP 5003 at Carleton University.
Course Component: Lecture
CSI 5311 Distributed Databases and Transaction Processing (3 units)
Principles involved in the design and implementation of distributed databases and distributed transaction processing systems. Topics include: distributed and multi-database system architectures and models, atomicity, synchronization and distributed concurrency control algorithms, data replication, recovery techniques, and reliability in distributed databases. This course is equivalent to COMP 5101 at Carleton University.
Course Component: Lecture
CSI 5312 Distributed Operating Systems (3 units)
Design issues of advanced multiprocessor distributed operating systems: multiprocessor system architectures; process and object models; synchronization and message passing primitives; memory architectures and management; distributed file systems; protection and security; distributed concurrency control; deadlock; recovery; remote tasking; dynamic reconfiguration; performance measurement, modeling, and system tuning. This course is equivalent to COMP 5102 at Carleton University.
Course Component: Lecture
CSI 5314 Object-Oriented Software Development (3 units)
Issues in modeling and verifying quality and variability in object-oriented systems. Testable models in model-driven and test-driven approaches. System family engineering. Functional conformance: scenario modeling and verification, design by contract. Conformance to non-functional requirements: goals, forces and tradeoffs, metrics. This course is equivalent to COMP 5104 at Carleton University.
Course Component: Lecture
CSI 5340 Introduction to Deep Learning and Reinforcement Learning (3 units)
Fundamental of machine learning; multi-layer perceptron, universal approximation theorem, back-propagation; convolutional networks, recurrent neural networks, variational auto-encoder, generative adversarial networks; components and techniques in deep learning; Markov Decision Process; Bellman equation, policy iteration, value iteration, Monte-Carlo learning, temporal difference methods, Q-learning, SARSA, applications. This course is equivalent to COMP 5340 at Carleton University.
Course Component: Lecture
CSI 5341 Learning-based Computer Vision (3 units)
Introduction to learning-based computer vision; statistical learning background; image processing and filtering primer; convolutional neural networks (CNNs), network layers, computer vision data sets and competitions; computer vision problems, in particular, image classification, detection and recognition, semantic segmentation, image generation, multi-view problems and tracking. This course is equivalent to COMP 5341 at Carleton University.
Course Component: Lecture
CSI 5342 Ubiquitous Sensing for Smart Cities (3 units)
Sensor and actuator networks. Dedicated and non-dedicated sensing. Vehicular sensing and smart transportation. Software Defined Things. Sensing as a service. Machine and deep learning-based misbehaviour detection. IoT-data analytics ecosystems. Federated Learning. AI-based security solutions. Auction and game theory concepts in ubiquitous sensing. This course is equivalent to COMP 5342 at Carleton University.
Course Component: Lecture
CSI 5343 AI-Enabled Communications (3 units)
Wireless networking fundamentals. Device to-device communications. Networking with cognitive radio. Cyber physical systems (CPS). Self-organization. Supervised and unsupervised learning. Reinforcement learning. Deep learning.This course is equivalent to COMP 5343 at Carleton University.
Course Component: Lecture
CSI 5344 Geometry Processing (3 units)
The course covers concepts, representations, and algorithms for analyzing and processing 3D geometric datasets. Topics include shape representations (e.g., triangle meshes, points clouds, and implicit functions), and the geometry processing pipeline covering the acquisition (e.g., with laser scanning or depth cameras), reconstruction, manipulation, editing, analysis, and fabrication (3D printing) of geometric models. This course is equivalent to COMP 5115 at Carleton University.
Course Component: Lecture
CSI 5345 Internet of Things (IoT) Security (3 units)
The course examines security challenges related to the Internet of Things (IoT), with a focus on consumer IoT devices, software aspects including engineering design, security of communications protocols and wireless access, cryptographic mechanisms, device integration and configuration, and security of IoT applications and platforms. This course is equivalent to COMP 5119 at Carleton University.
Course Component: Lecture
CSI 5346 Mining Software Repositories (3 units)
Introduction to the methods and techniques of mining software engineering data. Software repositories and their associated data. Data extraction and mining. Data analysis and interpretation (statistics, metrics, machine learning). Empirical case studies. This course is equivalent to COMP 5117 at Carleton University.
Course Component: Lecture
CSI 5347 Trends in Big Data Management (3 units)
Discussion of research papers on hot topics in the area of data management. The list of topics covered in the course generally spans: Data Exploration, Data Cleaning, Data Integration, Data Mining, Data Lake Management, Knowledge Graphs, Graph Processing, Question Answering, Blockchain, Crowdsourcing, Internet of Things, Text Processing, and Training via Weak Supervision. The common characteristic among all these topics is the large scale of data. This course is equivalent to COMP 5118 at Carleton University.
Course Component: Lecture
CSI 5350 Machine Learning for Healthcare (3 units)
Principles, techniques, technology and applications of machine learning for medical data such as medical imaging data, genomic data, physiological signals, speech and language. This course is equivalent to COMP 5113 at Carleton University.
Course Component: Lecture
CSI 5351 Quantum Communications and Networking (3 units)
Quantum communications and networking; the use of individual photons and teleportation to represent and transmit information. Theoretical (mathematical) principles. Practical aspects (implementation and software simulation) of quantum communications and networking. This course is equivalent to COMP 5114 at Carleton University.
Course Component: Lecture
CSI 5352 Internet Measurement and Security (3 units)
Measurement methodologies for understanding complex Internet phenomena and behaviors including: spread of vulnerabilities, remote network topologies, attack patterns, content popularity, Internet censorship, service quality, and adoption of security systems. Tools for efficient measurements, large-scale data analysis, stats, reproducibility of results. Ethical considerations. This course is equivalent to COMP 5500 at Carleton University.
Course Component: Lecture
CSI 5380 Systems and Architectures for Electronic Commerce (3 units)
E-commerce system architecture with a focus on relevant design patterns. Web servers, containers, and application frameworks. Web protocols, services, and client technologies. Scaleability through load balancing, clustering, and code optimization. Internationalization, accessibility, and privacy. Data mining and sharing approaches for digital targeted advertising. E-commerce user interface design and evaluation. Current research issues. Hands-on experience with an integrated set of current e-commerce tools. E-commerce development project. Courses EBC 5380, CSI 5380 cannot be combined for units. This course is equivalent to COMP 5405 at Carleton University.
Course Component: Lecture
CSI 5386 Natural Language Processing (3 units)
Overview of both rule-based or symbolic methods and statistical methods as approaches to Natural Language Processing (NLP), with more emphasis on the statistical ones. Applications such as information retrieval, text categorization, clustering, and statistical machine translation could be discussed. This course is equivalent to COMP 5505 at Carleton University.
Course Component: Lecture
CSI 5387 Data Mining and Concept Learning (3 units)
Concepts and techniques of data mining. Methods for data summarization and data preprocessing. Algorithms for finding frequent patterns and association analysis; classification; cluster analysis and anomaly detection. Model selection, model evaluation and statistical significance testing. Approaches for coping with Big Data. Selected applications of data mining and concept learning. This course is equivalent to COMP 5706 at Carleton University.
Course Component: Lecture
Permission of the Department is required. Courses CSI 5387, DTO 5125, GNG 5125 cannot be combined for units.
CSI 5388 Topics in Machine Learning (3 units)
Course Component: Lecture
Permission of the Department is required.
CSI 5389 Electronic Commerce Technologies (3 units)
Business models and technologies. Search engines. Cryptography. Web services and agents. Secure electronic transactions. Value added e-commerce technologies. Advanced research questions. Courses EBC5389, CSI5389 cannot be combined for units. This course is equivalent to COMP 5401 at Carleton University.
Course Component: Lecture
CSI 5390 Learning Systems from Random Environments (3 units)
Computerized adaptive learning for random environments and its applications. Topics include a mathematical review, learning automata which are deterministic/stochastic, with fixed/variable structures, of continuous/discretized design, with ergodic/absorbing properties and of estimator families. This course is equivalent to COMP 5005 at Carleton University.
Course Component: Lecture
CSI 5500 Projets en informatique (3 crédits)
Volet : Cours magistral
CSI 5501 Modèles formels de l'information (3 crédits)
Volet : Cours magistral
CSI 5510 Principles de développement formel de logiciels (3 crédits)
Méthodologies pour la spécification, le développement et la vérification formels de logiciels. Utilisation d'assistants de preuves, de déduction automatisée et d'autres méthodes formelles visant l'exactitude de logiciel. Applications à la vérification de programmes et au calcul sécurisé. Ce cours est équivalent à COMP 5707 à la Carleton University.
Volet : Cours magistral
CSI 5511 Génie de la qualité des logiciels (3 crédits)
Critères de la qualité des logiciels. Composantes et métriques de qualité. Qualité du processus de développement des logiciels. Génie de fiabilité des logiciels. Capture et validation d'exigences. Validation systématique de la conception; approche boîte-grise. Conception, implantation et gestion des tests. Étude de cas en validation et vérification des logiciels de communication. Conception orientée objet. Aspects théoriques. Ce cours est équivalent à COMP 5501 à la Carleton University.
Volet : Cours magistral
CSI 5526 Algorithmes en bio-informatique (3 crédits)
Assemblage de l'ADN, recherche de gênes, comparaison de chaînes, alignement de séquences, structures grammaticales, structures secondaires et tertiaires. Les récents développements, tels que les puces d'ADN et de protéines. Travail additionnel requis dans le cas des étudiants inscrits sous la cote CSI 5526.
Volet : Cours magistral
Permission du Département est requise.
CSI 5537 Thème choisi en génie logiciel (catégorie E) (3 crédits)
Thèmes choisis en génie logiciel (catégorie E), non couverts par d'autres cours de deuxième cycle. Les détails seront disponibles à l'école au moment de l'inscription. Ce cours est équivalent à COMP 5900 à la Carleton University.
Volet : Cours magistral
CSI 5538 Thème choisi en théorie de l'informatique (catégorie T) (3 crédits)
Thèmes choisis en théorie de l'informatique (catégorie T), non couverts par d'autres cours de deuxième cycle. Les détails seront disponibles à l'école au moment de l'inscription. Ce cours est équivalent à COMP 5900 à la Carleton University.
Volet : Cours magistral
CSI 5539 Thème choisi en application informatique (catégorie A) (3 crédits)
Thèmes choisis en application informatique (catégorie A), non couverts par d'autres cours de deuxième cycle. Les détails seront disponibles à l'école au moment de l'inscription. Ce cours est équivalent à COMP 5900 à la Carleton University.
Volet : Cours magistral
CSI 5540 Thème choisi en systèmes informatiques (catégorie S) (3 crédits)
Thèmes choisis en systèmes informatiques (catégorie S), non couverts par d'autres cours de deuxième cycle. Les détails seront disponibles à l'école au moment de l'inscription. Ce cours est équivalent à COMP 5900 à la Carleton University.
Volet : Cours magistral
CSI 5555 Apprentissage machine (3 crédits)
Concepts, techniques et algorithmes en apprentissage machine; représentation, régularisation et généralisation; apprentissage supervisé; apprentissage non supervisé; méthodes avancées telles que les machines à vecteur de support, les algorithmes en ligne, les réseaux de neurones; les modèles de Markov cachés et les réseaux bayésiens; le fléau de la dimensionnalité et l'apprentissage machine à grande échelle. Catégorie T dans la liste de cours.
Volet : Cours magistral
CSI 5561 Sujets en simulation et en optimisation des systèmes (3 crédits)
Volet : Cours magistral
CSI 5563 Analyse et conception des algorithmes (3 crédits)
Volet : Cours magistral
CSI 5565 Algorithmes combinatoires (3 crédits)
Conception d'algorithmes pour résoudre des problèmes de nature combinatoire (génération exhaustive, énumération, recherche et optimisation). Algorithmes pour générer des objets combinatoires de base (permutations, combinaisons, sous-ensembles) et pour résoudre des problèmes d'optimisation difficiles (knapsack, clique maximum, couverture minimum). Recherche métaheuristique, retour arrière, branch-and-bound. Calcul de l'isomorphisme des objets combinatoires (graphes), génération exhaustive sans isomorphes. Ce cours est équivalent à COMP 5709 à l'Université Carleton.
Volet : Cours magistral
CSI 5571 Télématique : Concepts et logiciels (3 crédits)
Volet : Cours magistral
CSI 5580 Sujets en intelligence artificielle (3 crédits)
Thèmes choisis en intelligence artificielle (I.A.); pourrait inclure des techniques de programmation en intelligence artificielle, des systèmes d'appariement de formes, des systèmes à langage naturel, des systèmes à base de règles, des systèmes de contraintes, des systèmes d'apprentissage automatique et des systèmes cognitifs. Les applications peuvent couvrir les domaines de la finance, de la médecine, de la fabrication, des villes intelligentes, du Web sémantique, de la détection de fraudes ou d’intrusion, des véhicules autonomes, de l'analyse d’opinion, de l'analyse de sentiments ou d’autres domaines similaires. Les devoirs seront à la fois (a) axés sur la programmation, exigeant l'implémentation et/ou l'extension de prototypes (b) axés sur la recherche, nécessitant des lectures de sujets spéciaux dans des revus d'I.A. contemporaines. Ce cours est équivalent à COMP 5100 à l'Université Carleton.
Volet : Cours magistral
CSI 5780 Systèmes et architectures des logiciels pour le commerce électronique (3 crédits)
Architecture du système de commerce électronique et patrons de conception. Serveurs Web, conteneurs et cadres d'application. Protocoles, services, et technologies de client Web. Évolutivité grâce à l'équilibrage de la charge, au clustering et à l'optimisation du code. Internationalisation, accessibilité et confidentialité. Méthodes d'exploration et de partage de données pour la publicité ciblée numérique. Conception et évaluation de l'interface utilisateur pour le commerce électronique. Problèmes de recherche actuels. Expérience pratique avec un ensemble intégré d'outils de commerce électronique actuels. Projet de développement du commerce électronique. Les cours EBC 5380, CSI 5380 ne peuvent pas être combinés pour les unités. Ce cours est équivalent à COMP 5405 à la Carleton University.
Volet : Cours magistral
Prerequisite: CSI 5389
CSI 5787 Fouille des données et apprentissage des concepts (3 crédits)
Aspects conceptuels et techniques de l’exploration des données. Méthodes pour l'agrégation et le prétraitement des données. Algorithmes d'extraction de patrons et analyse des règles d'association; partitionnement des données et détection des anomalies. Sélection et évaluation des modèles et tests de signification statistique. Approches pour composer avec les mégadonnées. Choix d'applications en exploration des données et en extraction des concepts.
Volet : Cours magistral
CSI 5789 Technologies du commerce électronique (3 crédits)
Introduction aux modèles et technologies d'entreprise. Moteurs de recherche. Cryptographie. Services Web et agents. Transactions électroniques sécurisées. Technologies du commerce électronique à valeur ajoutée. Questions de recherche avancées. Ce cours est équivalent à COMP 5401 à la Carleton University.
Volet : Cours magistral
Prerequisite: CSI 4110 or equivalent.
CSI 5900 Projets de recherche en informatique / Graduate Projects in Computer Science (3 crédits / 3 units)
Ce cours est équivalent à COMP 5902 à la Carleton University. / This course is equivalent to COMP 5902 at Carleton University.
Volet / Course Component: Recherche / Research
CSI 5901 Études dirigées / Directed Studies (3 crédits / 3 units)
A course of independent study under the supervision of a member of the School of Computer Science. Ce cours est équivalent à COMP 5901 à la Carleton University. / This course is equivalent to COMP 5901 at Carleton University.
Volet / Course Component: Recherche / Research
CSI 5903 Stage en commerce électronique / Electronic Commerce Work Term (3 crédits / 3 units)
Expérience en milieu de travail. Noté S (satisfaisant) ou NS (non satisfaisant) selon les résultats du rapport écrit et l'évaluation de l'employeur. Préalable : être accepté au programme de certificat en commerce électronique (option technologie) et recevoir la permission du Comité du programme. / Practical experience. Graded S (Satisfactory) / NS (Not satisfactory), to be based on the grades obtained for the written report as well as on the evaluations of the employer.
Volet / Course Component: Cours magistral / Lecture
Permission du Département est requise. / Permission of the Department is required.
CSI 5904 Projet de recherche avancé en commerce électronique / Graduate Project in Electronic Commerce (3 crédits / 3 units)
Projet sur un sujet précis en commerce électronique mené sous la direction d'un professeur. Les cours CSI 5904, CSI 5903 ne peuvent être combinés pour l'obtention de crédits. / Project on a specific topic in electronic commerce under the supervision of a professor. Courses CSI 5904, CSI 5903 cannot be combined for units.
Volet / Course Component: Cours magistral / Lecture
Exclusion: CSI 5903.
CSI 6900 Projets de recherche intensive en informatique / Intensive Graduate Projects in Computer Science (6 crédits / 6 units)
Cours de six crédits s'échelonnant sur une période de deux sessions. L'envergure du projet de recherche exigé dans ce cours est deux fois plus grande que dans le cas de CSI 5900. Les cours CSI 6900, CSI 5900 ne peuvent être combinés pour l'obtention de crédits. Cours ouvert uniquement aux étudiants inscrits à la maîtrise sans thèse. Ce cours est équivalent à COMP 5903 à la Carleton University. / A two-session course. The project is twice the scope of projects in CSI 5900. Courses CSI 6900, CSI 5900 cannot be combined for units. Not to be taken in the thesis option. This course is equivalent to COMP 5903 at Carleton University.
Volet / Course Component: Recherche / Research
CSI 7131 Advanced Parallel and Systolic Algorithms (3 units)
Continuation of CSI 5131 (COMP 5704). This course is equivalent to COMP 6100 at Carleton University.
Course Component: Lecture
CSI 7160 Advanced Topics in the Theory of Computing (3 units)
This course is equivalent to COMP 6601 at Carleton University.
Course Component: Lecture
CSI 7161 Advanced Topics in Programming Systems and Languages (3 units)
This course is equivalent to COMP 6603 at Carleton University.
Course Component: Lecture
CSI 7162 Advanced Topics in Computer Applications (3 units)
This course is equivalent to COMP 6604 at Carleton University.
Course Component: Lecture
CSI 7163 Advanced Topics in Computer Systems (3 units)
This course is equivalent to COMP 6605 at Carleton University.
Course Component: Lecture
CSI 7170 Advanced Topics in Distributed Computing (3 units)
This course is equivalent to COMP 6602 at Carleton University.
Course Component: Lecture
CSI 7314 Advanced Topics in Object-Oriented Systems (3 units)
Advanced object-oriented software engineering, in particular the issues of reuse and testing. Sample topics include: interaction modeling; class and cluster testing; traceability; design patterns and testing; the C++ standard template library. Students will carry out research. This course is equivalent to COMP 6104 at Carleton University.
Course Component: Lecture
CSI 7561 Études avancées en systèmes et langages de programmation (3 crédits)
Ce cours est équivalent à COMP 6603 à la Carleton University.
Volet : Cours magistral
CSI 7900 Projets de recherche en informatique / Graduate Projects in Computer Science (3 crédits / 3 units)
Ce cours est équivalent à COMP 6902 à la Carleton University. / This course is equivalent to COMP 6902 at Carleton University.
Volet / Course Component: Cours magistral / Lecture
CSI 7901 Études dirigées / Directed Studies (3 crédits / 3 units)
Ce cours est équivalent à COMP 6901 à la Carleton University. / This course is equivalent to COMP 6901 at Carleton University.
Volet / Course Component: Recherche / Research
CSI 9901 Colloque / Seminar
Volet / Course Component: Séminaire / Seminar
CSI 9902 Colloque / Seminar
Volet / Course Component: Séminaire / Seminar
CSI 9997 Proposition de thèse de doctorat / Doctoral Thesis Proposal
Within 8 terms following initial registration in the program, a document, generally defining the problem addressed, relating it to the literature, outlining the hypotheses, goals, research methodology, initial results and validation approach, must be submitted to an examination committee and successfully defended. Ce cours est équivalent à COMP 6908 à la Carleton University. This course is equivalent to COMP 6908 at Carleton University.
Volet / Course Component: Recherche / Research
CSI 9998 Examen général de doctorat / Ph.D. Comprehensive
A committee must be assembled and must approve at least 3 topics for written examination: typically, a major and two minor areas. An oral examination occurs if the written exam is passed. Both elements must take place within the first 4 terms following initial registration in the program. The comprehensive examination may be failed, passed conditionally (i.e., with extra course requirements) or passed unconditionally. If failed, this course may be retaken at most one time. Ce cours est équivalent à COMP 6907 à la Carleton University. This course is equivalent to COMP 6907 at Carleton University.
Volet / Course Component: Recherche / Research