CS 740 Database Engineering (0.50LEC,TUT, Course ID: 011293

Project-oriented course that covers the implementation of relational database management systems. Topics include database system architecture; managing primary and secondary storage; query processing; metadata and catalog management; language processing; query optimization and plan generation; concurrency; failures and recovery; extensibility; client-server interactions.

CS 741 Non-Traditional Databases (0.50) LEC, Course ID: 011294

Management of non-relational databases, such as multimedia databases, text databases, temporal databases or spatial databases. Each offering will target a specific type of data. Topics include rationale for and common applications of non-relational database management; systems and standards; the abstract data model; data definition and manipulation languages; data storage and indexing; query processing and optimization; updates and transaction management.

Antirequisite: CS 748O, 748S

CS 742 Parallel and Distributed Database Systems (0.50) LEC, Course ID: 000650

Algorithms and architectures used in parallel database management systems, with a focus on relational systems. Topics include system architectures; parallel and distributed query processing; federated dtabase systems; distributed transactions; data replication.

Antirequisite: CS 748T, 748Q

CS 743 Principles of Database Management and Use (0.50) LEC, Course ID: 013602

An overview of relational databases and how they are used; exposure to relational database technology. Fundamentals of transactions. Database views. Introductions to two or three alternative data models and systems, such as those used for structured text, spatial data, multimedia data, and information retrieval. Introduction to several current topics in database research, such as warehousing, data mining, managing data streams, data cleaning, data integration, and distributed databases.

CS 744 Advanced Compiler Design (0.50) LEC, Course ID: 000655

Project-oriented course that covers optimizing compilers and the implementation of advanced programming language features. Topics include intermediate representations; data-flow, dependence, and alias analysis; optimizing transforms, register allocation, instruction scheduling; memory management, garbage collection, threads, concurrency; single and multiple inheritance, generics, templates, type inference.

CS 745 Computer-Aided Verification (0.50) LEC, Course ID: 011295

(Cross-listed with ECE 725)

Application of formal methods to the verification of computer-based systems. Algebraic and automata preliminaries. Temporal logic and model checking. Decision procedures. Mechanized theorem proving. Advanced topics chosen by the instructor.

CS 746 Software Architecture (0.50) LEC, Course ID: 000656

A project-oriented course that covers the concepts in software architecture. Topics include basic concepts (components and connectors, rationale, views, architectural diagrams, team implictions, evolution, size considerations), theory underlying softeware architecture, extraction of architecture from implementation artifacts, architecture of web-based and enterprise systems, clustering of subsystems, visualization approaches to software architecture, comprehension and cognitive aspects of software architecture.

CS 755 System and Network Architectures and Implementation (0.50LEC, Course ID: 013603

Distributed, multi-user applications are designed and implemented using many underlying technologies that must be coordinated to provide important features such as robustness, scalability, manageability, ubiquitous access, privacy, security, authentication, and role-based access control, to name only a few. The network supporting the application may be crucial to its successful implementation. The application logic itself is likely implemented in a number of languages and programming environments. Students will be provided with an advanced overview of current networking and distributed systems topics, and will apply it to case studies drawn form consumer internet applications, enterprise systems, and medical and healthcare systems.

Instructor Consent Required

CS 758 Cryptography/Network Security (0.50) LEC, Course ID: 011590

Cryptographic protocols and their application to secure communication, especially in a network setting. Identification and entity authentication; protocols for key establishment, transport, agreement and maintenance; secret sharing, broadcast encryption, tracing schemes; certificates, public-key infrastructure, PGP.

CS 761 Randomized Algorithms (0.50) LEC, Course ID: 011296

Introduction to the design and analysis of algorithms that make use of randomization. Topics include review of basic probabiloity and introduction to randomized algorithms; game theoretic techniques; uses of Markov and Chebyshev inequalities; tail inequalities; Markov chains and random walks; algebraic techniques; data structures and graph algorithms.

CS 762 Graph-Theoretic Algorithms (0.50) LEC, Course ID: Unknown

To give the student further exposure to the design, analysis, and application of algorithms for problems defined on graphs.

CS 763 Computational Geometry (0.50) LEC, Course ID: 011297

Introduction to the design, analysis and application of algorithms for geometric problems. Topics include convex hull algorithms in two and three dimensions; Voronoi diagrams, Delaunay triangulations, and their applications; linear programming in low dimensions; line segments, planar subdivision, and polygons; range searching.

Antirequisite: CS 760M

CS 764 Computational Complexity (0.50) LEC, Course ID: 011298

Further exposure to the classification of problems based on their computational requirements and to mathematical tools designed to explore the structural consequences of such classifications. Topics include relativization, alternation, provably intractable problems, feasible parallel computation; fixed-parameter tractability and the W-hierarchy; Kolmogorov complexity, including algorithmic and algorithmic prefix complexity and their applications.

Antirequisite: CS 664

CS 765 Algorithmic Number Theory (0.50) LEC, Course ID: 011299

(Cross-listed with CO 785)

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.

CS 766 Theory of Quantum Information (0.50) LEC, Course ID: 000711

Fundamentals of quantum information theory including states, measurements, operations, and their representations as matrices; measures of distance between quantum states and operations; quantum Shannon theory including von Neumann entropy, quantum noiseless coding, strong subadditivity of von Neumann entropy, Holevo's Theorem, and capabilities of quantum channels; theory of entanglement including measures of entanglement, entanglement transformation, and classifications of mixed-state entanglement; other topics in quantum information as time permits. 

CS 768 Quantum Information Processing (0.50) LEC, Course ID: 011589

(Cross-listed with CO 681, PHYS 767)
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.

Prerequisite: MATH 235 and STAT 230.
Antirequisite: CS 467, CO 481, PHYS 467\

CS 770 Numerical Analysis (0.50) LEC, Course ID: 000617

(Cross-listed with CM 770, AMATH 740)
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).

CS 774 Advanced Computational Finance (0.50) LEC, Course ID: 012994

Option pricing, hedging, model calibration, and portfolio optimization will be discussed. Computational methods, including PDE methods, Monte Carlo, and mathematical programming will be presented.

CS 775 Parallel Algorithm in Scientific Computing (0.50) LEC, Course ID: 011300

Techniques for obtaining maximum parallelism in various numberical algorithms, especially those occurring when solving matrix problems and partial differential equations, and the subsequent mapping onto the computer. Topics include: parallel architecture and performance models; message passing/shared memory programming; matrix computations; fast Fourier transform; graph partitioning; domain decomposition methods.

Antirequisite: CS 770G

CS 778 Numerical Solution of Partial Differential Equations (0.50) LEC, Course ID: 000724

(Cross-listed with AMATH 741, CM 750)

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.

CS 779 Splines and Their Use in Computer Graphics (0.50) LEC, Course ID: 000725

Computer-aided design systems originally offered only simple primitives (spheres, cylinders, polytopes, etc.) as building blocks for the creation of composite objects. Now such systems provide spline primitives as well for the construction of free form curves and surfaces. In addition, splines provide an important class of functions for approximation in areas such as finite element methods and numerical data fitting. This course presents a general introduction to spline theory and recent developments in techniques for representing, manipulating and rendering curves and surfaces constructed from splines in a graphics environment. Applications of interest include computer-aided design, synthetic image generation and animation.

Antirequisite: CS 679

CS 780 Advanced Symbolic Computation (0.50) LEC, Course ID: 011501

A deep investigation into fundamental problems of symbolic computation. These may include algorithms for linear, non-linear, and differential systems of symbolic equations, symbolic integration, factoring polynomials, and symbolic-numeric algorithms. Covers the basic data types and structures for algebraic objects and operations. Issues in the design of computer algebra systems.

CS 781 Colour in Computer Graphics (0.50) LEC, Course ID: 011467

In computer graphics, 3D models are rendered through an ideal camera to a 2D image. The virtual camera is a powerful tool, controlling not only perspective and the optical path, but colour mapping as well. This course examines the notion of "colour" at different stages of the computer graphics pipeline, and describes techniques for modelling and managing colour through the virtual camera analogy. Topics include illumination, the virtual camera, colour spaces, gamut mapping and colour management. Implementation of the colour reproduction and gamut-mapping algorithms demands a number of numerical and statistical methods, including multidimensional interpolation and approximation, computational geometry, splines, principal components anlysis and optimization.

CS 782 Pattern Discovery in Biomolecular Data (0.50) LEC, Course ID: 011468

This course examines, from an algorithmic point of view, the pattern discovery techniques that are currently used to extract the functional knowledge hidden in biomolecular data that is derived from DNA, RNA, proteins and their reaction products. Topics include: DNA sequence analysis, RNA structure prediction techniques, protein motif discovery techniques, protein structure prediction, analysis of expression data.

CS 783 Computer Modeling of Biophysical Phenomena (0.50) LEC, Course ID: 012995

This course addresses the computer (in silico) simulation of biophysical processes involved in the interaction of light with organic and inorganic matter. Computer models used to simulate these processes are presented, and key stages of the simulation pipeline, such as data gathering, design constraints and evaluation methodologies, are examined in detail. This course also includes discussions of open problems and current trends in the computer simulation of biophysical processes. Application fields include, but are not limited to computer graphics, remote sensing, biology and biomedical optics.

CS 784 Computational Linguistics (0.50) LEC, Course ID: 011288

Computer understanding and generation of natural (i.e., human) languages. Basic topics in natural language understanding (syntax, semantics, pragmatics, connected discourse). Selected applications (e.g., automated language generation, machine translation, natural language processing and the Web).

Antirequisite: CS 684

CS 785 Intelligent Computer Interfaces (0.50) LEC, Course ID: 011289

Intelligence in interfaces-natural language processing, plan recognition, dialogue, generation, user modeling. Interfaces to intelligent systems-intelligent agents and multi-agent systems, information processing and data mining, knowledge-based systems.

Antirequisite: CS 685

CS 786 Probabilistic Inference and Machine Learning (0.50) LEC, Course ID: 000726

Covers the fundamental principles of probabilistic inference and computational learning systems. Topics include Bayes decision and utility theory, Monte Carlo and Markov chain Monte Carlo methods; learning with complete data; Bayesian networks, Markov random fields and factor graphs; models; learning with incomplete data; computational learning and PAC learning theory.

Antirequisite: CS 786P

CS 787 Computational Vision (0.50LEC,TUT, Course ID: 000743

Fundamental problems in computational vision where efficient and robust algorithms can be applied. Topics include image formation; linear systems and Fourier theory; image registration; feature detection; fitting models to data; optical flow; structure from motion; steriopsis; object recognition; high-level vision.

Antirequisite: CS 698Q

CS 788 High-Performance Image Synthesis (0.50) LEC, Course ID: 000747

Project-oriented course that covers high-performance image synthesis using techniques for both real-time interactive systems and offline physically-based rendering. Topics include numerical techniques; visual perception and light; mathematical models of rendering; global illumination algorithms; real-time rendering.

CS 789 User Interface Tools (0.50LEC, Course ID: 011290

Graphics input devices and interaction techniques. The pragmatic factors of various physical, logical and virtual devices, human factors of interactive systems, interaction dialogue managers.

Antirequisite: CS 689

CS 791 Non-Photorealistic Rendering (0.50LEC, Course ID: 012996

Fundamentals of non-photorealistic computer depiction. Problems of style, abstraction and spatial and temporal coherence. Stroke-based rendering and simulation of traditional artistic media. Stylized processing of images and video. Read-time non-photorealistic rendering of 3D models; toon shaders and contour rendering. Geometric art and ornamental design.

CS 792 Data Structures and Standards in Health Informatics (0.50LEC, Course ID: 013604

This course focuses on health data as a key component of all health informatics systems. Topics include ontologies and other classification taxonomies found in health systems, data standards (with a focus on Canadian implementations of international standards), privacy and security of health data, client/patient assessment tools, and ethical considerations.

Instructor Consent Required

CS 793 Health Informatics - Application Domains (0.50LEC, Course ID: 013605

System architectures, interoperability, networking, and medical data storage are explored in the context of health information system applications such as digital image acquisition systems, telemedicine, laboratory automation, physician order entry systems, patient safety systems, administrative systems, and various forms of the electronic patient record. Issues related to usability and human computer interaction feature prominently in this course.

Instructor Consent Required

CS 798 Advanced Research Topics (0.50) LEC Course ID: 010463