Courses@CS

COMP 102 Computers and Computing Unavailable

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.

McGill eCalendar

COMP 189 Computers and Society Unavailable

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:

McGill eCalendar

COMP 202 Foundations of Programming

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

McGill eCalendar

COMP 204 Computer Programming for Life Sciences

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

McGill eCalendar

COMP 206 Introduction to Software Systems

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.

Credits: 3

Terms Offered: Fall 2022, Winter 2023

Instructor: D'Silva, Joseph (Fall)

Prerequisites: COMP 202 or COMP 250

McGill eCalendar

COMP 208 Computer Programming for Physical Sciences and Engineering

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.

McGill eCalendar

COMP 230 Logic and Computability

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.

McGill eCalendar

COMP 250 Introduction to Computer Science

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.

McGill eCalendar

COMP 251 Algorithms and Data Structures

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.

McGill eCalendar

COMP 252 Honours Algorithms and Data Structures

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.

McGill eCalendar

COMP 273 Introduction to Computer Systems

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.

McGill eCalendar

COMP 280 History and Philosophy of Computing Unavailable

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:

McGill eCalendar

COMP 302 Programming Languages and Paradigms

Programming language design issues and programming paradigms. Binding and scoping, parameter passing, lambda abstraction, data abstraction, type checking. Functional and logic programming.

Credits: 3

Terms Offered: Fall 2022, Winter 2023

Instructor: Si, Xujie (Winter)

Prerequisites: COMP 250 and (MATH 240 or MATH 235 or MATH 318 or COMP 230 or PHIL 210)

Notes: 3 hours

McGill eCalendar

COMP 303 Software Design

Principles, mechanisms, techniques, and tools for object-oriented software design and its implementation, including encapsulation, design patterns, and unit testing.

Credits: 3

Terms Offered: Fall 2022, Winter 2023

Instructor: Robillard, Martin (Fall) Guo, Jin (Winter)

Prerequisites: COMP 206, COMP 250.

McGill eCalendar

COMP 307 Principles of Web Development

The course discusses the major principles, algorithms, languages and technologies that underlie web development. Students receive practical hands-on experience through a project.

Credits: 3

Terms Offered: Fall 2022

Instructor: Vybihal, Joseph P (Fall)

Prerequisites: COMP 206

Notes: Corequisite(s): COMP 303

McGill eCalendar

COMP 308 Computer Systems Lab

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.

McGill eCalendar

COMP 310 Operating Systems

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

McGill eCalendar

COMP 321 Programming Challenges

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.

McGill eCalendar

COMP 322 Introduction to C++

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.

Credits: 1

Terms Offered: Winter 2023

Instructor: There are no professors associated with this course for the 2022-2023 academic year.

Prerequisites: COMP 250 and (COMP 206 or COMP 208)

McGill eCalendar

COMP 330 Theory of Computation

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.

McGill eCalendar

COMP 345 From Natural Language to Data Science

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.

Credits: 3

Terms Offered: Winter 2023

Instructor: O'Donnell, Tim; Reddy, Siva (Winter)

Prerequisites: COMP 250, and MATH 240; or permission of the instructor.

Restrictions: Not open to students who have taken or are taking LING 345.

McGill eCalendar

COMP 350 Numerical Computing

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.

Credits: 3

Terms Offered: Fall 2022

Instructor: Chang, Xiao-Wen (Fall)

Prerequisites: MATH 222 and MATH 223 and one of: COMP 202, COMP 208, COMP 250; or equivalents.

Restrictions: Students cannot receive credit for both COMP 350 and MATH 317.

McGill eCalendar

COMP 360 Algorithm Design

Advanced algorithm design and analysis. Linear programming, complexity and NP-completeness, advanced algorithmic techniques.

Credits: 3

Terms Offered: Fall 2022, Winter 2023

Instructor: Robere, Robert (Fall) Hatami, Hamed (Winter)

Prerequisites: Either COMP 251 or COMP 252, and either MATH 240 or MATH 235 or MATH 363.

Restrictions: Not open to students who have taken or are taking COMP 362.

McGill eCalendar

COMP 361D1 Software Engineering Project

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

McGill eCalendar

COMP 361D2 Software Engineering Project

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

McGill eCalendar

COMP 362 Honours Algorithm Design

Basic algorithmic techniques, their applications and limitations. Problem complexity, how to deal with problems for which no efficient solutions are known.

Credits: 3

Terms Offered: Winter 2023

Instructor: Vetta, Adrian Roshan (Winter)

Prerequisites: COMP 252

Restrictions: Not open to students who have taken or are taking COMP 360.

Notes: Note: COMP 362 can be used instead of COMP 360 to satisfy prerequisites.

McGill eCalendar

COMP 364 Computer Tools for Life Sciences Unavailable

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.

McGill eCalendar

COMP 370 Introduction to Data Science Unavailable

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".

McGill eCalendar

COMP 396 Undergraduate Research Project

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.

McGill eCalendar

COMP 400 Project in Computer Science

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.

McGill eCalendar

COMP 401 Project in Biology and Computer Science

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.

McGill eCalendar

COMP 402 Honours Project in Computer Science and Biology

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.

McGill eCalendar

COMP 402D1 Honours Project 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.

McGill eCalendar

COMP 402D2 Honours Project 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: 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

McGill eCalendar

COMP 409 Concurrent Programming Unavailable

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.

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 251, COMP 302, and COMP 310 or ECSE 427

McGill eCalendar

COMP 417 Introduction Robotics and Intelligent Systems

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.

Credits: 3

Terms Offered: Fall 2022

Instructor: Dudek, Gregory L (Fall)

Prerequisites: COMP 251, MATH 223 and (ECSE 321 or COMP 206).

McGill eCalendar

COMP 421 Database Systems

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.

Credits: 3

Terms Offered: Winter 2023

Instructor: Kemme, Bettina (Winter)

Prerequisites: COMP 206, COMP 251, COMP 302

McGill eCalendar

COMP 424 Artificial Intelligence

Introduction to search methods. Knowledge representation using logic and probability. Planning and decision making under uncertainty. Introduction to machine learning.

Credits: 3

Terms Offered: Fall 2022

Instructor: Meger, David (Fall)

Prerequisites: COMP 206 or ECSE 321, MATH 323 or equivalent and COMP 251.

Restrictions: Not open to students who have taken or are taking ECSE 526.

McGill eCalendar

COMP 445 Computational Linguistics

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.

McGill eCalendar

COMP 451 Fundamentals of Machine Learning

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.

Credits: 3

Terms Offered: Fall 2022

Instructor: Ravanbakhsh, Siamak (Fall)

Prerequisites: COMP 251, MATH 222, MATH 223, and MATH 323.

Restrictions: Not open to students who are taking or have taken COMP 551.

McGill eCalendar

COMP 462 Computational Biology Methods

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.

Credits: 3

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 561.

McGill eCalendar

COMP 480 Independent Studies in Computer Science

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.

McGill eCalendar

COMP 512 Distributed Systems

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.

Credits: 4

Terms Offered: Fall 2022

Instructor: Kemme, Bettina; D'Silva, Joseph (Fall)

Prerequisites: COMP 310, COMP 251 or equivalent.

McGill eCalendar

COMP 513 Advanced Computer Systems

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:

Syllabus (Link)

McGill eCalendar

COMP 514 Applied Robotics

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.

McGill eCalendar

COMP 520 Compiler Design

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Dubach, Christophe (Winter)

Prerequisites: COMP 273 and COMP 302

McGill eCalendar

COMP 521 Modern Computer Games Unavailable

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.

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 251, MATH 223 and (COMP 303 or COMP 361).

McGill eCalendar

COMP 523 Language-based Security Unavailable

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.

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 302, COMP 330.

McGill eCalendar

COMP 525 Formal Verification

Propositional logic - syntax and semantics, temporal logic, other modal logics, model checking, symbolic model checking, binary decision diagrams, other approaches to formal verification.

Credits: 3

Terms Offered: Fall 2022

Instructor: Panangaden, Prakash (Fall)

Prerequisites: COMP 251 and COMP 330.

McGill eCalendar

COMP 527 Logic and Computation

Introduction to modern constructive logic, its mathematical properties, and its numerous applications in computer science.

Credits: 3

Terms Offered: Winter 2023

Instructor: Pientka, Brigitte (Winter)

Prerequisites: COMP 302

Restrictions: Not open to students who have taken COMP 426

McGill eCalendar

COMP 529 Software Architecture Unavailable

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.

McGill eCalendar

COMP 531 Advanced Theory of Computation

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.

Credits: 3

Terms Offered: Fall 2022

Instructor: Hatami, Hamed (Fall)

Prerequisites: COMP 330

McGill eCalendar

COMP 533 Model-Driven Software Development Unavailable

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.

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: ECSE 321 or COMP 303 or COMP 361

McGill eCalendar

COMP 535 Computer Networks 1

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Liu, Xue (Winter)

Prerequisites: COMP 310 or ECSE 427

McGill eCalendar

COMP 540 Matrix Computations

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Chang, Xiao-Wen (Winter)

Prerequisites: MATH 327 or COMP 350

McGill eCalendar

COMP 546 Computational Perception

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.

McGill eCalendar

COMP 547 Cryptography and Data Security

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.

Credits: 4

Terms Offered: Fall 2022

Instructor: Crepeau, Claude (Fall)

Prerequisites: COMP 360 or COMP 362, MATH 323.

McGill eCalendar

COMP 549 Brain-Inspired Artificial Intelligence Unavailable

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".

McGill eCalendar

COMP 550 Natural Language Processing Unavailable

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.

McGill eCalendar

COMP 551 Applied Machine Learning

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.

McGill eCalendar

COMP 552 Combinatorial Optimization Unavailable

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.

McGill eCalendar

COMP 553 Algorithmic Game Theory

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Vetta, Adrian Roshan (Winter)

Prerequisites: COMP 362 or MATH 350 or MATH 454 or MATH 487, or instructor permission

Restrictions: Not open to students who are taking or have taken MATH 553

McGill eCalendar

COMP 554 Approximation Algorithms Unavailable

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

McGill eCalendar

COMP 555 Software Privacy

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Robillard, Martin (Winter)

Prerequisites: COMP 303

Restrictions: Not open to students who have taken COMP 599 when the topic was "Topics in Mobile Application Development".

McGill eCalendar

COMP 557 Fundamentals of Computer Graphics

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.

Credits: 4

Terms Offered: Fall 2022

Instructor: Kry, Paul (Fall)

Prerequisites: MATH 222, MATH 223, COMP 250, COMP 206

McGill eCalendar

COMP 558 Fundamentals of Computer Vision

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.

Credits: 4

Terms Offered: Fall 2022

Instructor: Siddiqi, Kaleem (Fall)

Prerequisites: COMP 251, MATH 222, MATH 223

McGill eCalendar

COMP 559 Fundamentals of Computer Animation

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Kry, Paul (Winter)

Prerequisites: MATH 222, MATH 223, COMP 206, COMP 250

McGill eCalendar

COMP 561 Computational Biology Methods and Research

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.

McGill eCalendar

COMP 562 Theory of Machine Learning

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".

McGill eCalendar

COMP 564 Advanced Computational Biology Methods and Research Unavailable

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.

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 462.

Notes: Corequisite(s): COMP 462 or COMP 561

McGill eCalendar

COMP 565 Machine Learning in Genomics and Healthcare

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Li, Yue (Winter)

Prerequisites: (BIOL 202 or BIOL 302) and MATH 324 and (COMP 451 or COMP 551), or equivalents.

Restrictions: Not open to students who have taken COMP 597 or COMP 598 when the topic was "Machine Learning in Genomics and Healthcare".

McGill eCalendar

COMP 566 Discrete Optimization 1 Unavailable

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.

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 360 and MATH 223

McGill eCalendar

COMP 567 Discrete Optimization 2 Unavailable

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.

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 566 or MATH 417

McGill eCalendar

COMP 579 Reinforcement Learning

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.

Credits: 4

Terms Offered: Winter 2023

Instructor: Precup, Doina (Winter)

Prerequisites: A university level course in machine learning such as COMP 451 or COMP 551. Background in calculus, linear algebra, probability at the level of MATH 222, MATH 223, MATH 323, respectively.

McGill eCalendar

COMP 585 Intelligent Software Systems

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.

Credits: 4

Terms Offered: Fall 2022

Instructor: Guo, Jin (Fall)

Prerequisites: COMP 303, COMP 424 or COMP 551

Restrictions: Not open to students who have taken COMP 598 or COMP 599 when the topic was "Software Engineering for Building Intelligent Systems".

McGill eCalendar

COMP 588 Probabilistic Graphical Models

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.

McGill eCalendar

COMP 596 Topics in Computer Science 3

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.

McGill eCalendar

COMP 597 Topics in Computer Science 4

Topics in computer science.

Credits: 4

Terms Offered: Fall 2022

Instructor: Si, Xujie (Fall)

Prerequisites:

McGill eCalendar

COMP 598 Topics in Computer Science 1

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.

McGill eCalendar

COMP 599 Topics in Computer Science 2

Topics in computer science.

Credits: 4

Terms Offered: Fall 2022

Instructor: Reddy, Siva; Rabbany, Reihaneh (Fall)

Prerequisites:

McGill eCalendar

COMP 601 Thesis Literature Review Unavailable

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:

McGill eCalendar

COMP 601D1 Thesis Literature Review Unavailable

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.

McGill eCalendar

COMP 601D2 Thesis Literature Review Unavailable

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.

McGill eCalendar

COMP 601N1 Thesis Literature Review Unavailable

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.

McGill eCalendar

COMP 601N2 Thesis Literature Review Unavailable

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.

McGill eCalendar

COMP 602 Computer Science Seminar 1

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:

McGill eCalendar

COMP 603 Computer Science Seminar 2

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:

McGill eCalendar

COMP 610 Information Structures 1 Unavailable

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:

McGill eCalendar

COMP 611 Mathematical Tools for Computer Science

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".

McGill eCalendar

COMP 614 Distributed Data Management Unavailable

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.

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 421 and one of COMP 435 or COMP 535 or COMP 512, or equivalent.

McGill eCalendar

COMP 616D1 Bioinformatics Seminar Unavailable

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.

McGill eCalendar

COMP 616D2 Bioinformatics Seminar Unavailable

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.

McGill eCalendar

COMP 616N1 Bioinformatics Seminar Unavailable

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

McGill eCalendar

COMP 616N2 Bioinformatics Seminar Unavailable

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

McGill eCalendar

COMP 618 Bioinformatics: Functional Genomics Unavailable

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.

McGill eCalendar

COMP 621 Program Analysis and Transformations Unavailable

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.

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 251 or equivalent, COMP 302 or equivalent, COMP 520 is useful but not strictly necessary

McGill eCalendar

COMP 642 Numerical Estimation Methods Unavailable

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.

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 323, MATH 324 and COMP 350

McGill eCalendar

COMP 647 Advanced Cryptography Unavailable

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

McGill eCalendar

COMP 649 Quantum Cryptography Unavailable

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.

McGill eCalendar

COMP 652 Machine Learning Unavailable

An overview of state-of-the-art algorithms used in machine learning, including theoretical properties and practical applications of these 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: COMP 424, COMP 526 or ECSE 526, COMP 360, MATH 323 or ECSE 305.

McGill eCalendar

COMP 654 Graph Representation Learning Unavailable

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".

McGill eCalendar

COMP 655 Distributed Simulation Unavailable

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.

McGill eCalendar

COMP 667 Software Fault Tolerance Unavailable

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

McGill eCalendar

COMP 680 Mining Biological Sequences Unavailable

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.

McGill eCalendar

COMP 690 Probabilistic Analysis of Algorithms

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:

McGill eCalendar

COMP 691 Thesis Research 1

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

McGill eCalendar

COMP 693 Research Project 1

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

McGill eCalendar

COMP 694 Research Project 2

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

McGill eCalendar

COMP 695 Research Project 3

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

McGill eCalendar

COMP 696 Thesis Research 2

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

McGill eCalendar

COMP 697 Thesis Research 3

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

McGill eCalendar

COMP 698 Thesis Research 4

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

McGill eCalendar

COMP 699 Thesis Research 5

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

McGill eCalendar

COMP 700 Ph.D. Comprehensive Examination

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:

McGill eCalendar

COMP 700D1 Ph.D. Comprehensive Examination Unavailable

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

McGill eCalendar

COMP 700D2 Ph.D. Comprehensive Examination Unavailable

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

McGill eCalendar

COMP 701 Thesis Proposal and Area Examination

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:

McGill eCalendar

COMP 760 Advanced Topics Theory 1

Advanced topics in theory related to computer science.

Credits: 4

Terms Offered: Fall 2022

Instructor: Panangaden, Prakash (Fall)

Prerequisites:

McGill eCalendar

COMP 761 Advanced Topics Theory 2 Unavailable

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:

McGill eCalendar

COMP 762 Advanced Topics Programming 1

Advanced topics in programming.

Credits: 4

Terms Offered: Fall 2022

Instructor: Pientka, Brigitte (Fall)

Prerequisites:

McGill eCalendar

COMP 763 Advanced Topics Programming 2 Unavailable

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:

McGill eCalendar

COMP 764 Advanced Topics Systems 1 (High-level Synthesis of Digital Systems)

Advanced topics in computing systems.

Credits: 4

Terms Offered: Winter 2023

Instructor: Dubach, Christophe (Winter)

Prerequisites:

McGill eCalendar

COMP 765 Advanced Topics Systems 2

Advanced topics in computing systems.

Credits: 4

Terms Offered: Winter 2023

Instructor: Meger, David (Winter)

Prerequisites:

McGill eCalendar

COMP 766 Advanced Topics Applications 1

Advanced topics in computing systems.

Credits: 4

Terms Offered: Winter 2023

Instructor: Lin, Hsiu-Chin (Winter)

Prerequisites:

McGill eCalendar

COMP 767 Advanced Topics: Applications 2

Advanced topics in computing systems.

Credits: 4

Terms Offered: Winter 2023

Instructor: Rolnick, David (Winter)

Prerequisites:

McGill eCalendar