CSI 1306 Computing Concepts for Business (3 units)

Introduction to computer-based problem solving from the perspective of the business world. Design of algorithms for solving business problems. Basics of computer programming in a modern programming language. Solving business problems using application packages including spreadsheets and databases. Basics of web design. Collaborative tools. Using open source software.

Course Component: Laboratory, Lecture

The courses ITI 1120, GNG 1106, CSI 1306, CSI 1308, CSI 1390 cannot be combined for credits.

CSI 1308 Introduction to Computing Concepts (3 units)

Introduction to computer based problem solving for scientific applications. Design of algorithms and algorithms descriptions. 4th generation languages. Software packages. Structured program development. Modular and object-oriented programming. Program testing.

Course Component: Laboratory, Lecture

Prerequisites: Advanced Functions and Introductory Calculus 4U and Geometry and Discrete Mathematics 4U. The courses ITI 1120, GNG 1106, CSI 1306, CSI 1308, CSI 1390 cannot be combined for credits.

CSI 1390 Introduction to Computers (3 units)

Computing and computers. Problem solving and algorithm development. Introduction to programming. Use of application, communication, and database software.

Course Component: Laboratory, Lecture

The courses ITI 1120, ITI 1121, GNG 1106, CSI 1306, CSI 1308, CSI 1390 cannot be combined for credits.

CSI 1706 Éléments de programmation pour la gestion (3 crédits)

Introduction aux méthodes de résolution informatisées dans le cadre du monde des affaires. Conception d'algorithmes pour résoudre des problèmes d'affaires. Éléments de base de programmation dans un langage de programmation moderne. Résolution de problèmes d'affaires à l'aide d'applications telles que les tableurs et les bases de données. Éléments de base de la conception pour le web. Outils de collaboration. Utilisation de logiciel libre.

Volet : Laboratoire, Cours magistral

Les cours ITI 1520, GNG 1506, CSI 1706, CSI 1708, CSI 1790 ne peuvent être combinés pour l'obtention de crédits.

CSI 1708 Introduction aux concepts de l'informatique (3 crédits)

Introduction aux méthodes de résolution de problèmes par ordinateur dans le cadre des applications scientifiques. Conception et description des algorithmes. Langages de 4e génération. Logiciels. Développement de programmes modulaires, structurés et orientés objet. Tests de programmes.

Volet : Laboratoire, Cours magistral

Préalables : Fonctions avancées et introduction au Calcul différentiel 4U et Géométrie et mathématiques discrètes 4U. Les cours ITI 1520, GNG 1506, CSI 1706, CSI 1708, CSI 1790 ne peuvent être combinés pour l'obtention de crédits.

CSI 1790 Introduction aux ordinateurs (3 crédits)

Le traitement de l'information et les ordinateurs. La résolution de problèmes. Développement des algorithmes. Introduction aux concepts de la programmation. Utilisation de logiciels d'application, de communication et de bases de données.

Volet : Laboratoire, Cours magistral

Les cours ITI 1520, ITI 1521, CSI 1706, CSI 1708, CSI 1790 ne peuvent être combinés pour l'obtention de crédits.

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: Discussion Group, Lecture

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

Prerequisites: ITI 1121, MAT 1348.

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: Discussion Group, Laboratory, Lecture

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: Tutorial, Laboratory, Lecture

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

Prerequisites: ITI 1121, ITI 1100.

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

Préalables : ITI 1521, MAT 1748.

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 : Tutoriel, Laboratoire, Cours magistral

Préalables : ITI 1521, ITI 1500.

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

Prerequisite: CSI 2101 or MAT 2143.

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

Prerequisites: CSI 2101, CSI 2120.

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

Prerequisites: CEG 2136, CSI 2110.

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

Prerequisites: CSI 2110, CSI 2132.

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

Préalable : CSI 2501 ou MAT 2543.

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

Préalables : CSI 2501, CSI 2520.

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

Préalables : CEG 2536, CSI 2510.

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 : Cours magistral, Laboratoire, Tutoriel

Préalables : CSI 2510, CSI 2532.

CSI 4101 Theory of Computability (3 units)

Recursive functions, recursively enumerable sets, decision problems, Church-Turing thesis. S-M-N theorem, recursion theorem. Topics selected from: Lambda calculus, formal languages, logic complexity theory.

Course Component: Lecture

Prerequisite: CSI 3104.

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, (CSI 3120 or SEG 2106).

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: CEG 3185, (CSI 3120 or SEG 2106).

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: CSI 3105, MAT 2377.

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, Discussion Group

Prerequisite: CSI 3105.

CSI 4115 Introduction to Compilers (3 units)

Fundamental features of programming languages, functions of compilers, processors, preprocessors, and translators. Organization of compilers including compile-time and run-time symbol tables. Lexical and syntactic analysis. Object code generation. Error diagnostics.

Course Component: Lecture

Prerequisites: CEG 2136, (CSI 3120 or SEG 2106).

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: CSI 2120, 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

Prerequisites: CSI 3104, CSI 3120.

CSI 4126 Algorithms in Bioinformatics (3 units)

DNA assembly, gene finding methods, exact string matching, pairwise alignment, grammatical frameworks, higher order structures. Recent developments, including DNA and protein chips.

Course Component: Lecture

Prerequisite: CSI 3105.

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: CSI 3105, MAT 1341.

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, Tutorial

Prerequisite: CSI 3105.

CSI 4134 Pattern Recognition Technics (3 units)

Review of mathematical aspects of pattern classification in the context of picture processing languages. Practical examples in pattern recognition.

Course Component: 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: Lecture, Tutorial

Prerequisite: CEG 3185. Also offered as CEG 4399.

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

Prerequisite: CSI 3131. Also offered as CEG 4166.

CSI 4142 Introduction to 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 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 4501 Théorie de la calculabilité (3 crédits)

Fonctions récursives, ensembles récursivement dénombrables. Décidabilité. Thèse de Church-Turing. Théorèmes S-M-N et de la récursion. Thèmes choisis parmi le calcul-Lambda, les langages formels, la logique et la théorie de la complexité.

Volet : Cours magistral

Préalable : CSI 3504.

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, (CSI 3520 ou SEG 2506)

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 : CEG 3585, (CSI 3520 ou SEG 2506).

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 : CSI 3505, MAT 2777.

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 : Groupe de discussion, Cours magistral

Préalable : CSI 3505.

CSI 4515 Introduction aux compilateurs (3 crédits)

Les caractéristiques essentielles des langages de programmation. Les fonctions des compilateurs, processeurs, préprocesseurs, et traducteurs. Organisation d'un compilateur et génération de tables. Analyse lexicale et syntaxique. Génération du code en langage objet. Détection d'erreurs.

Volet : Cours magistral

Préalables : CEG 2536, (CSI 3520 ou SEG 2506).

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 : CSI 2520, 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

Préalables : CSI 3504, CSI 3520.

CSI 4526 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.

Volet : Cours magistral

Préalable : CSI 3505.

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 : CSI 3505, MAT 1741.

CSI 4533 Méthodes informatisées en traitement d'image (3 crédits)

Volet : Laboratoire, Cours magistral, Tutoriel

Préalable : CSI 3505.

CSI 4534 Techniques de reconnaissance des formes (3 crédits)

Étude des aspects mathématiques associés à la classification de modèles dans le contexte des langages de traitement d'image. Exemples pratiques en concordance de modèles.

Volet : 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 : Groupe de discussion, Laboratoire, Cours magistral

Préalable : CEG 3585. Aussi offert sous la cote CEG 4799.

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 Introduction à 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 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 CSI ou SEG de niveau 3000 / Prerequisite: 18 credits of CSI or SEG courses at the 3000 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

Prerequisite: CSI 2132.

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. Courses CSI 5102, CSI 5140 (COMP 5900) cannot be combined for units. This course is equivalent to COMP 5308 at Carleton University.

Course Component: Lecture

Precludes additional credit for COMP 5900 section 'Y' offered 2001-2002 to 2005-2006 inclusive.

CSI 5103 Topic in Information and Systems Science (3 units)

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, secret-sharing, anonymity, intrusion detection, firewalls, defending network attacks and performance in communication networks. 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)

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 indistinguishability and unpredictability. Digital signature and message authentication. Zero-knowledge/interactive proof systems. Application to e-Commerce and e-trade. Additional work required of students enrolled in CSI 5106.

Course Component: Lecture

Prerequisites: MAT 2371, CSI 3105 or (in case of graduate students) permission of the instructor.

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, mobile code safety, and protocol verification. 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 software development systems, structured systems analysis and design, management of software, software tools, validation and verification, programming environments. 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 decompostition. 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: Lecture

Prerequisite: CSI 3317 or equivalent

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

Prerequisites: Basic course in Statistics

CSI 5117 Mini-Microcomputer Operating Systems Design (3 units)

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

Prerequisite: A four-year undergraduate degree in computer science, computer engineering, or software engineering.

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)

Computer-based representation and manipulation of geometric objects. Design and analysis of efficient algorithms for solving geometric problems in applied fields such as Computer-Aided Design and Manufacturing, Cartography, Materials Science, and Geometric Network Design. 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 5130 Applications Design for Mobile Devices (3 units)

Programming environments for mobile devices applications: native applications and web applications. User interface, multitouch screens, accelerometer, geo-localization, multi-networks interfaces, camera, digital signal processing. Enterprise applications development. Device-specific and carrier-specific challenges. Methods for dealing with limited memory, speed and storage. Power management. Security. Deployment and distribution of applications.

Course Component: Lecture

CSI 5131 Parallel Algorithms and Applications in Bioinformatics (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 5140 Selected Topics in Computer Science (3 units)

Selected topics, 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 5402 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

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

Prerequisites: introductory-level background in networks, algorithms, and probability.

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 5160T Topic in Mini and Micro-Computer System (2 crédits / 2 units)

Volet / Course Component: Cours magistral / Lecture

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, using both sequential and parallel models of computation. Parallel algorithms for enumerating basic combinatorial objects (permutations, combinations, set partitions) and for solving optimization problems (knapsack, minimal cover, branch-and-bound). Polyminoes, polygonal systems, enumeration and classification and benzenoid and coronoid hydrocarbons in chemistry. Combinatorial geometry (Voronoi diagrams, polytopes arrangements). Algorithmic problems in many-valued logics (base enumeration, tautology checking, minimization, finding the spectra). 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 stragegies. 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 EBC 5175, CSI 5175 cannot be combined for units.

Course Component: Lecture

Exclusion: EBC 5175

CSI 5180 Topics in Artificial Intelligence (3 units)

A programming-oriented introduction to selected topics in Artificial Intelligence (A.I.). Topics for consideration include: A.I. programming techniques, pattern matching systems, natural language systems, rule-based systems, constraint systems, learning systems, and cognitive systems. 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 5200 Projects on Selected Topics (3 units)

Course Component: Lecture

CSI 5308 Principles of Distributed Computing (3 units)

Formal models; semantics of distributed computations; theoretical issues in the design of distributed algorithms; computational complexity; reducibility and equivalence of distributed problems. Related topics: systolic systems and computations, oligarchical systems and control mechanisms. 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 Engineering (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 5380 Systems and Architectures for Electronic Commerce (3 units)

Content and transactions in e-commerce systems. System architecture with a focus on frameworks, tools and development process. Application frameworks. Information management. Security, standards, and regulatory compliance. Current research issues. Hands-on experience with an integrated set of current e-commerce tools. E-commerce development project. This course is equivalent to COMP 5405 at Carleton University.

Course Component: Lecture

Prerequisite: CSI 5389

CSI 5386 Natural Language Processing (3 units)

Definitions, applicatons, challenges, lexicons, thesauri, corpora and other linguistic resources. Morphological analysis; tagging. Selected syntactic theories: phrase structure grammars, unification-based grammars. Parsing techniques: chars, deterministic parsing, logic grammars. Selected semantic representations: logic, logical forms, conceptual graphs. Elements of semantic and pragmatic analysis: reference, scope, focus. Elements of statistical language processing and text mining. Introduction to corpus linguistics. Term projects, one on syntax and one on semantics, will be done in Prolog and logic grammars. This course is equivalent to COMP 5505 at Carleton University.

Course Component: Lecture

Prerequisite: CSI 4106 or permission of the instructor

CSI 5387 Data Mining and Concept Learning (3 units)

Data mining as finding associations, clustering, and concept learning. Basic issues of associations and selected concept representations. Introduction to data warehousing. Concept learning viewed as a search problem. Standard concept induction algorithms. The use of neural networks for representing and learning concepts. Knowledge-intensive concept learning. Introduction to the formal theory of concept learnability. Instance-based learning. Selected applications of data mining and concept learning.

Course Component: Lecture

CSI 5388 Topics in Machine Learning (3 units)

Course Component: Lecture

CSI 5389 Electronic Commerce Technologies (3 units)

Introduction to business models and technologies. Search engines. Cryptography. Web services and agents. Secure electronic transactions. Value added e-commerce technologies. Advanced research questions. This course is equivalent to COMP 5401 at Carleton University.

Course Component: Lecture

Prerequisite: CSI 4110 or equivalent

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.

Course Component: Lecture

Prerequisite: ELG 6153

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)

Une présentation de méthodologies courantes dans les domaines de spécification, développement et vérification de logiciels. Programmes itératifs : la méthode de l'invariant. Programmes récursifs : méthodes inductives. Spécification de logiciels : abstractions procédurelles et de données. Types algébriques abstraits. On mettra l'accent sur les logiciels répartis. 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

CSI 5560 Sujets en mini et micro-ordinateurs (3 crédits)

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 de problèmes de nature combinatoire, à l'aide de modèles séquentiels et parallèles. Algorithmes parallèles pour l'énumération d'objets combinatoires de base (permutations, combinaisons, partitions), et pour résoudre des problèmes d'optimisation (knapsack, recouvrement minimal, méthode branch-and-bound); systèmes polygonaux, applications en chimie; géométrie combinatoire (diagrammes de Voronoi, polytopes, arrangements); problèmes en logique à valeur multiple, énumération de base, vérification de tautologie, minimisation, recherche du spectre. Ce cours est équivalent à COMP 5709 à la Carleton University.

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)

Concepts et méthodes de base de l'intelligence artificielle. Représentation des connaissances. Traitement de langage naturel. Stratégies de recherches et de jeu. Action de planification. Déduction et raisonnement. Applications. Programmation en PROLOG. Ce cours est équivalent à COMP 5100 à la Carleton University.

Volet : Cours magistral

CSI 5780 Systèmes et architectures des logiciels pour le commerce électronique (3 crédits)

Contenu et transactions dans les systèmes de commerce électronique. Architecture de système. Une attention particulière sera portée aux logiciels intégrés, aux outils et au processus de développement. Cadres d'applications. Gestion de l'information. Sécurité, normes et conformité aux réglementations. Problèmes de recherche actuels. Expérience pratique intégrée des outils modernes du commerce électronique. Projet de développement en commerce électronique. 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)

Fouille de données comme acquisition d'associations, groupement, et apprentissage des concepts. Questions de base des associations et les représentations choisies des concepts. Introduction aux entrepôts des données. Apprentissage des concepts comme une recherche d'espace des concepts. Les algorithmes typiques d'induction. Les réseaux des neurones comme représentation et mécanisme d'apprentissage des concepts. Apprentissage des concepts en présence des connaissances. Introduction à la théorie d'apprentissage. Apprentissage fondé sur les cas. Applications choisies de fouille de données et d'apprentissage 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: Cours magistral / Lecture

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

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 5905 Projet / Project (3 crédits / 3 units)

Développement d'une application pour appareils mobiles. L'étudiant identifie un projet, qui doit comprendre une importante part de logiciel s'exécutant sur l'appareil mobile et se prêter à une évaluation raisonnablement indépendante d'autres logiciels. Le projet est dirigé par un professeur approuvé par la direction du programme. Le projet est normalement complété en une session. Noté S (satisfaisant) ou NS (non satisfaisant) par le directeur du projet et un autre professeur nommé par le directeur du programme. Préalable : approbation de la direction du programme. / Development of an application for mobile devices. Students identify a project that must include a significant portion of software running on device, and should be reasonably self contained. Graded S (Satisfactory) or NS (Not satisfactory) by the supervisor and by another professor appointed by the program director. The project can normally be completed in one session.

Volet / Course Component: Cours magistral / Lecture

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 7999 Thèse de maîtrise en informatique / Master of Computer Science Thesis

Ce cours est équivalent à COMP 5905 à la Carleton University. / This course is equivalent to COMP 5905 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: Recherche / Research

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

CSI 9999 Thèse de doctorat / Ph.D. Thesis

Ce cours est équivalent à COMP 6909 à la Carleton University. / This course is equivalent to COMP 6909 at Carleton University.

Volet / Course Component: Recherche / Research