# CO Courses

# CO 227 – Introduction to Optimization (Non-Specialist Level)

A broad introduction to the field of optimization, discussing applications, and solution techniques. Mathematical models for real life applications; algorithms: Simplex, Cutting Plane, and Branch & Bound; linear programming duality. [Offered: F,W]

# CO 250 – 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]

# CO 255 – Introduction to Optimization (Advanced Level)

Linear optimization: feasibility theorems, duality, the simplex algorithm. Discrete optimization: integer linear programming, cutting planes, network flows. Continuous optimization: local and global optima, feasible directions, convexity, necessary optimality conditions.

# CO 327 – Deterministic OR Models (Non-Specialist Level)

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: W,S]

# CO 330 – Combinatorial Enumeration

The algebra of formal power series. The combinatorics of the ordinary and exponential generating series. Lagrange's Implicit Function Theorem, applications to the enumeration of permutations, functions, trees and graphs. Integer partitions, geometric methods, enumerating linear transformations. Introduction to the pattern algebra, applications to the enumeration of strings. Lattice paths, Wiener-Hopf factorization. Enumeration under symmetries. [Offered: F]

# CO 331 – Coding Theory

A first course in error-correcting codes. Linear block codes, Hamming-Golay codes and multiple error-correcting BCH codes are studied. Various encoding and decoding schemes are considered. [Offered: W]

# CO 342 – Introduction to Graph Theory

An introduction to some of the key topics in graph theory: connectivity, planarity and matchings. Connectivity: Menger's Theorem, 3-connected graphs. Planarity: Kuratowski's Theorem, uniqueness of planar embeddings. Matchings: Review of Konig's Theorem, Tutte's Theorem. [Offered: F,S]

# CO 351 – Network Flow Theory

Review of linear programming. Shortest path problems. The max-flow min-cut theorem and applications. Minimum cost flow problems. Network simplex and primal-dual algorithms. Applications to problems of transportation, distribution, job assignments and critical-path planning. [Offered: F,S]

# CO 352 – Computational Optimization

A first course in computational optimization. Linear optimization, the simplex method, implementation issues, duality theory. Introduction to computational discrete and continuous optimization. [Offered: F,S]

# CO 353 – 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.

# CO 355 – Mathematical Optimization

Linear optimization: feasibility theorems, duality, the simplex algorithm. Discrete optimization: integer linear programming, cutting planes, network flows. Continuous optimization: local and global optima, feasible directions, convexity, necessary optimality conditions.

# CO 367 – 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. [Offered: F]

# CO 370 – 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]

# CO 372 – Portfolio Optimization Models

Computational optimization methodologies underlying portfolio problems in finance. Computational linear algebra, determining derivatives, quadratic and nonlinear optimization. The efficient frontier problem. Applications of optimization in finance such as volatility surface determination and global minimization for Value-at-Risk. [Offered: F,W]

# CO 380 – Mathematical Discovery and Invention

A course in problem solving. 100 problems are studied. Problems are taken mainly from the elementary parts of algebra, geometry, number theory, combinatorics, and probability.

# CO 430 – Algebraic Enumeration

The algebra of Laurent series and Lagrange's Implicit Function Theorem, enumerative theory of planar embeddings (maps). The ring of symmetric functions: Schur functions, orthogonal bases, inner product, Young tableaux and plane partitions. Non-intersecting paths, sieve methods, partially ordered sets and Mobius inversion, strings with forbidden substrings, the Cartier-Foata commutation monoid. Introduction to the group algebra of the symmetric group, enumerative applications of sl(2). [Offered: W]

# CO 434 – Combinatorial Designs

Pairwise orthogonal latin squares. Transversal designs and finite planes. Balanced incomplete block designs, group divisible designs and pairwise balanced designs. Symmetric designs and Hadamard matrices. Recursive constructions. Wilson's fundamental construction.

# CO 439 – Topics in Combinatorics

An undergraduate seminar in combinatorics. The primary objective is to study current work in specific areas of combinatorics. Course content may vary from term to term.

# CO 440 – Topics in Graph Theory

An in-depth study of one or two topics in graph theory. Course content may vary from term to term. Topics may include planar graphs, extremal graph theory, directed graphs, enumeration, algebraic graph theory, probabilistic graph theory, connectivity, graph embedding, colouring problems.

# CO 442 – Graph Theory

Connectivity (Menger's Theorem, ear decomposition, and Tutte's Wheels Theorem) and matchings (Hall's Theorem and Tutte's Theorem). Flows: integer and group-valued flows, the flow polynomial, the 6-flow theorem. Ramsey theory: upper and lower bounds, explicit constructions. External graph theory: Turan's theorem, the Erdos-Gallai theorem. Probabilistic methods. [Offered: F]

# CO 444 – Algebraic Graph Theory

An introduction to the methods of and some interesting current topics in algebraic graph theory. Topics covered will include vertex-transitive graphs, eigenvalue methods, strongly regular graphs and may include graph homomorphisms, Laplacians or knot and link invariants.

# CO 446 – Matroid Theory

This is an introductory course on matroid theory, with particular emphasis on graphic matroids and on topics that are applicable to graph theory. The topics include: matroid intersection and partition, graphic matroids, matroid connectivity, regular matroids, and representable matroids. Applications include: matching, disjoint paths, disjoint spanning trees, the 8-flow theorem for graphs, planarity testing, and recognizing totally unimodular matrices. [Offered: S]

# CO 450 – Combinatorial Optimization

Characterizations of optimal solutions and efficient algorithms for optimization problems over discrete structures. Topics include network flows, optimal matchings, T-joins and postman tours, matroid optimization. [Offered: F]

# CO 452 – Integer Programming

Formulation of problems as integer linear programs. Solution by branch-and-bound and cutting plane algorithms. Introduction to the theory of valid inequalities and polyhedral combinatorics.

# CO 453 – Network Design

Network design under constraints on cost, capacity, distance and reliability. Approximation algorithms. The set covering problem. Tree solutions: spanning trees, Steiner trees, Gomory-Hu trees, optimum communication spanning trees. Connectivity, survivability and reliability. Network design with concentrators: the terminal layout problem. Location problems on networks.

# CO 454 – Scheduling

An overview of practical optimization problems that can be posed as scheduling problems. Characterizations of optimal schedules. Simple and efficient combinatorial algorithms for easy problems. A brief overview of computational complexity, definition of P, NP, NP-Complete and NP-hard. Integer programming formulations, the Traveling Salesman Problem, heuristics, dynamic programming and branch-and-bound approaches. Polynomial-time approximation algorithms. [Offered: S]

# CO 456 – Introduction to Game Theory

A broad introduction to game theory and its applications to the modeling of competition and cooperation in business, economics and society. Two-person games in strategic form and Nash equilibria. Extensive form games, including multi-stage games. Coalition games and the core. Bayesian games, mechanism design and auctions.

# CO 459 – Topics in Optimization

An undergraduate seminar in optimization. The primary objective is to study recent work in specific areas of optimization. Course content may vary from term to term.

# CO 463 – Convex Optimization and Analysis

An introduction to the modern theory of convex programming, its extensions and applications. Structure of convex sets, separation and support, subgradient calculus for convex functions, Fenchel conjugacy and duality, Lagrange multipliers. Ellipsoid method for convex optimization. [Offered: W]

# CO 466 – Continuous Optimization

Numerical algorithms for nonlinear optimization. Newton, variable-metric, quasi-Newton and conjugate gradient methods. Obtaining derivatives. Convexity. Trust region methods. Constrained optimization including optimality conditions, sequential quadratic programming, interior point and active set strategies.

# CO 471 – Semidefinite Optimization

Optimization over convex sets described as the intersection of the set of symmetric, positive semidefinite matrices with affine spaces. Formulations of problems from combinatorial optimization, graph theory, number theory, probability and statistics, engineering design, and control theory. Theoretical and practical consequences of these formulations. Duality theory and algorithms.

# CO 480 – History of Mathematics

An in-depth examination of the origins of mathematics, beginning with examples of Babylonian mathematics. Topics may include Pythagorean triples, solution of equations, estimation of pi, duplication of the cube, trisection of an angle, the Fibonacci sequence, the origins of calculus.

# CO 481 – Introduction to Quantum Information Processing

Basics of computational complexity; basics of quantum information; quantum phenomena; quantum circuits and universality; relationship between quantum and classical complexity classes; simple quantum algorithms; quantum Fourier transform; Shor factoring algorithm; Grover search algorithm; physical realization of quantum computation; error-correction and fault-tolerance; quantum key distribution. [Offered: W]

# CO 485 – The Mathematics of Public-Key Cryptography

An in-depth study of public-key cryptography. Number-theoretic problems: prime generation, integer factorization, discrete logarithms. Public-key encryption, digital signatures, key establishment, secret sharing. Proofs of security. [Offered: F]

# CO 487 – 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]

# CO 499 – Reading in Combinatorics and Optimization

Reading course as announced by the department.

# CO 601 – Fundamentals of Enumerative Combinatorics

Elementary counting, bijections. Sets, weights, decompositions. The ordinary generating series, sum, product, composition and differentiation lemmas; formal use in combinatorial identities. The algebra of formal power series. Strings on a finite alphabet. Unique factorization of strings. Pattern and noncommutative methods. The Maximal Decomposition Theorem. Rational and algebraic generating series, linear recurrence equations. Integer partitions. Functional equation. Ferrers graph, geometric decompositions, Euler's Pentagonal Number Theorem. Vector spaces over GF(q), linear transformations, finite forms of partition theorems, Gaussian coefficients. Inversions in permutations. The exponential generating series, rule of sum and product, composition and differentiation lemmas. Disjoint cycles and permutations, functions, set partitions, graphs. Lagrange's Implicit Function Theorem. Lattice paths, Wiener-Hopf Factorization. Lattice polygons, polyominos, trees and functions. Formal use in combinatorial identities. Enumeration under group action, Orbit-Stabilizer Theorem, Burnside's Lemma, Polya's Theorem. Necklaces, abstract trees and trees embedded in the plane.

# CO 602 – 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.

# CO 630 – Algebraic Enumeration

The algebra of formal Laurent series. Multivariate ordinary generating functions and exponential generating functions. The Lagrange Implicit Function Theorem, the MacMahon Master Theorem. Enumeration of planar triangulations. The Transfer Matrix method. Sieve methods, Inclusion/Exclusion, Möbius inversion. Pólya Enumeration, Enumeration of Trees. Basic hypergeometric series, q-analogues, Rogers-Ramanujan identities. Asymptotic methods.

# CO 631 – Symmetric Functions

The ring of symmetric functions, standard bases, the Hall inner project. Young tableaux. The Robinson-Schensted-Knuth correspondence, the hood-length formula, the Jacobi-Trudi formula, the Pieri rule, the Littlewood-Richardson rule. Representation theory of the symmetric groups. Enumeration of plane partitions. Enumeration of maps on surfaces. Other topics.

# CO 634 – Combinatorial Designs

Pairwise orthogonal latin squares. Transversal designs and finite planes. Balanced incomplete block designs, group divisible designs and pairwise balanced designs. Symmetric designs and Hadamard matrices. Recursive constructions. Wilson's fundamental construction.

# CO 639 – Topics in Combinatorics

# CO 640 – Topics in Graph Theory

# CO 642 – Graph Theory

Colouring: Brooks' Theorem and Vizing's Theorem. Flows: integer and group-valued flows, the flow polynomial, the 6-flow theorem. Extremal graph theory; Ramsey's theorem, Turan's theorem, Mader's theorem on graphs with no n-clique-minor. Probabilistic methods: Lower bounds for Ramsey numbers, graphs with large girth and chromatic number.

# CO 644 – Algebraic Graph Theory

Automorphisms. Cayley graphs and their properties. Arc and distance transitive graphs. Generalised polygons. homomorphisms and covers. Adjacency and incidence matrices. Eigenvectors of graphs. Quotients. Interlacing. Strongly regular graphs. Line graphs and graphs with least eigenvalue -2. Expanders. Shannon capacity.

# CO 646 – Matroid Theory

This is an introductory course on matroid theory, with particular emphasis on graphic matroids and on topics that are applicable to graph theory. The topics include: matroid intersection and partition, graphic matroids, matroid connectivity, regular matroids, and representable matroids. Applications include: matching, disjoint spanning trees, the 8-flow theorem for graphs, planarity testing, and recognizing totally unimodular matrices.

# CO 650 – Combinatorial Optimization

Characterizations of optimalsolutions and efficient algorithms for optimization problems over discrete structures. Topics include network flows, optimal matchings, T-joins and postman tours, matroid optimization.

# CO 652 – Integer Programming

Formulation of problems as integer linear programs. Solution by branch-and-bound and cutting plane algorithms. Introduction to the theory of valid inequalities and polyhedral combinatorics.

# CO 663 – Convex Optimization and Analysis

An introduction to the modern theory of convex programming, its extensions and applications. Structure of convex sets, separation and support, subgradient calculus for convex functions, Fenchel conjugacy and duality, Lagrange multipliers. Ellipsoid method for convex optimization.

# CO 664 – Quadratic Programming

A course on theory and solution algorithms for the minimization of a convex quadratic function subject to linear constraints. Karush-Kuhn-Tucker conditions, duality theory. Active set solution algorithms and their parametric extensions. Quadratic programmes as linear complementarity problems. Applications in portfolio optimization and structural analysis.

# CO 666 – Continuous Optimization

Numerical algorithms for nonlinear optimization. Newton, variable-metric, quasi-Newton and conjugate gradient methods. Obtaining derivatives. Convexity. Trust region methods. Constrained optimization including optimality conditions, sequential quadratic programming, interior point and active set strategies.

# CO 671 – Semidefinite Optimization

Optimization over convex sets described as the intersections of the set of symmetric, positive semidefinite matrices with affine spaces. Formulations of problems from combinatorial optimization, graph theory, number theory, probability and statistics, engineering design and control theory. Theoretical and practical consequences of these formulations. Duality theory and algorithms.

# CO 681 – Quantum Information Processing

Review of basics of quantum information and computational complexity; Simple quantum algorithms; Quantum Fourier transform and Shor factoring algorithm: Amplitude amplification, Grover search algorithm and its optimality; Completely positive trace-preserving maps and Kraus representation; Non-locality and communication complexity; Physical realizations of quantum computation: requirements and examples; Quantum error-correction, including CSS codes, and elements of fault-tolerant computation; Quantum cryptography; Security proofs of quantum key distribution protocols; Quantum proof systems. Familiarity with theoretical computer science or quantum mechanics will also be an asset, though most students will not be familiar with both.

# CO 685 – The Mathematics of Public-Key Cryptography

An in-depth study of public-key cryptography, including: number-theoretic problems - prime generation, integer factorization, discrete logarithms; public-key encryption; digital signatures; key establishment; secret sharing; and security definitions and proofs.

# CO 687 – Applied Cryptography

A broad introduction to cryptography, highlighting the major developments of the past twenty years, including symmetric ciphers, hash functions and data integrity, public-key encryption and digital signatures, key establishment, and key management. Applications to internet security, computer security, communications security, and electronic commerce will be studied.

# CO 690 – Literature and Research Studies

# CO 730 – Asymptotic Enumeration

Methods of obtaining asymptotic estimates for sums arising in enumeration. Application to Bell numbers, the distribution of balls into cells, and random graphs. Methods for obtaining asymptotic estimates for the coefficients of generating functions. Application to random planar graph problems and to unimodality problems.

# CO 734 – Topics in Combinatorial Design

# CO 738 – Probabilistic Methods in Discrete Mathematics

The probabilitistic method proves the existence of a combinatorial structure by showing a random element in an appropriate probability space has the desired properties with positive probability. The course will introduce the basic techniques and give applications in graph theory, combinatorics, discrete optimization, theoretical CS. In particular, some of the following will be considered: linearity of expectation; alterations; the second moment method; bounding of large deviations; the local lemma; correlation inequalities; martingales and tight concentration; discrepancy; derandomization.

# CO 739 – Topics in Combinatorics

# CO 743 – Directed Graphs and Applications

An introduction to the concepts of directed graphs, problems about directed circuits and directed cuts, and minimax equalities relating these and other graphical objects.

# CO 745 – Graph Theory Algorithms

A general study of algorithms for the solutions of problems in graph theory. Included are algorithms for graph isomorphism, planarity, connectedness, chromatic number, spanning trees, circuits and many others.

# CO 749 – Topics in Graph Theory

# CO 750 – Topics in Combinatorial Optimization

# CO 751 – Topics in Matroid Theory

# CO 754 – Approximation Algorithms in Combinatorial Optimization

The course studies some of the successful paradigms for designing approximation algorithms and for proving approximation guaranteees, such as the greedy method, formulating and solving linear programming relaxations, the primal-dual method, randomized rounding, semidefinite programming relaxations, approximation of metrics. Also, the PCP theorem, and its application to the hardness of approximating specific problems, e.g., set covering and shortest lattice vector.

# CO 759 – Topics in Discrete Optimization

# CO 765 – Mathematical Programming

# CO 769 – Topics in Continuous Optimization

# CO 771 – Mathematical Operations Research

# CO 778 – Portfolio Optimization

Basic optimization: quadratic minimization subject to leanear equality constraints. Effecient portfolios: the efficient frontier, the capital market line, Sharpe ratios and threshold returns. Practical portfolio optimization: short sales restrictions target portfolios, transactions costs. Quadratic programming theory. Special purpose quadratic programming algorithms for portfolio optimization: today's large investment firms expect to solve problems with at least 1000 assets, transactions costs and various side constraints in just a few minutes of computation time. This requires very specialized QP algorithms. An overview of such algorithms will be presented with computational results from commercial problems. The efficient frontier, the capital market line, Sharpe ratios and threshold returns in practice.

# CO 779 – Topics in Operations Research

# CO 781 – Topics in Quantum Information

# CO 785 – Algorithmic Number Theory

Fundamental problems of elementary and algebraic number theory from an algorithmic and computational complexity point of view with emphasis placed on analysis of algorithms. Topics include basic arithmetic algorithms; computation over finite fields; primality testing; algorithms for integer factorization; algorithms in number fields.