COMPUTER SCIENCE
CSI1306 | Computing Concepts for Business | (3,0,2) 3 cr. |
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. | ||
The courses ITI1120, GNG1106, CSI1306, CSI1308, CSI1390 cannot be combined for credits. | ||
Top |
CSI1308 | Introduction to Computing Concepts | (3,0,2) 3 cr. |
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. | ||
Prerequisites: Advanced Functions and Introductory Calculus 4U and Geometry and Discrete Mathematics 4U. The courses ITI1120, GNG1106, CSI1306, CSI1308, CSI1390 cannot be combined for credits. | ||
Top |
CSI1390 | Introduction to Computers | (2,0,2) 3 cr. |
Computing and computers. Problem solving and algorithm development. Introduction to programming. Use of application, communication, and database software. | ||
The courses ITI1120, ITI1121, GNG1106, CSI1306, CSI1308, CSI1390 cannot be combined for credits. | ||
Top |
CSI1706 | Éléments de programmation pour la gestion | (3,0,2) 3 cr. |
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. | ||
Les cours ITI1520, GNG1506, CSI1706, CSI1708, CSI1790 ne peuvent être combinés pour l'obtention de crédits. | ||
Top |
CSI1708 | Introduction aux concepts de l'informatique | (3,0,2) 3 cr. |
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. | ||
Préalables : Fonctions avancées et introduction au Calcul différentiel 4U et Géométrie et mathématiques discrètes 4U. Les cours ITI1520, GNG1506, CSI1706, CSI1708, CSI1790 ne peuvent être combinés pour l'obtention de crédits. | ||
Top |
CSI1790 | Introduction aux ordinateurs | (2,0,2) 3 cr. |
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. | ||
Les cours ITI1520, ITI1521, CSI1706, CSI1708, CSI1790 ne peuvent être combinés pour l'obtention de crédits. | ||
Top |
CSI2101 | Discrete Structures | (3,1.5,0) 3 cr. |
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. | ||
Prerequisite: MAT1348. | ||
Top |
CSI2110 | Data Structures and Algorithms | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisites: ITI1121, MAT1348. | ||
Top |
CSI2120 | Programming Paradigms | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisite: CSI2110. | ||
Top |
CSI2132 | Databases I | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisite: CSI2110. | ||
Top |
CSI2167 | C Concepts Laboratory | (0,0,4) 2 cr. |
Practice in the use of the C language. | ||
Prerequisite: ITI1121. The courses CSI2167, GNG1106 cannot be combined for credits. | ||
Top |
CSI2308 | Computing Concepts for Genomics | (3,0,2) 3 cr. |
Basic concepts of algorithm design and modern programming languages, including object-oriented and scripting languages, with special reference to genomic databases. Laboratory exercises will include designing programs for gene recognition, measuring genetic linkage, and protein sequence analysis. | ||
Prerequisite: BIO2133. The courses CSI2308, ITI1120, CSI1306 cannot be combined for credits. | ||
Top |
CSI2372 | Advanced Programming Concepts with C++ | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisites: ITI1121, ITI1100. | ||
Top |
CSI2501 | Structures discrètes | (3,1.5,0) 3 cr. |
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. | ||
Préalable : MAT1748. | ||
Top |
CSI2510 | Structures de données et algorithmes | (3,1.5,1.5) 3 cr. |
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. | ||
Préalables : ITI1521, MAT1748. | ||
Top |
CSI2520 | Paradigmes de programmation | (3,1.5,1.5) 3 cr. |
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. | ||
Préalable : CSI2510. | ||
Top |
CSI2532 | Bases de données I | (3,1.5,1.5) 3 cr. |
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) | ||
Préalable : CSI2510. | ||
Top |
CSI2567 | Laboratoire C | (0,0,4) 2 cr. |
Travaux pratiques en programmation C. | ||
Préalable : ITI1521. Les cours CSI2567, GNG1506 ne peuvent être combinés pour l'obtention de crédits. | ||
Top |
CSI2708 | Concepts de programmation pour la génomique | (3,0,2) 3 cr. |
Concepts de base de conception d'algorithmes et des languages de programmation modernes, orientée objet et scriptage, avec des références particulières aux bases de données génomiques. Parmi les exercices en laboratoire, il y aura des exemples de programmes pour la recherche de gènes, l'analyse de liaisons génétiques, et l'analyse des séquences protéiques. | ||
Préalable : BIO2533. Les cours CSI2708, ITI1520 ne peuvent être combinés pour l'obtention de crédits. | ||
Top |
CSI2772 | Concepts avancés de programmation en C++ | (3,0,1.5) 3 cr. |
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. | ||
Préalables : ITI1521, ITI1500. | ||
Top |
CSI2901 | Stage coop I / CO-OP Work Term I | 3 cr. |
Top |
CSI2911 | Pratique professionnelle de l'informatique / Professionnal Practice in Computing | (3,0,0) 3 cr. |
Professionalism in Computer Science. Ethical practice. Intellectual property rights. Social impact of computing. Privacy and legal issues. Professionnalisme en informatique. Pratique éthique. Propriété intellectuelle. Répercussions sociales de l'informatique. Confidentialité et aspects légaux. |
||
Top |
CSI3104 | Introduction to Formal Languages | (3,0,0) 3 cr. |
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. | ||
Prerequisite: CSI2101 or MAT2143. | ||
Top |
CSI3105 | Design and Analysis of Algorithms I | (3,0,0) 3 cr. |
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. | ||
Prerequisites: CSI2110, CSI2101 or for honors mathematics students: CSI2110, (MAT2141 or MAT2143). | ||
Top |
CSI3120 | Programming Language Concepts | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisites: CSI2101, CSI2120. | ||
Top |
CSI3130 | Databases II | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisite: CSI2132. | ||
Top |
CSI3131 | Operating Systems | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisites: CEG2136, CSI2110. | ||
Top |
CSI3140 | WWW Structures, Techniques and Standards | (3,1.5,1.5) 3 cr. |
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. | ||
Prerequisites: CSI2110, CSI2132. | ||
Top |
CSI3504 | Introduction aux langages formels | (3,0,0) 3 cr. |
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. | ||
Préalable : CSI2501 ou MAT2543. | ||
Top |
CSI3505 | Conception et analyse des algorithmes I | (3,0,0) 3 cr. |
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. | ||
Préalables : CSI2510/CSI2610, CSI2501 ou pour les étudiants et étudiantes en spécialisation mathématiques : CSI2510/CSI2610, (MAT2541 ou MAT2543). | ||
Top |
CSI3520 | Concepts des langages de programmation | (3,1.5,1.5) 3 cr. |
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. | ||
Préalables : CSI2501, CSI2520. | ||
Top |
CSI3530 | Bases de données II | (3,1.5,1.5) 3 cr. |
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). | ||
Préalable : CSI2532. | ||
Top |
CSI3531 | Systèmes d'exploitation | (3,1.5,1.5) 3 cr. |
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. | ||
Préalables : CEG2536, CSI2510. | ||
Top |
CSI3540 | Structures, techniques et normes du Web | (3,1.5,1.5) 3 cr. |
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. | ||
Préalables : CSI2510, CSI2532. | ||
Top |
CSI3901 | Stage coop II / CO-OP Work Term II | 3 cr. |
Top |
CSI3902 | Stage coop III / CO-OP Work Term III | 3 cr. |
Top |
CSI4101 | Theory of Computability | (3,0,0) 3 cr. |
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. | ||
Prerequisite: CSI3104. | ||
Top |
CSI4102 | DNA Computing and Quantum Computing | (3,1.5,0) 3 cr. |
A brief introduction to quantum mechanics and biochemistry. Biochemical and quantum-mechanical computing models of DNA computer and a quantum computer. DNA replication, protein synthesis, quantum teleportation, quantum cryptography. Computational complexity of DNA and quantum algorithms. Examples of applications: breaking a cryptography system, solving an NP-complete problem. | ||
Prerequisites: CSI3104, CSI3105, MAT1341, MAT2377. | ||
Top |
CSI4103 | Topics in Computer Science I | (3,0,0) 3 cr. |
Selected topics in areas not covered by regular courses. | ||
Prerequisite: Permission of the School. | ||
Top |
CSI4104 | Topics in Computer Science II | (3,0,0) 3 cr. |
Selected topics in areas not covered by regular courses. | ||
Prerequisite: Permission of the School. | ||
Top |
CSI4105 | Design and Analysis of Algorithms II | (3,0,0) 3 cr. |
Theory of NP-completeness, methods for dealing with NP-complete problems. Selected topics in such areas as combinatorial optimization, computational geometry, cryptography, parallel algorithms. | ||
Prerequisite: CSI3105. | ||
Top |
CSI4106 | Introduction to Artificial Intelligence | (3,0,0) 3 cr. |
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. | ||
Prerequisites: MAT1348, (CSI3120 or SEG2106). | ||
Top |
CSI4107 | Information Retrieval and the Internet | (3,0,0) 3 cr. |
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. | ||
Prerequisites: SEG3155, (CSI3120 or SEG2106). | ||
Top |
CSI4108 | Cryptography | (3,0,0) 3 cr. |
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. | ||
Prerequisites: CSI3105, MAT2377. | ||
Top |
CSI4109 | Introduction to Distributed Computing | (3,1.5,0) 3 cr. |
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. | ||
Prerequisite: CSI3105. | ||
Top |
CSI4110 | Systems Programming | (3,0,0) 3 cr. |
Structure of an operating system. Assembler, compiler, linkages, data management. Task management. Debugging. Job management. System generation and maintenance. Virtual machines. | ||
Prerequisite: CSI3131. | ||
Top |
CSI4115 | Introduction to Compilers | (3,0,0) 3 cr. |
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. | ||
Prerequisites: CEG2136, (CSI3120 or SEG2106). | ||
Top |
CSI4118 | Computer Networks and Protocols | (3,0,0) 3 cr. |
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. | ||
Prerequisite: SEG3155. | ||
Top |
CSI4124 | Foundations of Modelling and Simulation | (3,0,0) 3 cr. |
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. | ||
Prerequisites: CSI2120, MAT2377. | ||
Top |
CSI4125 | Theory of Programming Languages | (3,0,0) 3 cr. |
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. | ||
Prerequisites: CSI3104, CSI3120. | ||
Top |
CSI4126 | Algorithms in bioinformatics | (3,0,0) 3 cr. |
DNA assembly, gene finding methods, exact string matching, pairwise alignment, grammatical frameworks, higher order structures. Recent developments, including DNA and protein chips. | ||
Prerequisite: CSI3105. | ||
Top |
CSI4128 | Introduction to Distributed Systems | (3,0,0) 3 cr. |
Architectural concepts of distributing an application over several platforms. Overview of Local Area Network and Wide Area Network technologies (throughput, delay and reliability characteristics). Characteristics of mainframe, mini- and microcomputers. Network configuration and topologies. Types of network interactions - distributed databases, client-server, transaction processing, messaging. Advantages and disadvantages of distributed systems, practical applications and state-of-the-art case studies. | ||
Prerequisites: SEG3155, (CSI3120 or SEG2106). | ||
Top |
CSI4130 | Computer Graphics | (3,0,1.5) 3 cr. |
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. | ||
Prerequisites: CSI3105, MAT1341. | ||
Top |
CSI4133 | Computer Methods in Picture Processing and Analysis | (3,0,1.5) 3 cr. |
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. | ||
Prerequisite: CSI3105. | ||
Top |
CSI4134 | Pattern Recognition Techniques | (3,0,0) 3 cr. |
Review of mathematical aspects of pattern classification in the context of picture processing languages. Practical examples in pattern recognition. | ||
Prerequisite: CSI3105. | ||
Top |
CSI4139 | Design of Secure Computer Systems | (3,1.5,3b) 3 cr. |
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. | ||
Prerequisite: CEG3185 or SEG3155. Also offered as CEG4399. | ||
Top |
CSI4140 | Introduction to Parallel Computing | (3,0,0) 3 cr. |
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. | ||
Prerequisite: CSI3105. | ||
Top |
CSI4141 | Real-Time Systems Design | (3,1.5,3) 3 cr. |
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. | ||
Prerequisite: CSI3131. Also offered as CEG4166. | ||
Top |
CSI4150 | Introduction to Optimization Methods | (3,0,0) 3 cr. |
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. | ||
Prerequisite: CSI3105. | ||
Top |
CSI4501 | Théorie de la calculabilité | (3,0,0) 3 cr. |
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é. | ||
Préalable : CSI3504. | ||
Top |
CSI4502 | Informatique à base d'ADN et informatique quantique | (3,1.5,0) 3 cr. |
Introduction à la mécanique quantique et à la biochimie. Modèles d'architectures basées sur l'ADN et les quantum. Replication d'ADN, synthèse de protéines. Téléportation cryptographie quantiques et complexité de leurs algorithmes. Exemples d'applications: casse d'un système de cryptographie, résolution d'un problème NP-complet. | ||
Préalables : CSI3504, CSI3505, MAT1741, MAT2777. | ||
Top |
CSI4503 | Sujets en informatique I | (3,0,0) 3 cr. |
Sujets choisis dans des domaines non couverts par les cours réguliers. | ||
Préalable : Permission de l'École. | ||
Top |
CSI4504 | Sujets en informatique II | (3,0,0) 3 cr. |
Sujets choisis dans des domaines non couverts par les cours réguliers. | ||
Préalable : Permission de l'Ecole. | ||
Top |
CSI4505 | Conception et analyse des algorithmes II | (3,0,0) 3 cr. |
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. | ||
Préalable : CSI3505. | ||
Top |
CSI4506 | Introduction à l'intelligence artificielle | (3,0,0) 3 cr. |
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. | ||
Préalables : MAT1748, (CSI3520 ou SEG2506). | ||
Top |
CSI4507 | Recherche d'information et l'Internet | (3,0,0) 3 cr. |
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. | ||
Préalables : SEG3555, (CSI3520 ou SEG2506). | ||
Top |
CSI4508 | Cryptographie | (3,0,0) 3 cr. |
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. | ||
Préalables : CSI3505, MAT2777. | ||
Top |
CSI4509 | Introduction au calcul réparti | (3,1.5,0) 3 cr. |
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. | ||
Préalable : CSI3505. | ||
Top |
CSI4510 | Systèmes d'exploitation | (3,0,0) 3 cr. |
Structure d'un système d'exploitation. Assembleurs, compilateurs, édition des liens, gestion des entrées-sorties, gestion des tâches. Mise au point, gestion des travaux, génération, maintenance, machines virtuelles. | ||
Préalable : CSI3531. | ||
Top |
CSI4515 | Introduction aux compilateurs | (3,0,0) 3 cr. |
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. | ||
Préalables : CEG2536, (CSI3520 ou SEG2506). | ||
Top |
CSI4518 | Réseaux d'ordinateurs et protocoles | (3,0,0) 3 cr. |
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. | ||
Préalable : SEG3555 ou SEG3655. | ||
Top |
CSI4524 | Principes de base de modélisation et simulation | (3,0,0) 3 cr. |
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. | ||
Préalables : CSI2520, MAT2777. | ||
Top |
CSI4525 | Théorie de langages de programmation | (3,0,0) 3 cr. |
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. | ||
Préalables : CSI3504, CSI3520. | ||
Top |
CSI4526 | Algorithmes en bioinformatique | (3,0,0) 3 cr. |
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. | ||
Préalable : CSI3505. | ||
Top |
CSI4528 | Introduction aux systèmes distribués | (3,0,0) 3 cr. |
Concepts architecturaux relatifs à la distribution d'une application sur plusieurs configurations. Vue d'ensemble des technologies de réseaux locaux et de réseaux à grande distance (volume de transfert, délai de transmission, fiabilité). Caractéristiques des machines de grande taille, de petite taille, et des micro-ordinateurs. Configurations et topologie des réseaux. Types d'interaction dans un réseau: base de données distribuée; client-serveur; traitement de transactions; échange de messages. Avantages et désavantages des systèmes distribués; applications pratiques de pointe et études de cas. | ||
Préalables : SEG3555, (CSI3520 ou SEG2506). | ||
Top |
CSI4530 | Graphiques interactifs | (3,0,1.5) 3 cr. |
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. | ||
Préalables : CSI3505, MAT1741. | ||
Top |
CSI4533 | Méthodes informatisées en traitement d'image | (3,0,1.5) 3 cr. |
Représentation des images numériques. Éléments de perception visuelle. Géométrie des systèmes d'acquisition d'images. Amélioration d'images et restauration d'images. Segmentation et identification de primitives. Analyse des images à partir de leur contenu. Compression d'images et standard de compression. Formats standards de fichiers graphiques. | ||
Préalable : CSI3505. | ||
Top |
CSI4534 | Techniques de reconnaissance des formes | (3,0,0) 3 cr. |
É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. | ||
Préalable : CSI3505. | ||
Top |
CSI4539 | Conception de systèmes informatiques sécuritaires | (3,1.5,3) 3 cr. |
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. | ||
Préalable : CEG3585 ou SEG3555. Aussi offert sous la cote CEG4799. | ||
Top |
CSI4540 | Introduction au calcul parallèle | (3,0,0) 3 cr. |
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. | ||
Préalable : CSI3505. | ||
Top |
CSI4541 | Conception de systèmes en temps réel | (3,1.5,3) 3 cr. |
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. | ||
Préalable : CSI3531/CSI3631. Aussi offert sous la cote CEG4566. | ||
Top |
CSI4550 | Introduction aux méthodes d'optimisation | (3,0,0) 3 cr. |
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. | ||
Préalable : CSI3505. | ||
Top |
CSI4900 | Projets de recherche / Honours Project | (0,0,6) 3 cr. |
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. Prerequisite: (for CSI students) 18 credits of CSI or SEG courses at the 3000 level; or (for IMS students) 12 credits of CSI or SEG courses at the 3000 level and 6 credits of ADM courses at the 2000 or 3000 level. 2000 or 3000 level. 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. Préalable: (pour les étudiants du programme CSI) 18 crédits de cours CSI ou SEG de niveau 3000; ou (pour les étudiants en option SIG) 12 crédits de cours CSI ou SEG de niveau 3000 et 6 crédits de cours ADM de niveau 2000 ou 3000. |
||
Préalable : (pour les étudiants du programme CSI) 18 crédits de cours CSI ou SEG de niveau 3000; ou (pour les étudiants en option SIG) 12 crédits de cours CSI ou SEG de niveau 3000 et 6 crédits de cours ADM de niveau 2000 ou 3000. | ||
Top |
CSI4901 | Stage coop IV / CO-OP Work Term IV | 3 cr. |
Top |
CSI4902 | Stage coop V / CO-OP Work Term V | 3 cr. |
Top |