A course for students with no previous knowledge of computer science. The impact of computers on society. Web design and dynamic content. The inner workings of computers (hardware). Networking principles. Algorithm design and programming. A look at how computers store data (image, sound, and video). Software distribution policies and mechanisms.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: high school level mathematics course on functions.
Restrictions: Credit will not be given for COMP 102 if it is taken concurrently with, or after, any of: COMP 202, COMP 203, COMP 208, COMP 250. Management students cannot receive credit for COMP 102.
How computer technologies shape social notions such as ownership, safety, and privacy. Emphasis is on computer science powering both day-to-day technologies (e.g., online social media) and those in the news (e.g., cyberwar). Discussions will investigate technology and social issues in order to understand both.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Introduction to computer programming in a high level language: variables, expressions, primitive types, methods, conditionals, loops. Introduction to algorithms, data structures (arrays, strings), modular software design, libraries, file input/output, debugging, exception handling. Selected topics.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: M'Hiri, Faten (Winter)
Prerequisites: a CEGEP level mathematics course
Restrictions: COMP 202 and COMP 208 cannot both be taken for credit. COMP 202 is intended as a general introductory course, while COMP 208 is intended for students interested in scientific computation. COMP 202 cannot be taken for credit with or after COMP 250
Computer Science (Sci): Computer programming in a high level language: variables, expressions, types, functions, conditionals, loops, objects and classes. Introduction to algorithms, modular software design, libraries, file input/output, debugging. Emphasis on applications in the life sciences.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Becerra, David (Fall) Becerra, David (Winter)
Prerequisites: CEGEP level mathematics course.
Restrictions: Not open to students who have taken or are taking COMP 202, COMP 208, or GEOG 333; not open to students who have taken or are taking COMP 206 or COMP 250.
Notes: Co-requisite: BIOL 112
Comprehensive overview of programming in C, use of system calls and libraries, debugging and testing of code; use of developmental tools like make, version control systems.
Programming and problem solving in a high level computer language: variables, expressions, types, functions, conditionals, loops, objects and classes. Introduction to algorithms such as searching and sorting. Modular software design, libraries, file input and output, debugging. Emphasis on applications in Physical Sciences and Engineering, such as root finding, numerical integration, diffusion, Monte Carlo methods.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: M'Hiri, Faten (Fall), Vybihal, Joseph (Winter)
Prerequisites:
Restrictions: Not open to students who have taken or are taking COMP 202, COMP 204, orGEOG 333; not open to students who have taken or are taking COMP 206 or COMP 250.
Notes: COMP 202 is intended as a general introductory course, while COMP 208 is intended for students with sufficient math background and in (non-life) science or engineering fields.
Propositional Logic, predicate calculus, proof systems, computability Turing machines, Church-Turing thesis, unsolvable problems, completeness, incompleteness, Tarski semantics, uses and misuses of Gödel's theorem.
Credits: 3
Terms Offered: Fall 2022
Instructor: Schlimm, Dirk (Fall)
Prerequisites: CEGEP level mathematics.
Mathematical tools (binary numbers, induction, recurrence relations, asymptotic complexity, establishing correctness of programs), Data structures (arrays, stacks, queues, linked lists, trees, binary trees, binary search trees, heaps, hash tables), Recursive and non-recursive algorithms (searching and sorting, tree and graph traversal). Abstract data types, inheritance. Selected topics.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Alberini, Giulia (Fall) Alberini, Giulia (Winter)
Prerequisites: Familiarity with a high level programming language and CEGEP level Math.
Notes: Students with limited programming experience should take COMP 202 or equivalent before COMP 250. See COMP 202 Course Description for a list of topics.
Introduction to algorithm design and analysis. Graph algorithms, greedy algorithms, data structures, dynamic programming, maximum flows.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Waldispuhl, Jérôme
Prerequisites: COMP 250; MATH 235 or MATH 240
Restrictions: Not open to students who have taken or are taking COMP 252.
Notes: COMP 251 uses basic counting techniques (permutations and combinations) that are covered in MATH 240 but not in MATH 235. These techniques will be reviewed for the benefit of MATH 235 students.
The design and analysis of data structures and algorithms. The description of various computational problems and the algorithms that can be used to solve them, along with their associated data structures. Proving the correctness of algorithms and determining their computational complexity.
Credits: 3
Terms Offered: Winter 2023
Instructor: Devroye, Luc P (Winter)
Prerequisites: COMP 250 and either MATH 235 or MATH 240
Restrictions: (1) Open only to students in Honours programs. (2) Students cannot receive credit for both COMP 251 and COMP 252.
Notes: COMP 252 uses basic combinatorial counting methods that are covered in MATH 240 but not in MATH 235. Students who are unfamiliar with these methods should speak with the instructor for guidance.
Number representations, combinational and sequential digital circuits, MIPS instructions and architecture datapath and control, caches, virtual memory, interrupts and exceptions, pipelining.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Vybihal, Joseph P (Fall) Kry, Paul (Winter)
Prerequisites:
Notes: Corequisite: COMP 206.
A history of early mathematical computation. Symbolic logic and computation. Modern computer systems and networks. The rise of the internet.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Programming language design issues and programming paradigms. Binding and scoping, parameter passing, lambda abstraction, data abstraction, type checking. Functional and logic programming.
Principles, mechanisms, techniques, and tools for object-oriented software design and its implementation, including encapsulation, design patterns, and unit testing.
The course discusses the major principles, algorithms, languages and technologies that underlie web development. Students receive practical hands-on experience through a project.
Digital circuitry and programming interface of peripheral circuit boards (cards), e.g., graphics cards; introduction to tools and libraries that interact with the card; performance issues.
Credits: 1
Terms Offered: Winter 2023
Instructor: Vybihal, Joseph P (Winter)
Prerequisites: COMP 273.
Control and scheduling of large information processing systems. Operating system software - resource allocation, dispatching, processors, access methods, job control languages, main storage management. Batch processing, multiprogramming, multiprocessing, time sharing.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Maheswaran, Muthucumaru (Fall) Balmau, Oana (Winter)
Prerequisites: COMP 273
Development of programming skills on tricky challenges, games and puzzles by means of programming competitions.
Credits: 3
Terms Offered: Fall 2022
Instructor: Becerra, David (Fall)
Prerequisites: COMP 206
Notes: Corequisites: COMP 251 or COMP 252
Note: At the end of the class, interested students are encouraged to join the McGill team to participate in the annual ACM International Collegiate Programming Competition.
Basics and advanced features of the C++ language. Syntax, memory management, class structure, method and operator overloading, multiple inheritance, access control, stream I/O, templates, exception handling.
Finite automata, regular languages, context-free languages, push-down automata, models of computation, computability theory, undecidability, reduction techniques.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Panangaden, Prakash (Fall) Crepeau, Claude (Winter)
Prerequisites: COMP 251.
ntroduction to language data science, including theoretical approaches and practical skills. Processing, searching, and querying text data; making sense of large corpora; modelling and interpreting psycholinguistic and historical language data; building models of sequences of words; computing similarity between languages; information retrieval and extraction; question answering; and ethics.
Computer representation of numbers, IEEE Standard for Floating Point Representation, computer arithmetic and rounding errors. Numerical stability. Matrix computations and software systems. Polynomial interpolation. Least-squares approximation. Iterative methods for solving a nonlinear equation. Discretization methods for integration and differential equations.
Advanced algorithm design and analysis. Linear programming, complexity and NP-completeness, advanced algorithmic techniques.
Software development process in practice: requirement elicitation and analysis, software design, implementation, integration, test planning, and maintenance. Application of the core concepts and techniques through the realization of a large software system.
Credits: 3
Terms Offered: Fall 2022
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 206, COMP 250 Co-requisite: COMP 303
Restrictions: Not open to students who have taken the 3 credit version of COMP 361.
Notes: No credit will be given for this course unless both COMP 361D1 and COMP 361D2 are successfully completed in consecutive terms
See COMP 361D1 for course description.
Credits: 3
Terms Offered: Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 361D1
Notes: No credit will be given for this course unless both COMP 361D1 and COMP 361D2 are successfully completed in consecutive terms
Basic algorithmic techniques, their applications and limitations. Problem complexity, how to deal with problems for which no efficient solutions are known.
Concepts and tools for programmatic storage, retrieval, searching, numerical analysis, and visualization of large biological data sets.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: BIOL 200.
Restrictions: Not available to students in Computer Science or Joint Computer Science programs.
Notes: Note: It is recommended that students have already taken a laboratory course (e.g., BIOL 301 Cell and Molecular Laboratory). Topics motivated by biological questions.
Comprehensive introduction to the data science process. Orientation to the use and configuration of core data science toolkits, data collection and annotation fundamentals, principles of responsible data science, the use of quantitative tools in data science, and presentation of data science findings.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 206 and COMP 250
Restrictions: Not open to students who have taken COMP 598 when the topic was "Introduction to Data Science" or "Data Science".
Independent research project with a final written report.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: This course cannot be taken under the S/U option. Departmental permission required. Students cannot be supervised by the same instructor for two 396 Science courses. Open to students in programs offered by the Faculty of Science only.
Notes: Note: Enrolment may be limited. Students are advised to start the application process well before the start of the term and to plan for an alternative course in the case that no suitable project is available. Individual projects may be suggested each term which may have project-specific prerequisites. Students may also approach professors to devise their own projects. Some projects may be accessible to students in other disciplines. See https://www.mcgill.ca/science/research/undergraduate-research/science-re... for more information about available projects and application forms and procedures.
A research project in any area of computer science, involving a programming effort and/or a theoretical investigation, and supervised by a faculty member in the School of Computer Science. Final written report required.
Credits: 4
Terms Offered: Fall 2022, Winter 2023
Instructor: Becerra, David (Fall) Becerra, David (Winter)
Prerequisites: 15 Computer Science credits.
Restrictions: For Honours students, or non-Honours students with permission of the department.
A research project applying computational approaches to a biological problem. The project is (co)-supervised by a professor in Computer Science and/or Biology. A program advisor from each department has to approve the project.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Waldispuhl, Jerome (Fall) Becerra, David (Winter)
Prerequisites: COMP 251 and 9 credits of BIOL courses, BIOL 301 recommended.
Restrictions: Registration in the Biology and Computer Science joint major.
Notes: Note: having taken BIOL 301 before COMP 401 is beneficial for finding a project within a Biology lab.
One-semester research project applying computational approaches to a biological problem. The project is (co)-supervised by a professor in Computer Science and/or Biology or related fields.
Credits: 6
Terms Offered: Fall 2022, Winter 2023
Instructor: Becerra, David (Fall) Becerra, David (Winter)
Prerequisites: 9 credits of COMP courses and 9 credits of BIOL courses.
Restrictions: Only for students in the Joint Honours in Computer Science and Biology.
A two-semester research project applying computational approaches to a biological problem. The project is (co)-supervised by a professor in Computer Science and/or Biology or related fields.
Credits: 3
Terms Offered: Fall 2022
Instructor: Becerra, David (Fall)
Prerequisites: 9 credits of COMP courses and 9 credits of BIOL courses.
Restrictions: Only for students in the Joint Honours in Computer Science and Biology.
Students must register for both COMP 402D1 and COMP 402D2. No credit will be given for this course unless both sections are successfully completed in consecutive terms.
Notes: COMP 402D1 and COMP 402D2 are equivalent to COMP 402.
A two-semester research project applying computational approaches to a biological problem. The project is (co)-supervised by a professor in Computer Science and/or Biology or related fields.
Credits: 3
Terms Offered: Winter 2023
Instructor: Becerra, David (Winter)
Prerequisites: 9 credits of COMP courses and 9 credits of BIOL courses. COMP 402D1
Restrictions: Only for students in the Joint Honours in Computer Science and Biology.
Students must register for both COMP 402D1 and COMP 402D2. No credit will be given for this course unless both sections are successfully completed in consecutive terms.
Notes: COMP 402D1 and COMP 402D2 are equivalent to COMP 402
Characteristics and utility of concurrent programs; formal methods for specification, verification and development of concurrent programs; communications, synchronization, resource allocation and management, coherency and integrity.
This course considers issues relevant to the design of robotic and of intelligent systems. How can robots move and interact. Robotic hardware systems. Kinematics and inverse kinematics. Sensors, sensor data interpretation and sensor fusion. Path planning. Configuration spaces. Position estimation. Intelligent systems. Spatial mapping. Multi-agent systems. Applications.
Database Design: conceptual design of databases (e.g., entity-relationship model), relational data model, functional dependencies. Database Manipulation: relational algebra, SQL, database application programming, triggers, access control. Database Implementation: transactions, concurrency control, recovery, query execution and query optimization.
Introduction to search methods. Knowledge representation using logic and probability. Planning and decision making under uncertainty. Introduction to machine learning.
Introduction to foundational ideas in computational linguistics and natural language processing. Topics include formal language theory, probability theory, estimation and inference, and recursively defined models of language structure. Emphasis on both the mathematical foundations of the field as well as how to use these tools to understand human language.
Credits: 3
Terms Offered: Winter 2023
Instructor: O'Donnell, Tim (Winter)
Prerequisites: COMP 250 and MATH 240, or permission of instructor.
Restrictions: Not open to students who have taken or are taking LING 445.
Notes: Some background in linguistics at the level of LING 201 is desirable, though not critical.
Students who are taking or have taken both COMP 330 and COMP 424 are advised to take COMP 550 in place of COMP 445/LING 445.
This is a double-prefix course and is identical in content with LING 445.
Introduction to the computational, statistical and mathematical foundations of machine learning. Algorithms for both supervised learning and unsupervised learning. Maximum likelihood estimation, neural networks, and regularization.
Application of computer science techniques to problems arising in biology and medicine, techniques for modeling evolution, aligning molecular sequences, predicting structure of a molecule and other problems from computational biology.
Reading course permitting independent study under the supervision of a faculty member who specializes in a subject where no course is available.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Approval must be obtained from the Course Coordinator before registration.
Models and Architectures. Application-oriented communication paradigms (e.g. remote method invocation, group communication). Naming services. Synchronization (e.g. mutual exclusion, concurrency control). Fault-tolerance (e.g. process and replication, agreement protocols). Distributed file systems. Security. Examples of distributed systems (e.g. Web, CORBA). Advanced Topics.
Building computer system entails making the right trade-offs (e.g., between performance, consistency, and availability). Modern systems have many layers, from applications to libraries, operating systems, networks, and hardware devices. Good system designers can predict and understand subtle interactions between the different system layers, making trade-offs in a principled way, not by trial-and-error. In this course, we identify some of the core principles in systems design and learn how to solve problems in computing using ideas, techniques, and algorithms from operating systems, networks, databases, and computer architecture. The basic courses on these topics teach how the individual parts of systems work. COMP-513 picks up where those courses leave off and focuses on how the pieces come together to form useful, efficient systems.
Credits: 3
Terms Offered: Fall
Instructor: Oana Balmau
Prerequisites:
The approach and the challenges in the key components of manipulators and locomotors: representations, kinematics, dynamics, rigid-body chains, redundant systems, under-actuated systems, control, planning, and perception. Practical aspects of robotics: collisions, integrating sensory feedback, and real-time software development.
Credits: 4
Terms Offered: Fall 2022
Instructor: Lin, Hsiu-Chin (Fall)
Prerequisites: MATH 223, MATH 323, COMP 206, and COMP 250, or equivalents.
Restrictions: Not open to students who have taken COMP 597 when the topic was "Applied Robotics".
Notes: Students should be comfortable with C++ (such as from COMP 322) and a Unix-like programming environment.
The structure of a compiler. Lexical analysis. Parsing techniques. Syntax directed translation. Run-time implementation of various programming language constructs. Introduction to code generation for an idealized machine. Students will implement parts of a compiler.
Genre and history of games, basic game design, storytelling and narrative analysis, game engines, design of virtual worlds, real-time 2D graphics, game physics and physical simulation, pathfinding and game AI, content generation, 3D game concerns, multiplayer and distributed games, social issues.
State-of-the-art language-based techniques for enforcing security policies in distributed computing environments. Static techniques (such as type- and proof-checking technology), verification of security policies and applications such as proof-carrying code, certifying compilers, and proof-carrying authentication.
Propositional logic - syntax and semantics, temporal logic, other modal logics, model checking, symbolic model checking, binary decision diagrams, other approaches to formal verification.
Introduction to modern constructive logic, its mathematical properties, and its numerous applications in computer science.
Development, analysis, and maintenance of software architectures, with special focus on modular decomposition and reverse engineering.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 303.
Models for sequential and parallel computations: Turing machines, boolean circuits. The equivalence of various models and the Church-Turing thesis. Unsolvable problems. Model dependent measures of computational complexity. Abstract complexity theory. Exponentially and super-exponentially difficult problems. Complete problems.
Model-driven software development; requirements engineering based on use cases and scenarios; object-oriented modelling using UML and OCL to establish complete and precise analysis and design documents; mapping to Java. Introduction to meta-modelling and model transformations, use of modelling tools.
Fundamental design principles, elements, and protocols of computer networks, focusing on the current Internet. Topics include: layered architecture, direct link networks, switching and forwarding, bridge routing, congestion control, end-to-end protocols application of DNS, HTTP, P2P, fair queuing, performance modeling and analysis.
Designing and programming reliable numerical algorithms. Stability of algorithms and condition of problems. Reliable and efficient algorithms for solution of equations, linear least squares problems, the singular value decomposition, the eigenproblem and related problems. Perturbation analysis of problems. Algorithms for structured matrices.
Computational models of visual perception and audition. Vision problems include stereopsis, motion, focus, perspective, color. Audition problems include source localization and recognition. Emphasis on physics of image formation, sensory signal processing, neural pathways and computation, psychophysical methods.
Credits: 4
Terms Offered: Fall 2022
Instructor: Langer, Michael (Fall)
Prerequisites:
Restrictions: Not open to students who have taken COMP 646.
This course presents an in-depth study of modern cryptography and data security. The basic information theoretic and computational properties of classical and modern cryptographic systems are presented, followed by a cryptanalytic examination of several important systems. We will study the applications of cryptography to the security of systems.
Overview of the influence of neuroscience and psychology on Artificial Intelligence (AI). Historical topics: perceptrons, the PDP framework, Hopfield nets, Boltzmann and Helmholtz machines, and the behaviourist origins of reinforcement learning. Modern topics: deep learning, attention, memory and consciousness. Emphasis on understanding the interdisciplinary foundations of modern AI.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: MATH 222, MATH 223, and MATH 323; or equivalents.
Restrictions: Not open to students who have taken COMP 596 when the topic was "Brain-Inspired Artificial Intelligence".
An introduction to the computational modelling of natural language, including algorithms, formalisms, and applications. Computational morphology, language modelling, syntactic parsing, lexical and compositional semantics, and discourse analysis. Selected applications such as automatic summarization, machine translation, and speech processing. Machine learning techniques for natural language processing.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: MATH 323 or ECSE 305, COMP 251 or COMP 252
Restrictions: Not open to students who have taken COMP 599 in 201509 or 201609.
Selected topics in machine learning and data mining, including clustering, neural networks, support vector machines, decision trees. Methods include feature selection and dimensionality reduction, error estimation and empirical validation, algorithm design and parallelization, and handling of large data sets. Emphasis on good methods and practices for deployment of real systems.
Credits: 4
Terms Offered: Fall 2022, Winter 2023
Instructor: Li, Yue (Fall) Rabbany, Reihaneh (Winter)
Prerequisites: MATH 323 or ECSE 205 or ECSE 305 or equivalent
Restrictions: Not open to students who have taken or are taking COMP 451.
Notes: Some background in Artificial Intelligence is recommended, e.g. COMP 424 or ECSE 526, but not required.
Algorithmic and structural approaches in combinatorial optimization with a focus upon theory and applications. Topics include: polyhedral methods, network optimization, the ellipsoid method, graph algorithms, matroid theory and submodular functions.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: Math 350 or COMP 362 (or equivalent).
Restrictions: This course is reserved for undergraduate honours students and graduate students. Not open to students who have taken or are taking MATH 552.
Foundations of game theory. Computation aspects of equilibria. Theory of auctions and modern auction design. General equilibrium theory and welfare economics. Algorithmic mechanism design. Dynamic games.
The theory and application of approximation algorithms. Topics include: randomized algorithms, network optimization, linear programming and semi definite programming techniques, the game theoretic method, the primal-dual method, and metric embeddings.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 362 or MATH 350 or permission of instructor. Strong background in algorithms and/or mathematics.
Restrictions: Not open to students who have taken COMP 692
Conceptual foundations of information privacy: security and cryptography, privacy by design, privacy threats. Technical controls for supporting privacy: authorization, authentication, access control, malware and intrusion detection. Application-specific privacy concerns of databases, web and mobile applications, cloud storage.
Fundamental mathematical, algorithmic and representational issues in computer graphics: overview of graphics pipeline, homogeneous coordinates, projective transformations, line-drawing and rasterization, hidden surface removal, surface modelling (quadrics, bicubics, meshes), rendering (lighting, reflectance models, ray tracing, texture mapping), compositing colour perception, and other selected topics.
Image filtering, edge detection, image features and histograms, image segmentation, image motion and tracking, projective geometry, camera calibration, homographies, epipolar geometry and stereo, point clouds and 3D registration. Applications in computer graphics and robotics.
Fundamental mathematical and computational issues in computer animation with a focus on physics based simulation: overview of numerical integration methods, accuracy and absolute stability, stiff systems and constraints, rigid body motion, collision detection and response, friction, deformation, stable fluid simulation, use of motion capture, and other selected topics.
Application of computer science techniques to problems arising in biology and medicine, techniques for modeling evolution, aligning molecular sequences, predicting structure of a molecule and other problems from computational biology. An in-depth exploration of key research areas.
Credits: 4
Terms Offered: Fall 2022
Instructor: Blanchette, Mathieu (Fall)
Prerequisites: COMP 251, and MATH 323 or MATH 203 or BIOL 309
Restrictions: Not open to students who have taken or are taking COMP 462.
Notes: Note: Additional work will consist of assignments and of a substantial final project that will require to put in practice the concepts covered in the course.
Concentration inequalities, PAC model, VC dimension, Rademacher complexity, convex optimization, gradient descent, boosting, kernels, support vector machines, regression and learning bounds. Further topics selected from: Gaussian processes, online learning, regret bounds, basic neural network theory.
Credits: 4
Terms Offered: Winter 2023
Instructor: Oberman, Adam (Winter)
Prerequisites: MATH 462 or COMP 451 or (COMP 551, MATH 222, MATH 223 and MATH 324) or ECSE 551.
Restrictions: Not open to students who have taken or are taking MATH 562. Not open to students who have taken COMP 599 when the topic was "Statistical Learning Theory" or "Mathematical Topics for Machine Learning". Not open to students who have taken COMP 598 when the topic was "Mathematical Foundations of Machine Learning".
Fundamental concepts and techniques in computational structural biology, system biology. Techniques include dynamic programming algorithms for RNA structure analysis, molecular dynamics and machine learning techniques for protein structure prediction, and graphical models for gene regulatory and protein-protein interaction networks analysis. Practical sessions with state-of-the-art software.
Linear models in statistical genetics, causal inference, single-cell genomics, multi-omic learning, electronic health record mining. Applications of machine learning techniques: linear regression, latent factor models, variational Bayesian inference, neural networks, model interpretation.
Use of computer in solving problems in discrete optimization. Linear programming and extensions. Network simplex method. Applications of linear programming. Vertex enumeration. Geometry of linear programming. Implementation issues and robustness. Students will do a project on an application of their choice.
Formulation, solution and applications of integer programs. Branch and bound, cutting plane, and column generation algorithms. Combinatorial optimization. Polyhedral methods. A large emphasis will be placed on modelling. Students will select and present a case study of an application of integer programming in an area of their choice.
Bandit algorithms, finite Markov decision processes, dynamic programming, Monte-Carlo Methods, temporal-difference learning, bootstrapping, planning, approximation methods, on versus off policy learning, policy gradient methods temporal abstraction and inverse reinforcement learning.
Practical aspects of building software systems with machine learning components: requirements, design, delivery, quality assessment, and collaboration. Consideration of a user-centered mindset in development; integration of design and development considerations relevant to artificial intelligence, such as security, privacy, and fairness.
Representation, inference and learning with graphical models; directed and undirected graphical models; exact inference; approximate inference using deterministic optimization based methods, stochastic sampling based methods; learning with complete and partial observations.
Credits: 4
Terms Offered: Winter 2023
Instructor: Ravanbakhsh, Siamak (Winter)
Prerequisites: COMP 251, MATH 323, MATH 324; or equivalents.
Restrictions: Not open to students who have taken COMP 766 or COMP 767 when the topic was "Probabilistic Graphical Models".
Notes: A background in AI (COMP 424) and machine learning (COMP 451 or COMP 551) is highly recommended.
Topics in computer science.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: Robere, Robert (Fall), Balmau, Oana (Fall); Waldispuhl, Jerome (Winter)
Prerequisites: Permission of the instructor.
Topics in computer science.
Topics in computer science.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: O'Donnell, Tim (Fall); Bzdok, Danilo (Fall), Maheswaran, Mahesh (Winter)
Prerequisites: Permission of instructor.
Topics in computer science.
Credits: 4
Terms Offered: Fall 2022
Instructor: Reddy, Siva; Rabbany, Reihaneh (Fall)
Prerequisites:
Review of relevant literature in preparation for the M.Sc. research. This includes regular attendance of the Colloquium organized by the School of Computer Science.
Credits: 2
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Special topics in computer science.
Credits: 1
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Notes: COMP 601D1 and COMP 601D2 together are equal to COMP 601.
See COMP 601D1 for course description.
Credits: 1
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 601D1
Notes: COMP 601D1 and COMP 601D2 together are equal to COMP 601.
Special topics in computer science.
Credits: 1
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Notes: COMP 601N1 and COMP 601N2 together are equal to COMP 601.
See COMP 601N1 for course description.
Credits: 1
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 601N1
Notes: COMP 601N1 and COMP 601N2 together are equal to COMP 601.
Exposure to ongoing research directions in computer science through regular attendance of the research colloquium organized by the School of Computer Science.
Credits: 1
Terms Offered: Fall 2022
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Exposure to ongoing research directions in computer science through regular attendance of the research colloquium organized by the School of Computer Science.
Credits: 1
Terms Offered: Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Study of elementary data structures: lists, stacks, queues, trees, hash tables, binary search trees, red-black trees, heaps. Augmenting data structures. Sorting and selection, Recursive algorithms. Advanced data structures including binomial heaps, Fibonacci heaps, disjoint set structures, and splay trees. Amortizing. String algorithms. Huffman trees and suffix trees. Graph algorithms.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Introduction to mathematical concepts important across computer science, how to think mathematically, and how to write proofs. Proof techniques such as induction, contradiction, and monovariants; topics in combinatorics, graph theory, algebra, analysis, and probability; mathematical analysis of algorithms, data structures, and computational complexity. Emphasis on the mathematical explanations for useful concepts.
Credits: 4
Terms Offered: Fall 2022
Instructor: Rolnick, David (Fall)
Prerequisites:
Restrictions: Not open to students who have majored in Mathematics or an equivalent subject, or have taken a proof-based math or computer science course within the previous two years.
Notes: Not open to students who have taken COMP 761 when the topic was "Mathematical Tools for Computer Science".
Architecture and examples of distributed information systems (e.g., federated databases, component systems, web databases). Data consistency (consistency models, advanced transaction models, advanced concurrency control, distributed recovery). Data replication and caching. Distribution queries, Schema Integration. Advanced Topics.
Introduction to current trends in Bioinformatics and closely related fields such as genomics and proteomics.
Credits: 1.5
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: This seminar is restricted to graduate students in the Bioinformatics Option. Enrolment is limited to 30 students.
Notes: No credit will be given for this course unless both COMP 616D1 and COMP 616D2 are successfully completed in consecutive terms.
See COMP 616D1 for description.
Credits: 1.5
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 616D1.
Notes: No credit will be given for this course unless both COMP 616D1 and COMP 616D2 are successfully completed in consecutive terms.
Introduction to current trends in Bioinformatics and closely related fields such as genomics and proteomics.
Credits: 1.5
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Notes: No credit will be given for this course unless both COMP 616N1 and COMP 616N2 are successfully completed in a twelve month period
See COMP 616N1 for course description.
Credits: 1.5
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 616N1
Notes: No credit will be given for this course unless both COMP 616N1 and COMP 616N2 are successfully completed in a twelve month period
Techniques related to microarrays (normalization, differential expression, class prediction, class discovery), the analysis of non-coding sequence data (identification of transcription factor binding sites), single nucleotide polymorphisms, the inference of biological networks, and integrative Bioinformatics approaches.
Credits: 3
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: Enrolment in Bioinformatics Option Program or permission of coordinators.
Restrictions: Enrolment by students in the Bioinformatics Option Program or by permission of course coordinators only. Computer Science graduate students not in the Bioinformatics Option Program need additional permission of the M.Sc. or Ph.D. Committee respectively.
Program analysis and transformations are used in optimizing compilers and other automatic tools such as bug-finders, verification tools and software engineering applications. Course topics include the design of intermediate representations, control flow analysis, data flow analysis at both the intra- and inter-procedural level and program transformations for performance improvement.
Efficient and reliable numerical algorithms in estimation and their applications. Linear models and least squares estimation. Maximum-likelihood estimation. Kalman filtering. Adaptive estimation, GPS measurements and mathematical models for positioning. Position estimation. Fault detection and exclusion.
Information theoretic definitions of security, zero-knowledge protocols, secure function evaluation protocols, cryptographic primitives, privacy amplification, error correction, quantum cryptography, quantum cryptanalysis.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 547
Review of the basic notions of cryptography and quantum information theory. Quantum key distribution and its proof of security. Quantum encryption, error-correcting codes and authentication. Quantum bit commitment, zero-knowledge and oblivious transfer. Multiparty quantum computations.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 547 and permission of the instructor.
Restrictions: An introduction to notions of Information Theory is required.
An overview of state-of-the-art algorithms used in machine learning, including theoretical properties and practical applications of these algorithms.
Machine learning with graph-structured data. Introductions to spectral graph theory, graph signal processing, graph convolutions, graph neural networks, and the logic of graphs.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: MATH 222, MATH 223, COMP 360, COMP 451 or COMP551, or equivalents.
Restrictions: Not open to students who have taken COMP 766 when the topic was "Graph Representation Learning".
Conservative and optimistic synchronization involved in executing a discrete event simulation on a distributed platform (e.g. cluster of workstations, shared memory multiprocessor). Focus is on efficiency, strengths and limitations of the different approaches. Applications to large simulations (networks, VLSI, virtual environments).
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 310 or equivalent.
Software fault tolerance, concepts and implementation. Failure classification; information and time redundancy; forward and backward error recovery; error confinement; idealized fault-tolerant component; sequential and concurrent systems; exception handling; transactions and atomic actions; voting; design diversity. Case studies.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 409 or permission of instructor
Advanced algorithms for the annotation of biological sequences. Algorithms and heuristics for pair-wise and multiple sequence alignment. Gene-finding with hidden Markov models and variants. Motifs discovery techniques: over representation and phylogenetic footprinting approaches. RNA secondary structure prediction. Detection of repetitive elements. Representation and annotation of protein domains.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 462 or with instructor's permission.
Probabilistic analysis of algorithms and data structures under random input. Expected behaviour of search trees, tries, heaps, bucket structures and multidimensional data structures. Random sampling, divide-and-conquer, grid methods. Applications in computational geometry and in game tree searching. Combinatorial search problems. Algorithms on random graphs.
Credits: 4
Terms Offered: Fall 2022
Instructor: Devroye, Luc P (Fall)
Prerequisites:
Ongoing research pertaining to thesis.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Ongoing research pertaining to project.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Ongoing research pertaining to project.
Credits: 6
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Ongoing research pertaining to project.
Credits: 6
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Ongoing research pertaining to thesis.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Ongoing research pertaining to thesis.
Credits: 4
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Ongoing research pertaining to thesis.
Credits: 10
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
Ongoing research pertaining to thesis.
Credits: 12
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Restrictions: Computer Science students
An examination that must be passed by all doctoral candidates in order to continue in the doctoral program.
Credits: 0
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
An examination that must be passed by all doctoral candidates in order to continue in the doctoral program.
Credits: 0
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Notes: COMP 700D1 and COMP 700D2 together are equivalent to COMP 700
See COMP 700D1 for course description.
Credits: 0
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites: COMP 700D1
Notes: COMP 700D1 and COMP 700D2 together are equivalent to COMP 700
Submission of doctorate thesis proposal and examination that assesses the student's breadth of knowledge in the research area.
Credits: 3
Terms Offered: Fall 2022, Winter 2023
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Advanced topics in theory related to computer science.
Credits: 4
Terms Offered: Fall 2022
Instructor: Panangaden, Prakash (Fall)
Prerequisites:
Advanced topics in theory related to computer science.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Advanced topics in programming.
Credits: 4
Terms Offered: Fall 2022
Instructor: Pientka, Brigitte (Fall)
Prerequisites:
Advanced topics in programming.
Credits: 4
Terms Offered: This course is not scheduled for the 2022-2023 academic year.
Instructor: There are no professors associated with this course for the 2022-2023 academic year.
Prerequisites:
Advanced topics in computing systems.
Credits: 4
Terms Offered: Winter 2023
Instructor: Dubach, Christophe (Winter)
Prerequisites:
Advanced topics in computing systems.
Credits: 4
Terms Offered: Winter 2023
Instructor: Meger, David (Winter)
Prerequisites:
Advanced topics in computing systems.
Credits: 4
Terms Offered: Winter 2023
Instructor: Lin, Hsiu-Chin (Winter)
Prerequisites:
Advanced topics in computing systems.
Credits: 4
Terms Offered: Winter 2023
Instructor: Rolnick, David (Winter)
Prerequisites: