Co-op in Software Engineering (B.Eng.) (141 credits)
Offered by: Electrical & Computer Engr (Faculty of Engineering)
Degree: Bachelor of Engineering
Program credit weight: 141 credits
Program Description
The B.Eng. Co-op in Software Engineering program focuses on the skills needed to design and develop complex software systems, and it includes mandatory co-op terms. The program emphasizes the application of the principles and techniques of engineering, computer science, and mathematical analysis to cover the lifecycle of engineering modern software applications.
Program credit weight: 141-144 credits
Program credit weight for Quebec CEGEP students: 113-116 credits
Program credit weight for out-of-province students: 141-144 credits
Note: For information about Fall 2025 and Winter 2026 course offerings, please check back on May 8, 2025. Until then, the "Terms offered" field will appear blank for most courses while the class schedule is being finalized.
Required Year 0 (Freshman) Courses (28 credits)
Generally, students admitted to Engineering from Quebec CEGEPs are granted transfer credit for these Year 0 (Freshman) courses and enter a 113- to 116-credit program.
For information on transfer credit for French Baccalaureate, International Baccalaureate exams, Advanced Placement exams, Advanced Levels, and Science Placement Exams, see http://www.mcgill.ca/engineering/current-students/undergraduate/new-stud... and select your term of admission.
Course | Title | Credits |
---|---|---|
CHEM 120 | General Chemistry 2. | 4 |
General Chemistry 2. Terms offered: this course is not currently offered. A study of the fundamental principles of physical chemistry. | ||
MATH 133 | Linear Algebra and Geometry. | 3 |
Linear Algebra and Geometry. Terms offered: Summer 2025 Systems of linear equations, matrices, inverses, determinants; geometric vectors in three dimensions, dot product, cross product, lines and planes; introduction to vector spaces, linear dependence and independence, bases. Linear transformations. Eigenvalues and diagonalization. | ||
MATH 140 | Calculus 1. | 3 |
Calculus 1. Terms offered: Summer 2025 Review of functions and graphs. Limits, continuity, derivative. Differentiation of elementary functions. Antidifferentiation. Applications. | ||
MATH 141 | Calculus 2. | 4 |
Calculus 2. Terms offered: Summer 2025 The definite integral. Techniques of integration. Applications. Introduction to sequences and series. | ||
PHYS 131 | Mechanics and Waves. | 4 |
Mechanics and Waves. Terms offered: this course is not currently offered. The basic laws and principles of Newtonian mechanics; oscillations, waves, and wave optics. | ||
PHYS 142 | Electromagnetism and Optics. | 4 |
Electromagnetism and Optics. Terms offered: this course is not currently offered. The basic laws of electricity and magnetism; geometrical optics. |
AND 3 credits selected from the approved list of courses in Humanities and Social Sciences, Management Studies and Law, listed below under Complementary Studies (Group B).
AND 3 credits Natural Science complementary courses chosen from courses from the following science departments, approved by the Undergraduate Programs Office in the Department of Electrical and Computer Engineering:
Atmospheric and Oceanic Sciences (ATOC)
Biology (BIOL)
Chemistry (CHEM)
Earth and Planetary Sciences (EPSC)
Earth System Science (ESYS)
Physics (PHYS)
Note: FACC 100 Introduction to the Engineering Profession. must be taken during the first year of study.
Required Non-Departmental Courses (35 credits)
Course | Title | Credits |
---|---|---|
COMP 202 | Foundations of Programming. | 3 |
Foundations of Programming. Terms offered: Summer 2025 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. | ||
COMP 206 | Introduction to Software Systems. | 3 |
Introduction to Software Systems. Terms offered: this course is not currently offered. 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. | ||
COMP 251 | Algorithms and Data Structures. | 3 |
Algorithms and Data Structures. Terms offered: this course is not currently offered. Data Structures: priority queues, balanced binary search trees, hash tables, graphs. Algorithms: topological sort, connected components, shortest paths, minimum spanning trees, bipartite matching, network flows. Algorithm design: greedy, divide and conquer, dynamic programming, randomization. Mathematicaltools: proofs of asymptotic complexity and program correctness, Master theorem. | ||
COMP 302 | Programming Languages and Paradigms. | 3 |
Programming Languages and Paradigms. Terms offered: this course is not currently offered. Programming language design issues and programming paradigms. Binding and scoping, parameter passing, lambda abstraction, data abstraction, type checking. Functional and logic programming. | ||
COMP 360 | Algorithm Design. | 3 |
Algorithm Design. Terms offered: this course is not currently offered. Advanced algorithm design and analysis. Linear programming, complexity and NP-completeness, advanced algorithmic techniques. | ||
COMP 421 | Database Systems. | 3 |
Database Systems. Terms offered: this course is not currently offered. 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. | ||
FACC 100 | Introduction to the Engineering Profession. 1 | 1 |
Introduction to the Engineering Profession. Terms offered: this course is not currently offered. Introduction to engineering practice; rights and code of conduct for students; professional conduct and ethics; engineer's duty to society and the environment; sustainable development; occupational health and safety; overview of the engineering disciplines taught at McGill. | ||
FACC 250 | Responsibilities of the Professional Engineer. | 0 |
Responsibilities of the Professional Engineer. Terms offered: this course is not currently offered. A course designed to provide all Engineering students with further training regarding their responsibilities as future Professional Engineers. Particular focus will be placed on three professional characteristics that future engineers must demonstrate: i) professionalism, ii) ethical and equitable behaviour, and iii) consideration of the impact of engineering on society and the environment. | ||
FACC 300 | Engineering Economy. | 3 |
Engineering Economy. Terms offered: Summer 2025 Introduction to the basic concepts required for the economic assessment of engineering projects. Topics include: accounting methods, marginal analysis, cash flow and time value of money, taxation and depreciation, discounted cash flow analysis techniques, cost of capital, inflation, sensitivity and risk analysis, analysis of R and D, ongoing as well as new investment opportunities. | ||
FACC 400 | Engineering Professional Practice. | 1 |
Engineering Professional Practice. Terms offered: this course is not currently offered. Laws, regulations and codes governing engineering professional practice. Responsibility and liability. Environmental legislation. Project and organization management. Relations between engineer and client. Technical practice - analysis, design, execution and operation. | ||
MATH 240 | Discrete Structures. | 3 |
Discrete Structures. Terms offered: this course is not currently offered. Introduction to discrete mathematics and applications. Logical reasoning and methods of proof. Elementary number theory and cryptography: prime numbers, modular equations, RSA encryption. Combinatorics: basic enumeration, combinatorial methods, recurrence equations. Graph theory: trees, cycles, planar graphs. | ||
MATH 262 | Intermediate Calculus. | 3 |
Intermediate Calculus. Terms offered: Summer 2025 Series and power series, including Taylor's theorem. Brief review of vector geometry. Vector functions and curves. Partial differentiation and differential calculus for vector valued functions. Unconstrained and constrained extremal problems. Multiple integrals including surface area and change of variables. | ||
MATH 263 | Ordinary Differential Equations for Engineers. | 3 |
Ordinary Differential Equations for Engineers. Terms offered: Summer 2025 First order ODEs. Second and higher order linear ODEs. Series solutions at ordinary and regular singular points. Laplace transforms. Linear systems of differential equations with a short review of linear algebra. | ||
WCOM 206 | Communication in Engineering. 2 | 3 |
Communication in Engineering. Terms offered: Summer 2025 Written and oral communication in Engineering (in English): strategies for generating, developing, organizing, and presenting ideas in a technical setting; problem-solving; communicating to different audiences; editing and revising; and public speaking. Course work based on academic, technical, and professional writing in engineering. |
- 1
Note: FACC 100 Introduction to the Engineering Profession. must be taken during the first year of study.
- 2
WCOM 206 Communication in Engineering. must be passed two terms prior to ECSE 201 Co-operative Work Term 1..
Note: CCOM 206 must be passed two terms prior to ECSE 201 Co-operative Work Term 1..
Required Software Engineering Courses (60 credits)
Course | Title | Credits |
---|---|---|
ECSE 200 | Electric Circuits 1. | 3 |
Electric Circuits 1. Terms offered: this course is not currently offered. Circuit variables. Analysis of resistive circuits, network theorems (Kirchhoff’s laws, Ohm’s law, Norton and Thevenin equivalent). Ammeters, Voltmeters, and Ohmmeters. Analysis methods (nodal and mesh analysis, linearity, superposition). Dependent sources and Op-Amps. Energy storage elements. First and second order circuits. | ||
ECSE 201 | Co-operative Work Term 1. | 2 |
Co-operative Work Term 1. Terms offered: Summer 2025 Supervised and evaluated work experience. | ||
ECSE 205 | Probability and Statistics for Engineers | 3 |
Probability and Statistics for Engineers Terms offered: Summer 2025 Probability: basic probability model, conditional probability, Bayes rule, random variables and vectors, distribution and density functions, common distributions in engineering, expectation, moments, independence, laws of large numbers, central limit theorem. Statistics: descriptive measures of engineering data, sampling distributions, estimation of mean and variance, confidence intervals, hypothesis testing, linear regression. | ||
ECSE 211 | Design Principles and Methods. | 3 |
Design Principles and Methods. Terms offered: this course is not currently offered. Engineering process: design specifications, parameters, optimization, implementation, troubleshooting and refinement; project management: scheduling, risk analysis, project control; case studies; design examples and project. | ||
ECSE 222 | Digital Logic. | 3 |
Digital Logic. Terms offered: this course is not currently offered. An introduction to digital logic, binary numbers and Boolean algebra, combinational circuits, optimized implementation of combinational circuits, arithmetic circuits, combinational circuit building blocks, flip-flops, registers, counters, design of digital circuits with VHDL, and synchronous sequential circuits. | ||
ECSE 223 | Model-Based Programming. | 3 |
Model-Based Programming. Terms offered: this course is not currently offered. Integration of modelling with programming; abstraction in software engineering; structural modelling; state-based modelling; modelling of object-oriented systems, code generation; natural language constraints in modelling notations; architectural and design patterns; integrated development environments; programming tools (debugging, continuous build/integration, version control and code repositories, diff, defect and issue tracking, refactoring); code review processes. | ||
ECSE 250 | Fundamentals of Software Development. | 3 |
Fundamentals of Software Development. Terms offered: this course is not currently offered. Software development practices in the context of object-oriented programming. Elementary data structures such as lists, stacks and trees. Recursive and non-recursive algorithms: searching and sorting, tree and graph traversal. Asymptotic notation: Big O. Introduction to tools and practices employed in commercial software development. | ||
ECSE 301 | Co-operative Work Term 2. | 2 |
Co-operative Work Term 2. Terms offered: Summer 2025 Supervised and evaluated work experience. | ||
ECSE 310 | Thermodynamics of Computing. | 3 |
Thermodynamics of Computing. Terms offered: this course is not currently offered. An introduction to thermodynamics from the perspective of computer engineering. The first and second laws of thermodynamics; elementary information theory (bits, entropy); energy storage and dissipation in electrical circuits; effects of noise in switching circuits; the fluctuation-dissipation theorem; Landauer’s principle; reversible and irreversible computation; energy costs of communication; thermal resistance, heat sinking, and cooling technologies for computing circuits. | ||
ECSE 316 | Signals and Networks. | 3 |
Signals and Networks. Terms offered: this course is not currently offered. Introduction to the physical and software architecture of networks and the analysis and representation of signals; client-server and peer-to-peer architectures; layered design principles; network applications and socket programming; multimedia streaming, web transfer, and voice-over-IP; continuous-time and discrete-time signals; Fourier transforms and frequency domain analysis and representation of signals; filtering and sampling; flow and congestion control; solutions of linear constant-coefficient differential equations, transient and steady state response; Laplace transforms; addressing and routing for unicast, multicast, and broadcast transmission; wired and wireless access systems; multiple access protocols. Examples: Ethernet, http, TCP/IP, 802.11, OSPF, BGP. | ||
ECSE 321 | Introduction to Software Engineering. | 3 |
Introduction to Software Engineering. Terms offered: this course is not currently offered. Design, development and testing of software systems. Software life cycle: requirements analysis, software architecture and design, implementation, integration, test planning, and maintenance. The course involves a group project. | ||
ECSE 324 | Computer Organization. | 4 |
Computer Organization. Terms offered: this course is not currently offered. Basic computer structures; instruction set architecture; assembly language; input/output; memory; software; processor implementation; computer arithmetic. Lab work involving assembly language level programming of single-board computers. | ||
ECSE 326 | Software Requirements Engineering. | 3 |
Software Requirements Engineering. Terms offered: this course is not currently offered. Techniques for eliciting requirements; languages and models for specification of requirements; analysis and validation techniques, including feature-based, goal-based, and scenario-based analysis; quality requirements; requirements traceability and management; handling evolution of requirements; requirements documentation standards; requirements in the context of system engineering; integration of requirements engineering into software engineering processes. | ||
ECSE 401 | Co-operative Work Term 3. | 2 |
Co-operative Work Term 3. Terms offered: Summer 2025 Supervised and evaluated work experience. | ||
ECSE 402 | Co-operative Work Term 4. | 2 |
Co-operative Work Term 4. Terms offered: Summer 2025 Supervised and evaluated work experience. | ||
ECSE 420 | Parallel Computing. | 3 |
Parallel Computing. Terms offered: this course is not currently offered. Modern parallel computing architectures for shared memory, message passing and data parallel programming models. The design of cache coherent shared memory multiprocessors. Programming techniques for multithreaded, message passing and distributed systems. Use of modern programming languages and parallel programming libraries. | ||
ECSE 427 | Operating Systems. | 3 |
Operating Systems. Terms offered: this course is not currently offered. Operating system services, file system organization, disk and cpu scheduling, virtual memory management, concurrent processing and distributed systems, protection and security. Aspects of the DOS and UNIX operating systems and the C programming language. Programs that communicate between workstations across a network. | ||
ECSE 428 | Software Engineering Practice. | 3 |
Software Engineering Practice. Terms offered: this course is not currently offered. Software engineering practice in industry, related to the design and commissioning of large software systems. Ethical, social, economic, safety and legal issues. Metrics, project management, costing, marketing, control, standards, CASE tools and bugs. The course involves a large team project. | ||
ECSE 429 | Software Validation. | 3 |
Software Validation. Terms offered: this course is not currently offered. Correct and complete implementation of software requirements. Verification and validation lifecycle. Requirements analysis, model based analysis, and design analysis. Unit and system testing, performance, risk management, software reuse. Ubiquitous computing. | ||
ECSE 458D1 | Capstone Design Project. | 3 |
Capstone Design Project. Terms offered: this course is not currently offered. A design project undertaken with close mentorship by a staff member and under the supervision of the course instructor. The project consists of defining an engineering problem, reviewing relevant background, acquiring/analyzing data, and seeking solutions using appropriate simulation/analysis tools and experimental investigations. Professional engineering practices will be followed. | ||
ECSE 458D2 | Capstone Design Project. | 3 |
Capstone Design Project. Terms offered: this course is not currently offered. See ECSE 458D1 for course description. |
Note: ECSE 458N1 Capstone Design Project. and ECSE 458N2 Capstone Design Project. can be taken instead of ECSE 458D1 Capstone Design Project. and ECSE 458D2 Capstone Design Project..
Complementary Courses (15-18 credits)
Technical Complementaries
9-12 credits (3 courses) must be taken, chosen as follows:
3-4 credits (1 course) from List A
6-8 credits (2 courses) from List A or List B
List A
3-12 credits from the following:
Course | Title | Credits |
---|---|---|
ECSE 325 | Digital Systems. | 3 |
Digital Systems. Terms offered: this course is not currently offered. Design of digital systems. Implementation technologies; arithmetic modules; synthesis and advanced modelling techniques; verification; timing analysis; design for testability; asynchronous circuits; hardware/software co-design. | ||
ECSE 415 | Introduction to Computer Vision. | 3 |
Introduction to Computer Vision. Terms offered: this course is not currently offered. An introduction to the automated processing, analysis, and understanding of image data. Topics include image formation and acquisition, design of image features, image segmentation, stereo and motion correspondence matching techniques, feature clustering, regression and classification for object recognition, industrial and consumer applications, and computer vision software tools. | ||
ECSE 416 | Telecommunication Networks. | 4 |
Telecommunication Networks. Terms offered: this course is not currently offered. Architecture and protocols of contemporary networks; wired and wireless access systems; flow and congestion control; network optimization; randomized multiple access protocols; queueing disciplines; low-power wireless networks. Examples: Ethernet, TCP/IP, 802.11, 802.15.4. Lab experiments addressing routing protocols, TCP, queuing disciplines and quality-of-service, and network security. | ||
ECSE 439 | Software Language Engineering. | 3 |
Software Language Engineering. Terms offered: this course is not currently offered. Practical and theoretical knowledge for developing software languages and models; foundations for model-based software development; topics include principles of model-driven engineering; concern-driven development; intentional, structural, and behavioral models as well as configuration models; constraints; language engineering; domain-specific languages; metamodeling; model transformations; models of computation; model analyses; and modeling tools. | ||
ECSE 444 | Microprocessors. | 4 |
Microprocessors. Terms offered: this course is not currently offered. Design techniques for developing modern microprocessor-based systems, multiple state-of-art instructions set architectures (ISAs) and associated assembly languages, use of tools for compiling, linking, memory overlay; debug techniques for start-stop and real-time debugging, together with debug infrastructure and interfaces: flash patching, variable watching and instruction stream tracing. Use of coprocessors and computer peripherals, such as SPI, I2C, I2S, SAI, USB, wireless standards, timers, DMA units and FLASH accelerators. Interfacing and processing sensor data including multi-sensor integration. Design techniques that promote structured approaches for separation of concerns in computing and communication. Real-time systems and software engineering for tightly integrated hardware. | ||
ECSE 544 | Computational Photography. | 4 |
Computational Photography. Terms offered: this course is not currently offered. An overview of techniques and theory underlying computational photography. Topics include: radiometry and photometry; lenses and image formation; electronic image sensing; colour processing; lightfield cameras; image deblurring; super-resolution methods; image denoising; flash photography; image matting and compositing; high dynamic range imaging and tone mapping; image retargeting; image stitching. |
List B
0-8 credits from the following:
Course | Title | Credits |
---|---|---|
COMP 307 | Principles of Web Development. | 3 |
Principles of Web Development. Terms offered: this course is not currently offered. The course discusses the major principles, algorithms, languages and technologies that underlie web development. Students receive practical hands-on experience through a project. | ||
COMP 330 | Theory of Computation. | 3 |
Theory of Computation. Terms offered: this course is not currently offered. Finite automata, regular languages, context-free languages, push-down automata, models of computation, computability theory, undecidability, reduction techniques. | ||
COMP 350 | Numerical Computing. 1 | 3 |
Numerical Computing. Terms offered: this course is not currently offered. 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. | ||
COMP 370 | Introduction to Data Science. | 3 |
Introduction to Data Science. Terms offered: this course is not currently offered. 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. | ||
COMP 409 | Concurrent Programming. | 3 |
Concurrent Programming. Terms offered: this course is not currently offered. 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. | ||
COMP 417 | Introduction Robotics and Intelligent Systems. | 3 |
Introduction Robotics and Intelligent Systems. Terms offered: this course is not currently offered. 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. | ||
COMP 424 | Artificial Intelligence. 2 | 3 |
Artificial Intelligence. Terms offered: this course is not currently offered. Introduction to search methods. Knowledge representation using logic and probability. Planning and decision making under uncertainty. Introduction to machine learning. | ||
COMP 512 | Distributed Systems. | 4 |
Distributed Systems. Terms offered: this course is not currently offered. 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. | ||
COMP 520 | Compiler Design. | 4 |
Compiler Design. Terms offered: this course is not currently offered. 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. | ||
COMP 521 | Modern Computer Games. | 4 |
Modern Computer Games. Terms offered: this course is not currently offered. 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. | ||
COMP 525 | Formal Verification. | 3 |
Formal Verification. Terms offered: this course is not currently offered. Propositional logic - syntax and semantics, temporal logic, other modal logics, model checking, symbolic model checking, binary decision diagrams, other approaches to formal verification. | ||
COMP 529 | Software Architecture. | 4 |
Software Architecture. Terms offered: this course is not currently offered. Development, analysis, and maintenance of software architectures, with special focus on modular decomposition and reverse engineering. | ||
COMP 533 | Model-Driven Software Development. | 3 |
Model-Driven Software Development. Terms offered: this course is not currently offered. 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. | ||
COMP 547 | Cryptography and Data Security. | 4 |
Cryptography and Data Security. Terms offered: this course is not currently offered. 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. | ||
COMP 549 | Brain-Inspired Artificial Intelligence. | 3 |
Brain-Inspired Artificial Intelligence. Terms offered: this course is not currently offered. 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. | ||
COMP 550 | Natural Language Processing. | 3 |
Natural Language Processing. Terms offered: this course is not currently offered. 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. | ||
COMP 551 | Applied Machine Learning. 1 | 4 |
Applied Machine Learning. Terms offered: this course is not currently offered. 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. | ||
COMP 559 | Fundamentals of Computer Animation. | 4 |
Fundamentals of Computer Animation. Terms offered: this course is not currently offered. 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. | ||
COMP 562 | Theory of Machine Learning. | 4 |
Theory of Machine Learning. Terms offered: this course is not currently offered. 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. | ||
COMP 588 | Probabilistic Graphical Models. | 4 |
Probabilistic Graphical Models. Terms offered: this course is not currently offered. 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. | ||
ECSE 343 | Numerical Methods in Engineering. 1 | 3 |
Numerical Methods in Engineering. Terms offered: this course is not currently offered. Number representation and numerical error. Symbolic vs. numerical computation. Curve fitting and interpolation. Numerical differentiation and integration. Optimization. Data science pipelines and data-driven approaches. Preliminary machine learning. Solutions of systems of linear equations and nonlinear equations. Solutions of ordinary and partial differential equations. Applications in engineering, physical simulation, CAD, machine learning and digital media. | ||
ECSE 421 | Embedded Systems. | 3 |
Embedded Systems. Terms offered: this course is not currently offered. Definition, structure and properties of embedded systems. Real-time programming: interrupts, latency, context, re-entrancy, thread and process models. Microcontroller and DSP architectures, I/O systems, timing and event management. Real-time kernels and services. Techniques for development, debugging and verification. Techniques for limited resource environments. Networking for distributed systems. | ||
ECSE 422 | Fault Tolerant Computing. | 3 |
Fault Tolerant Computing. Terms offered: this course is not currently offered. Introduction to fault-tolerant systems. Fault-tolerance techniques through hardware, software, information and time redundancy. Failure classification, failure semantics, failure masking. Exception handling: detection, recovery, masking and propagation, termination vs. resumption. Reliable storage, reliable communication. Process groups, synchronous and asynchronous group membership and broadcast services. Automatic redundancy management. Case studies. | ||
ECSE 424 | Human-Computer Interaction. | 3 |
Human-Computer Interaction. Terms offered: this course is not currently offered. The course highlights human-computer interaction strategies from an engineering perspective. Topics include user interfaces, novel paradigms in human-computer interaction, affordances, ecological interface design, ubiquitous computing and computer-supported cooperative work. Attention will be paid to issues of safety, usability, and performance. | ||
ECSE 425 | Computer Architecture. | 3 |
Computer Architecture. Terms offered: this course is not currently offered. Trends in technology. CISC vs. RISC architectures. Pipelining. Instruction level parallelism. Data and Control Hazards. Static prediction. Exceptions. Dependencies. Loop level paralleism. Dynamic scheduling, branch prediction. Branch target buffers. Superscalar and N-issue machines. VLIW. ILP techniques. Cache analysis and design. Interleaved and virtual memory. TLB translations and caches. | ||
ECSE 437 | Software Delivery. | 3 |
Software Delivery. Terms offered: this course is not currently offered. Design, development, and implementation of code integration processes, release pipelines, and deployment strategies. | ||
ECSE 446 | Realistic Image Synthesis. | 3 |
Realistic Image Synthesis. Terms offered: this course is not currently offered. Introduction to mathematical models of light transport and the numerical techniques used to generate realistic images in computer graphics. Offline (i.e., raytracing) and interactive (i.e., shader-based) techniques. | ||
ECSE 507 | Optimization and Optimal Control. | 3 |
Optimization and Optimal Control. Terms offered: this course is not currently offered. General introduction to optimization methods including steepest descent, conjugate gradient, Newton algorithms. Generalized matrix inverses and the least squared error problem. Introduction to constrained optimality; convexity and duality; interior point methods. Introduction to dynamic optimization; existence theory, relaxed controls, the Pontryagin Maximum Principle. Sufficiency of the Maximum Principle. | ||
ECSE 509 | Probability and Random Signals 2. | 3 |
Probability and Random Signals 2. Terms offered: this course is not currently offered. Multivariate Gaussian distributions; finite-dimensional mean-square estimation (multivariate case); principal components; introduction to random processes; weak stationarity: correlation functions, spectra, linear processing and estimation; Poisson processes and Markov chains: state processes, invariant distributions; stochastic simulation. | ||
ECSE 525 | Satellite Navigation Systems . | 4 |
Satellite Navigation Systems . Terms offered: this course is not currently offered. Fundamentals of satellite navigation. Overview of existing systems. Augmentation systems. Signal processing techniques, and receiver structures. Kalman Filtering techniques in satellite navigation. Selected applications of satellite navigation. | ||
ECSE 526 | Artificial Intelligence. 2 | 3 |
Artificial Intelligence. Terms offered: this course is not currently offered. Design principles of autonomous agents, agent architectures, machine learning, neural networks, genetic algorithms, and multi-agent collaboration. The course includes a term project that consists of designing and implementing software agents that collaborate and compete in a simulated environment. | ||
ECSE 532 | Computer Graphics. | 4 |
Computer Graphics. Terms offered: this course is not currently offered. 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. | ||
ECSE 551 | Machine Learning for Engineers. 3 | 4 |
Machine Learning for Engineers. Terms offered: this course is not currently offered. Introduction to machine learning: challenges and fundamental concepts. Supervised learning: Regression and Classification. Unsupervised learning. Curse of dimensionality: dimension reduction and feature selection. Error estimation and empirical validation. Emphasis on good methods and practices for deployment of real systems. | ||
ECSE 552 | Deep Learning. | 4 |
Deep Learning. Terms offered: this course is not currently offered. Overview of mathematical background and basics of machine learning, deep feedforward networks, regularization for deep learning, optimization for training deep learning models, convolutional neural networks, recurrent and recursive neural networks, practical considerations,applications of deep learning, recent models and architectures in deep learning. | ||
ECSE 554 | Applied Robotics . | 4 |
Applied Robotics . Terms offered: this course is not currently offered. The approach and the challenges in the key components of manipulators and locomotors: representations, kinematics, dynamics, rigid-body chains, redundant systems, underactuated systems, control, planning, and perception. Practical aspects of robotics: collisions, integrating sensory feedback, and development of real-time software. | ||
ECSE 556 | Machine Learning in Network Biology. | 4 |
Machine Learning in Network Biology. Terms offered: this course is not currently offered. Basics of machine learning; basics of molecular biology; network-guided machine learning in systems biology; network-guided bioinformatics analysis; analysis of biological networks; network module identification; global and local network alignment; construction of biological networks. | ||
ECSE 557 | Introduction to Ethics of Intelligent Systems. | 3 |
Introduction to Ethics of Intelligent Systems. Terms offered: this course is not currently offered. Ethics and social issues related to AI and robotic systems. Consideration for normative values (e.g., fairness) in the design. Ethics principles, data and privacy issues, ethics challenges in interaction and interface design. | ||
ECSE 561 | Automated Program Analysis and Testing. | 3 |
Automated Program Analysis and Testing. Terms offered: this course is not currently offered. Introduction to automated software analysis and testing techniques. Foundations of program analysis, software fault models, and test coverage models. Development and design of automated program analysis and test generation techniques. | ||
MATH 247 | Honours Applied Linear Algebra. | 3 |
Honours Applied Linear Algebra. Terms offered: this course is not currently offered. Matrix algebra, determinants, systems of linear equations. Abstract vector spaces, inner product spaces, Fourier series. Linear transformations and their matrix representations. Eigenvalues and eigenvectors, diagonalizable and defective matrices, positive definite and semidefinite matrices. Quadratic and Hermitian forms, generalized eigenvalue problems, simultaneous reduction of quadratic forms. Applications. |
- 1
COMP 350 Numerical Computing. and ECSE 343 Numerical Methods in Engineering. cannot both be taken
- 2
COMP 424 Artificial Intelligence. and ECSE 526 Artificial Intelligence. cannot both be taken
- 3
ECSE 551 Machine Learning for Engineers. and COMP 551 Applied Machine Learning. cannot both be taken
Complementary Studies (6 credits)
Group A - Impact of Technology on Society
3 credits from the following:
Course | Title | Credits |
---|---|---|
ANTH 212 | Anthropology of Development. | 3 |
Anthropology of Development. Terms offered: this course is not currently offered. Processes of developmental change, as they affect small communities in the Third World and in unindustrialized parts of developed countries. Problems of technological change, political integration, population growth, industrialization, urban growth, social services, infrastructure and economic dependency. | ||
BTEC 502 | Biotechnology Ethics and Society. | 3 |
Biotechnology Ethics and Society. Terms offered: Winter 2026 Examination of particular social and ethical challenges posed by modern biotechnology such as benefit sharing, informed consent in the research setting, access to medical care worldwide, environmental safety and biodiversity and the ethical challenges posed by patenting life. | ||
ECON 225 | Economics of the Environment. | 3 |
Economics of the Environment. Terms offered: this course is not currently offered. A study of the application of economic theory to questions of environmental policy. Particular attention will be given to the measurement and regulation of pollution, congestion and waste and other environmental aspects of specific economies. | ||
ECON 347 | Economics of Climate Change. | 3 |
Economics of Climate Change. Terms offered: this course is not currently offered. The course focuses on the economic implications of, and problems posed by, predictions of global warming due to anthropogenic emissions of greenhouse gases. Attention is given to economic policies such as carbon taxes and tradeable emission permits and to the problems of displacing fossil fuels with new energy technologies. | ||
ENVR 201 | Society, Environment and Sustainability. | 3 |
Society, Environment and Sustainability. Terms offered: this course is not currently offered. This course deals with how scientific-technological, socio-economic, political-institutional and behavioural factors mediate society-environment interactions. Issues discussed include population and resources; consumption, impacts and institutions; integrating environmental values in societal decision-making; and the challenges associated with, and strategies for, promoting sustainability. Case studies in various sectors and contexts are used. | ||
GEOG 200 | Geographical Perspectives: World Environmental Problems. | 3 |
Geographical Perspectives: World Environmental Problems. Terms offered: this course is not currently offered. Introduction to geography as the study of nature and human beings in a spatial context. An integrated approach to environmental systems and the human organization of them from the viewpoint of spatial relationships and processes. Special attention to environmental problems as a constraint upon Third World development. | ||
GEOG 203 | Environmental Systems. | 3 |
Environmental Systems. Terms offered: this course is not currently offered. An introduction to system-level interactions among climate, hydrology, soils and vegetation at the scale of drainage basins, including the study of the global geographical variability in these land-surface systems. The knowledge acquired is used to study the impact on the environment of various human activities such as deforestation and urbanisation. | ||
GEOG 205 | Global Change: Past, Present and Future. | 3 |
Global Change: Past, Present and Future. Terms offered: this course is not currently offered. An examination of global change, from the Quaternary Period to the present day involving changes in the physical geography of specific areas. Issues such as climatic change and land degradation will be discussed, with speculations on future environments. | ||
GEOG 302 | Environmental Management 1. | 3 |
Environmental Management 1. Terms offered: this course is not currently offered. An ecological analysis of the physical and biotic components of natural resource systems. Emphasis on scientific, technological and institutional aspects of environmental management. Study of the use of biological resources and of the impact of individual processes. | ||
MGPO 440 | Strategies for Sustainability. 1 | 3 |
Strategies for Sustainability. Terms offered: this course is not currently offered. This course explores the relationship between economic activity, management, and the natural environment. Using readings, discussions and cases, the course will explore the challenges that the goal of sustainable development poses for our existing notions of economic goals, production and consumption practices and the management of organizations. | ||
PHIL 343 | Biomedical Ethics. | 3 |
Biomedical Ethics. Terms offered: this course is not currently offered. An investigation of ethical issues as they arise in the practice of medicine (informed consent, e.g.) or in the application of medical technology (in vitro fertilization, euthanasia, e.g.) | ||
RELG 270 | Religious Ethics and the Environment. | 3 |
Religious Ethics and the Environment. Terms offered: this course is not currently offered. Environmental potential of various religious traditions and secular perspectives, including animal rights, ecofeminism, and deep ecology. | ||
SOCI 235 | Technology and Society. | 3 |
Technology and Society. Terms offered: this course is not currently offered. An examination of the extent to which technological developments impose constraints on ways of arranging social relationships in bureaucratic organizations and in the wider society: the compatibility of current social structures with the effective utilization of technology. | ||
SOCI 312 | Sociology of Work and Industry. | 3 |
Sociology of Work and Industry. Terms offered: this course is not currently offered. The development of the world of work from the rise of industrial capitalism to the postindustrial age. Responses of workers and managers to changing organizational, technological and economic realities. Interrelations between changing demands in the workplace and the functioning of the labour market. Canadian materials in comparative perspective. | ||
URBP 201 | Planning the 21st Century City. | 3 |
Planning the 21st Century City. Terms offered: this course is not currently offered. The study of how urban planners respond to the challenges posed by contemporary cities world-wide. Urban problems related to the environment, shelter, transport, human health, livelihoods and governance are addressed; innovative plans to improve cities and city life are analyzed. |
- 1
Note: Management courses have limited enrolment and registration dates. See Important Dates at http://www.mcgill.ca/importantdates.
Group B - Humanities and Social Sciences, Management Studies, and Law
3 credits at the 200 level or higher from the following departments:
Anthropology (ANTH)
Economics (any 200- or 300-level course excluding ECON 227 Economic Statistics. and ECON 337 Introductory Econometrics 1.)
History (HIST)
Philosophy (excluding PHIL 210 Introduction to Deductive Logic 1. and PHIL 310 Intermediate Logic.)
Political Science (POLI)
Psychology (excluding PSYC 204 Introduction to Psychological Statistics. and PSYC 305 Statistics for Experimental Design., but including PSYC 100 Introduction to Psychology.)
Religious Studies (RELG) (excluding courses that principally impart language skills, such as Sanskrit, Tibetan, Tamil, New Testament Greek, and Biblical Hebrew)1
School of Social Work (SWRK)
Sociology (excluding SOCI 350 Statistics in Social Research.)
OR 3 credits from the following:
Course | Title | Credits |
---|---|---|
ARCH 528 | History of Housing. | 3 |
History of Housing. Terms offered: this course is not currently offered. Indigenous housing both transient and permanent, from the standpoint of individual structure and pattern of settlements. The principal historic examples of houses including housing in the age of industrial revolution and contemporary housing. | ||
BUSA 465 | Technological Entrepreneurship. 2 | 3 |
Technological Entrepreneurship. Terms offered: this course is not currently offered. Concentrating on entrepreneurship and enterprise development, particular attention is given to the start-up, purchasing and management of small to medium-sized industrial firms. The focal point is in understanding the dilemmas faced by entrepreneurs, resolving them, developing a business plan and the maximum utilization of the financial, marketing and human resources that make for a successful operation. | ||
CLAS 203 | Greek Mythology. | 3 |
Greek Mythology. Terms offered: this course is not currently offered. A survey of the myths and legends of Ancient Greece. | ||
ENVR 203 | Knowledge, Ethics and Environment. | 3 |
Knowledge, Ethics and Environment. Terms offered: this course is not currently offered. Introduction to cultural perspectives on the environment: the influence of culture and cognition on perceptions of the natural world; conflicts in orders of knowledge (models, taxonomies, paradigms, theories, cosmologies), ethics (moral values, frameworks, dilemmas), and law (formal and customary, rights and obligations) regarding political dimensions of critical environments, resource use, and technologies. | ||
ENVR 400 | Environmental Thought. | 3 |
Environmental Thought. Terms offered: this course is not currently offered. Students work in interdisciplinary seminar groups on challenging philosophical, ethical, scientific and practical issues. They will explore cutting-edge ideas and grapple with the reconciliation of environmental imperatives and social, political and economic pragmatics. Activities include meeting practitioners, attending guest lectures, following directed readings, and organizing, leading and participating in seminars. | ||
FACC 220 | Law for Architects and Engineers. | 3 |
Law for Architects and Engineers. Terms offered: this course is not currently offered. Aspects of the law which affect architects and engineers. Definition and branches of law; Federal and Provincial jurisdiction, civil and criminal law and civil and common law; relevance of statutes; partnerships and companies; agreements; types of property, rights of ownership; successions and wills; expropriation; responsibility for negligence; servitudes/easements, privileges/liens, hypothecs/ mortgages; statutes of limitations; strict liability of architect, engineer and builder; patents, trade marks, industrial design and copyright; bankruptcy; labour law; general and expert evidence; court procedure and arbitration. | ||
FACC 500 | Technology Business Plan Design. | 3 |
Technology Business Plan Design. Terms offered: this course is not currently offered. This course combines several management functional areas such as marketing, financial, operations and strategy with the skills of creativity, engineering innovation, leadership and communications. Students learn how to design an effective and winning business plan around a technology or engineering project in small, medium or large enterprises. | ||
FACC 501 | Technology Business Plan Project. | 3 |
Technology Business Plan Project. Terms offered: this course is not currently offered. Students work in teams to develop a comprehensive business plan project based on a technological or engineering innovation while utilizing site visits. | ||
HISP 225 | Hispanic Civilization 1. | 3 |
Hispanic Civilization 1. Terms offered: this course is not currently offered. A survey of historical and cultural elements which constitute the background of the Hispanic world up to the 18th century; a survey of the pre-Columbian indigenous civilizations (Aztec, Maya and Inca) and the conquest of America. | ||
HISP 226 | Hispanic Civilization 2. | 3 |
Hispanic Civilization 2. Terms offered: this course is not currently offered. A survey of the constitution of the ideological and political structures of the Spanish Empire in both Europe and America until the Wars of Independence; a survey of the culture and history of the Hispanic people from the early 19th Century to the present. | ||
INDR 294 | Introduction to Labour-Management Relations. 2 | 3 |
Introduction to Labour-Management Relations. Terms offered: this course is not currently offered. An introduction to labour-management relations, the structure, function and government of labour unions, labour legislation, the collective bargaining process, and the public interest in industrial relations. | ||
INTG 215 | Entrepreneurship Essentials for Non-Management Students. 3 | 3 |
Entrepreneurship Essentials for Non-Management Students. Terms offered: this course is not currently offered. Fundamental concepts, theories, and practices of entrepreneurship. Focus on identifying opportunities, developing business ideas, and understanding key components of starting and managing a business. | ||
MATH 338 | History and Philosophy of Mathematics. | 3 |
History and Philosophy of Mathematics. Terms offered: this course is not currently offered. Egyptian, Babylonian, Greek, Indian and Arab contributions to mathematics are studied together with some modern developments they give rise to, for example, the problem of trisecting the angle. European mathematics from the Renaissance to the 18th century is discussed, culminating in the discovery of the infinitesimal and integral calculus by Newton and Leibnitz. Demonstration of how mathematics was done in past centuries, and involves the practice of mathematics, including detailed calculations, arguments based on geometric reasoning, and proofs. | ||
MGCR 222 | Introduction to Organizational Behaviour. 2 | 3 |
Introduction to Organizational Behaviour. Terms offered: Summer 2025 Individual motivation and communication style; group dynamics as related to problem solving and decision making, leadership style, work structuring and the larger environment. Interdependence of individual, group and organization task and structure. | ||
MGCR 352 | Principles of Marketing. 2 | 3 |
Principles of Marketing. Terms offered: Summer 2025 Introduction to marketing principles, focusing on problem solving and decision making. Topics include: the marketing concept; marketing strategies; buyer behaviour; Canadian demographics; internal and external constraints; product; promotion; distribution; price. Lectures, text material and case studies. | ||
ORGB 321 | Leadership. 2 | 3 |
Leadership. Terms offered: Summer 2025 Leadership theories provide students with opportunities to assess and work on improving their leadership skills. Topics include: the ability to know oneself as a leader, to formulate a vision, to have the courage to lead, to lead creatively, and to lead effectively with others. | ||
ORGB 423 | Human Resources Management. 2 | 3 |
Human Resources Management. Terms offered: this course is not currently offered. Issues involved in personnel administration. Topics include: human resource planning, job analysis, recruitment and selection, training and development, performance appraisal, organization development and change, issues in compensation and benefits, and labour-management relations. |
- 1
If you are uncertain whether or not a course principally imparts language skills, please see an adviser in the McGill Engineering Student Centre (Frank Dawson Adams Building, Room 22) or email an adviser.
- 2
Note: Management courses have limited enrolment and registration dates. See Important Dates at http://www.mcgill.ca/importantdates.
- 3
INTG 215 Entrepreneurship Essentials for Non-Management Students. is not open to students who have taken INTG 201 Integrated Management Essentials 1. and INTG 202 Integrated Management Essentials 2..
Note regarding language courses: Language courses are not accepted to satisfy the Complementary Studies Group B requirement, effective for students who entered the program as of Fall 2017.
Elective Course (3 credits)
One 3-credit course at the 200-level or higher from any department at McGill, approved by the Undergraduate Programs Office in the Department of Electrical and Computer Engineering.