# CM Courses

# CM 271 – Introduction to Computational Mathematics

A rigorous introduction to the field of computational mathematics. The focus is on the interplay between continuous models and their solution via discrete processes. Topics include: pitfalls in computation, solution of linear systems, interpolation, discrete Fourier transforms and numerical integration. Applications are used as motivation.

# CM 339 – Algorithms

The study of efficient algorithms and effective algorithm design techniques. Program design with emphasis on pragmatic and mathematical aspects of program efficiency. Topics include divide and conquer algorithms, recurrences, greedy algorithms, dynamic programming, graph search and backtrack, problems without algorithms, NP-completeness and its implications.

# CM 340 – Introduction to Optimization

A broad introduction to the field of optimization, discussing applications and solution techniques. Mathematical models for real life applications; algorithms; aspects of computational complexity; geometry; linear programming duality, focusing on the development of algorithms. [Offered: F,W,S]

# CM 352 – Computational Methods for Differential Equations

Modeling of systems which lead to differential equations (examples include vibrations, population dynamics, and mixing processes). Scalar first order differential equations, second-order differential equations, systems of differential equations. Stability and qualitative analysis. Implicit and explicit time-stepping. Comparison of different methods. Stiffness. Linearization and the role of the Jacobian. [Offered: W]

# CM 353 – Computational Modeling of Cellular Systems

An introduction to dynamic mathematical modeling of cellular processes. The emphasis is on using computational tools to investigate differential equation-based models. A variety of cellular phenomena are discussed, including ion pumps, membrane potentials, intercellular communication, genetic networks, regulation of metabolic pathways, and signal transduction.

# CM 361 – Computational Statistics and Data Analysis

Approximation and optimization of noisy functions. Simulation from univariate and multivariate distributions, multivariate normal distribution, mixture distributions and introduction to Markov Monte Carlo. Introduction to supervised statistical learning including discrimination methods. [Offered: F]

# CM 370 – Chaos and Fractals

The mathematics of iterated functions, properties of discrete dynamical systems, Mandelbrot and Julia sets.

# CM 375 – Computational Linear Algebra

Basic concepts and implementation of numerical linear algebra techniques and their use in solving application problems. Special methods for solving linear systems having special features. Direct methods: symmetric, positive definite, band, general sparse structures, ordering methods. Iterative methods: Jacobi, Gauss-Seidel, SOR, conjugate gradient. Computing and using orthogonal factorizations of matrices. QR and SVD methods for solving least squares problems. Eigenvalue and singular value decompositions. Computation and uses of these decompositions in practice.

# CM 432 – Applied Cryptography

A broad introduction to cryptography, highlighting the major developments of the past twenty years. Symmetric ciphers, hash functions and data integrity, public-key encryption and digital signatures, key establishment, key management. Applications to Internet security, computer security, communications security, and electronic commerce. [Offered: W]

# CM 433 – Introduction to Symbolic Computation

An introduction to the use of computers for symbolic mathematical computation, involving traditional mathematical computations such as solving linear equations (exactly), analytic differentiation and integration of functions, and analytic solution of differential equations.

# CM 434 – Techniques in Computational Number Theory

An introduction to: integer factorization, elliptic curves methods, primality testing, fast integer arithmetic, fast Fourier transforms and quantum computing. This course is taught with a philosophy that encourages experimentation.

# CM 441 – Computational Discrete Optimization

Formulations of combinatorial optimization problems, greedy algorithms, dynamic programming, branch-and-bound, cutting plane algorithms, decomposition techniques in integer programming, approximation algorithms.

# CM 442 – Nonlinear Optimization

A course on the fundamentals of nonlinear optimization, including both the mathematical and the computational aspects. Necessary and sufficient optimality conditions for unconstrained and constrained problems. Convexity and its applications. Computational techniques and their analysis.

# CM 443 – Deterministic OR Models

An applications-oriented course that illustrates how various mathematical models and methods of optimization can be used to solve problems arising in business, industry and science. [Offered: F,W]

# CM 452 – Computational Methods for Partial Differential Equations

This course studies basic methods for the numerical solution of partial differential equations. Emphasis is placed on regarding the discretized equations as discrete models of the system being studied. Basic discretization methods on structured and unstructured grids. Boundary conditions. Implicit/explicit timestepping. Stability, consistency and convergence. Non-conservative versus conservative systems. Nonlinearities. [Offered: F]

# CM 454 – Applications of Computational Differential Equations

This course will present two major applications of differential equations based modeling, and focus on the specific problems encountered in each application area. The areas may vary from year to year. Students will gain some understanding of the steps involved in carrying out a realistic numerical modelling exercise. Possible areas include: Fluid Dynamics, Finance, Control, Acoustics, Fate and Transport of Environmental Contaminants.

# CM 461 – Computational Inference

Introduction to and application of computational methods in statistical inference. Monte Carlo evaluation of statistical procedures, exploration of the likelihood function through graphical and optimization techniques including EM. Bootstrapping, Markov Chain Monte Carlo, and other computationally intensive methods. [Offered: W]

# CM 462 – Data Visualization

Visualization of high dimensional data including interactive methods directed at exploration and assessment of structure and dependencies in data. Methods for finding groups in data including traditional and modern methods of cluster analysis. Dimension reduction methods including multi-dimensional scaling, nonlinear and other methods. [Offered: F]

# CM 463 – Statistical Learning - Classification

Given known group membership, methods which learn from data how to classify objects into the groups are treated. Review of likelihood and posterior based discrimination. Main topics include logistic regression, neural networks, tree-based methods and nearest neighbour methods. Model assessment, training and tuning. [Offered: F]

# CM 464 – Statistical Learning - Function Estimation

Methods for finding surfaces in high dimensions from incomplete or noisy functional information. Both data adaptive and methods based on fixed parametric structure will be treated. Model assessment, training and tuning. [Offered: W]

# CM 473 – Medical Image Processing

An introduction to computational problems in medical imaging. Sources of medical images (MRI, CT, ultrasound, PET) as well as reconstruction methods for MRI and CT. Image manipulation and enhancement such as denoising and deblurring. Patient motion correction and optimal image alignment. Tissue classification and organ delineation using image topology.

# CM 476 – Numeric Computation for Financial Modeling

The interaction of financial models, numerical methods, and computing environments. Basic computational aspects of option pricing and hedging. Numerical methods for stochastic differential equations, strong and weak convergence. Generating correlated random numbers. Time-stepping methods. Finite difference methods for the Black-Scholes equation. Discretization, stability, convergence. Methods for portfolio optimization, effect of data errors on portfolio weights.

# CM 498 – Advanced Topics in Computational Mathematics

See the course offerings list on the Computational Mathematics website for topics available.

# CM 670 – Numerical Analysis

Introduction to basic algorithms and techniques for numerical computing. Error analysis, interpolation (including splines), numerical differentiation and integration, numerical linear algebra (including methods for linear systems, eigenvalue problems, and the singular value decomposition), root finding for nonlinear equations and systems, numerical ordinary differential equations, and approximation methods (including least squares, orthogonal polynomials, and Fourier transforms).

# CM 730 – Introduction to Symbolic Computation

An introduction to the use of computers for symbolic mathematical computation, involving traditional mathematical computations such as solving linear equations (exactly), analytic differentiation and integration of functions, and analytic solution of differential equations.

# CM 740 – Fundamentals of Optimization

Linear Optimization: Farkas' Lemma, Duality, Simplex Method,Geometry Of Polyhedra. Combinatorial Optimization: lntegrality Of Polyheqra, Total Unimodularity, Flow Problems, Weighted Bipartite Matching. Continuous Optimization: Convex Sets, Separation Theorem, Convex Functions, Analytic Characterizations Of Convexity, Karush-Kuhn-Tucker Theorem.

# CM 750 – Numerical Solution of Partial Differential Equations

Discretization methods for partial differential equations, including finite difference, finite volume and finite element methods. Application to elliptic, hyperbolic and parabolic equations. Convergence and stability issues, properties of discrete equations, and treatment of non-linearities. Stiffness matrix assembly and use of sparse matric software. Students should have completed a course in numerical computation at the undergraduate level.

# CM 761 – Computational Inference

Introduction to and application of computational methods in statistical inference. Monte Carlo evaluation of statistical procedures, exploration of the likelihood function through graphical and optimization techniques including EM. Bootstrapping, Markov Chain Monte Carlo, and other computationally intensive methods.

# CM 762 – Data Visualization

Visualization of high dimensional data including interactive methods directed at exploration and assessment of structure and dependencies in data. Methods for finding groups in data including traditional and modern methods of cluster analysis. Dimension reduction methods including multi-dimensional scaling, nonlinear and other methods.

# CM 763 – Statistical Learning - Classification

Given known group membership, methods which learn from data how to classify objects into the groups are treated. Review of likelihood and posterior based discrimination. Main topics include logistic regression, neural networks, tree-based methods and nearest neighbour methods. Model assessment, training and tuning.

# CM 764 – Statistical Learning - Function Estimation

Methods for finding surfaces in high dimensions from incomplete or noisy functional information. Both data adaptive and methods based on fixed parametric structure will be treated. Model assessment, training and tuning.

# CM 770 – Numerical Analysis

Introduction to basic algorithms and techniques for numerical computing. Error analysis, interpolation (including splines), numerical differentiation and integration, numerical linear algebra (including methods for linear systems, eigenvalue problems, and the singular value decomposition), root finding for nonlinear equations and systems, numerical ordinary differential equations, and approximation methods (including least squares, orthogonal polynomials, and Fourier transforms).