Apr 28, 2024  
School of Graduate Studies Calendar, 2019-2020 
    
School of Graduate Studies Calendar, 2019-2020 [-ARCHIVED CALENDAR-]

Course Listings


Please note, when searching courses by “Code or Number”, an asterisk (*) can be used to return mass results. For instance, a “Code or Number” search of ” 6* ” can be entered, returning all 6000-level courses.

 

Computational Science and Engineering

  
  • CSE 731 / Linear Systems

    3 unit(s)

    (cross-listed as ECE 707 )

  
  • CSE 732 / A Basic Introduction to Data Mining

    1.5 unit(s)

    J. Peng

  
  • CSE 733 / Advanced Topics in Knowledge Discovery

    1.5 unit(s)

    J. Peng

  
  • CSE 734 / Machine Learning Methods for Brain Modelling and Neural Data Analysis

    3 unit(s)

    (cross-listed as PSYCH 734 )

  
  • CSE 736 / Computational Geometry in the Plane

    1.5 unit(s)

    A. Deza

  
  • CSE 737 / Computational Geometry in Dimension 3 and Higher

    1.5 unit(s)

    A. Deza

  
  • CSE 738 / Computational Biochemistry

    3 unit(s)

    B. Zhorov (cross-listed as BIOCHEM 730 )

  
  • CSE 739 / Introduction to Iterative Methods in Computational Science

    1.5 unit(s)

    Staff

    This module reviews the theoretical foundations and various implementation issues concerning the use of iterative methods. The focus will be on solution techniques for sparse linear systems, such as arising in numerical solution of PDEs, systems of nonlinear equations and numerical solution of integral equations.
  
  • CSE 740 / Numerical Methods for Ordinary Differential Equations and Differential-Algebraic Equations

    3 unit(s)

    N. Nedialkov (cross-listed as CAS 740 )

  
  • CSE 741 / Development of Scientific Computing Software

    3 unit(s)

    S. Smith (cross-listed as CAS 741 )

  
  • CSE 742 / Special Topics in Communication Systems and Networks

    3 unit(s)

    (cross-listed as ECE 738 )

  
  • CSE 744 / Algorithms for Combinatorial Optimization

    3 unit(s)

  
  • CSE 745 / Parallel and High Performance Computing

    3 unit(s)

    An introduction to general ideas and principles of parallel programming followed by a presentation of the shared-memory and message-passing approaches to parallel code development based on, respectively, the OpenMP and MPI standards. Students will develop simple parallel applications in C and FORTRAN, so some prior programming experience in those languages is required.  Students will acquire the skills necessary to operate, debug and modify existing parallel codes and available libraries (such as PDE solvers) using these standard approaches for various applications.
  
  • CSE 746 / Advanced Parallel and High Performance Computing

    3 unit(s)

    The goal of this course is to equip students with theoretical knowledge and practical skills necessary to independently develop scalable parallel and high-performance codes for various applications. The course covers a selection of advanced topics concerning both software and hardware aspects of code development. Topics may include the use of parallel debuggers and profilers, optimization of numerically intensive codes for specific architectures, novel hardware (e.g. GPGPU cards) and related languages such as CUDA, mixed use of threads/Open MP and message passing/MPI, issues with extreme parallel scaling such as I/O and fault tolerance and parallel languages such as CHARM++.
  
  • CSE 747 / Topics in Numerical Analysis

    3 unit(s)

    MATH 745  

    Selected topics from numerical linear algebra, approximation theory, optimization, numerical solution of differential equations: finite differences, finite elements, boundary elements, spectral methods.
  
  • CSE 749 / Mathematical and Computational Fluid Dynamics

    3 unit(s)

    (cross-listed as MATH 749 )

  
  • CSE 750 / Model-Based Image Reconstruction

    3 unit(s)

    C. Anand (cross-listed as CAS 750 )

  
  • CSE 751 / Advanced Mechanical Engineering Control Systems

    3 unit(s)

    G. Bone (cross-listed as MECH ENG 751 )

  
  • CSE 752 / Optimization of Chemical Processes

    3 unit(s)

    (cross-listed as CHEM ENG 752 )

  
  • CSE 753 / Modern Antennas in Wireless Telecommunications

    3 unit(s)

    (cross-listed as ECE 753 )

  
  • CSE 756 / Computational Fluid Dynamics

    3 unit(s)

    (cross-listed as MECH ENG 756 )

  
  • CSE 757 / Computational Modelling in Biophysics

    3 unit(s)

    P. Higgs (cross-listed as PHYSICS 756 )

    This course will emphasize the links between statistical physics and biology, focusing on the design and use of computational models. Students will write their own programs to simulate models from the literature or of their own design. Previous programming experience is not required, although a willingness to learn scientific programming methods is essential.
  
  • CSE 760 / Computing Patterns in Strings

    3 unit(s)

    W.F. Smyth (cross-listed as  )

    This course deals with algorithms for finding “patterns” in strings, patterns of three main kinds: specific, generic, and intrinsic. The importance of approximate patterns and algorithms which identify them is made clear. Applications to DNA sequence analysis and other scientific areas are emphasized.
  
  • CSE 761 / Topics in Numerical Analysis

    3 unit(s)

    (cross-listed as MATH 745  )

    Selected topics from numerical linear algebra, approximation theory, optimization, numerical solution of differential equations: finite differences, finite elements, boundary elements, spectral methods.
  
  • CSE 762 / Optimization Under Uncertainty (Stochastic Optimization)

    3 unit(s)

    (Cross-listed as BUSINESS Q787  and CHEM ENG 757  )

    In the first six weeks, we will discuss the stochastic programming methodology. We will cover two-stage models, L-shaped method, multi-stage models, decomposition methods, and chance-constrained models. In the next three weeks, we will discuss stochastic dynamic programming methodology. We will cover finite horizon models, backward induction and monotone optimal policy. In the last three weeks, we will discuss the robust optimization methodology. We will cover uncertainty sets, two-stage models and multi-stage models.
  
  • CSE 763 / Computational Modeling of Circulatory System

    3 unit(s)

    Cross-listed as MECH ENG 762  and BIOMED 762  

    This course covers circulatory anatomy and physiology as well as several methods for modeling circulatory mechanics. Some applications of modeling circulatory mechanics in the development of medical devices are also covered. The major topics to be covered include: Introduction to anatomy and physiology of cardiovascular system; Introduction to anatomy and physiology of local circulations
  
  • CSE 768 / Special Topics in Signal Processing

    3 unit(s)

    (cross-listed as ECE 768 )

  
  • CSE 770 / Molecular Electronic Structure Theory

    1.5 unit(s)

    (cross-listed as CHEM 770 )

  
  • CSE 773 / Numerical Methods and Computational Chemistry

    1.5 unit(s)

    (cross-listed as CHEM 703 )

  
  • CSE 775 / Cognitive Dynamics Systems

    3 unit(s)

    S. Haykin (cross-listed as ECE 775 )

  
  • CSE 776 / MATHEMATICAL PROGRAMMING: THEORY AND ALGORITHMS

    3 unit(s)

    (cross-listed as BUSINESS Q773  and CHEM ENG 756 )

    The course will cover topics in linear, integer and nonlinear programming. Concepts to be covered include convexity, duality, Karush-Kuhn-Tucker conditions, non-differentiable optimization, Branch and cut, and decomposition methods (Lagrangian, Bender’s and Dantzig-Wolf). Software implementation issues will be highlighted via GAMS and its solvers.
  
  • CSE 780 / Data Science



    Cross-listed as STATS 780  

    Prerequisite(s): Registration in a graduate program in the Faculty of Science, Health Sciences or Engineering or permission of the instructor.

    The course will cover core and selected topics in data science. The core topics are classification and regression trees, neural networks, boosting, bagging, unsupervised learning, signal processing, random forests, ensemble methods, data visualization, big data, and data storage. Selected topics include data warehousing, data compression, data cleaning, deep learning, and artificial intelligence.
  
  • CSE 782 / Data Structures and Algorithms

    3 unit(s)

    (cross-listed as CAS 702 )

  
  • CSE 783 / Finite Element Method

    3 unit(s)

    (cross-listed as CIV ENG 703 )

  
  • CSE 790 / Statistical Learning



    Cross-listed as STATS 790  

    Prerequisite(s): None but STATS 780 is recommended if students are not already familiar with that material.

    The course will cover topics in statistical learning, building on the topics already covered in STATS 780. The core topics are cross-validation, shrinkage methods (ridge regression, the LASSO, etc.), neural networks, gradient boosting, separating hyperplanes, support vector machines, basis expansion and regularization (e.g., smoothing splines, wavelet smoothing, kernel smoothing), generalized additive models, bump hunting, multivariate adaptive regression splines (MARS), self-organizing maps, mixture model-based clustering, ensemble learning, and p>>n problems. For computing, the R software will be used as well as either Julia or Python.
  
  • CSE 791 / Algorithms for Parameter and State Estimation

    3 unit(s)

    T. Kirubarajan (cross-listed as ECE 771 )

  
  
  • CSE 799 / Special Topics in Computational Science and Engineering

    3 unit(s)


Computing and Software

  
  • CAS 701 / Logic and Discrete Mathematics

    3 unit(s)

    Staff

    The course will cover some of the material encountered at the undergraduate courses on logic and discrete mathematics as well as advanced material on topics such as proof systems, sets, relations, and functions, recursion, type theory, and first and higher order logic systems. There will be emphasis on topics related to computer science and software engineering.
  
  • CAS 702 / Data Structures and Algorithms

    3 unit(s)

    Staff (cross-listed as CSE 782 )

    The course will cover some basic material encountered at the relevant undergraduate courses on data structures and algorithms plus more advanced material on topics such as network flows, linear programming, computational geometry and NP-completeness. There will be emphasis on techniques such as greedy and dynamic programming.
  
  • CAS 703 / Software Design

    3 unit(s)

    Staff

    Formal specification methods. Requirements specifications. Fail-safe systems. Verification of safety critical applications. Systematic testing. Specification and design of concurrent, multiprocess and distributed systems.
  
  • CAS 704 / Embedded, Real-Time Software Systems

    3 unit(s)

    Staff

  
  • CAS 705 / Computability and Complexity

    3 unit(s)

    Staff

    Computability: Finite automata, Turing machines, and recursive functions. The Halting problem and the Church-Turing thesis. Complexity: Classes defined in terms of time, space, and circuits. The reachability method. The P vs. NP problem, Cook’s theorem, and NP-completeness. The Time and Space Hierarchy theorems. Randomized and parallel computations.
  
  • CAS 706 / Programming Languages

    3 unit(s)

    Staff

    Design, definition and implementation of programming languages. Programming language paradigms; syntax, attribute grammars, typing; axiomatic, operational and denotational semantics; correctness proofs; implementation techniques, virtual machines; design and implementation of Domain-Specific Languages.
  
  • CAS 707 / Formal Specification Techniques

    3 unit(s)

    Staff

    Pre/Postconditions, refinement, state-based approaches, event based approaches, algebraic specifications, Petri nets, temporal logic, properties of programs, and specification, verification, and validation.
  
  • CAS 708 / Scientific Computation

    3 unit(s)

    Staff

    Floating-point arithmetic, solutions of systems of linear equations by direct and iterative methods, sparse matrix algorithms, solving systems of nonlinear equations, integration, differentiation, eigenvalue problems, methods for initial value problems in ordinary differential equations, and automatic differentiation.
  
  • CAS 721 / Combinatorics and Computing

    3 unit(s)

    F. Franek

    Topics in applied combinatorics and graph theory of importance to both theoretical computer science and practical computing including combinatorial computing. Main topics: graph theory and algorithms, combinatorial optimization and algorithms, design theory and coding theory. Solving problems in finite combinatorics using computers.
  
  • CAS 722 / Computing Patterns in Strings

    3 unit(s)

    W.F. Smyth

    This course deals with algorithms for finding “patterns” in strings, patterns of three main kinds: specific, generic, and intrinsic. The importance of approximate patterns and algorithms which identify them is made clear. Applications to DNA sequence analysis and other scientific areas are emphasized.
  
  • CAS 723 / Distributed Real-Time Systems

    3 unit(s)

    W.F.S. Poehlman

    A study of hard and soft systems: specifications, event processing, data concurrency, distribution completeness, corrections, integrity fallback, fault tolerance and applications; timing analysis: synchronization, deadlock, modeling.
  
  • CAS 724 / Concurrency Theory

    3 unit(s)

    R. Janicki

    Models based on interleaving and partial order paradigms including the Calculus of Communicating Systems (CCS), Communicating Sequential Processes (CSP), Actors, Petri Nets, Pomsets and COSY. Basic properties of concurrent systems such as deadlock, liveness, safety, fairness, etc. Temporal Logic techniques. The growing role of concurrent systems in many diverse scientific and engineering activities will also be discussed.
  
  • CAS 725 / Formal Methods of Real-Time Systems

    3 unit(s)

    M. Lawford

    Introduction to formal methods including equivalence verification, model-checking and theorem proving. Emphasis on verification of safety-critical real-time control systems using automated theorem provers and simple programming techniques.
  
  • CAS 727 / Design of Numerical Software

    3 unit(s)

    S. Qiao

    Principles of finite precision computation, subtleties of floating point arithmetic, design of stable and accurate numerical algorithms, techniques of testing numerical software, portability and performance.
  
  • CAS 728 / Computability on Abstract Data Types

    3 unit(s)

    J. Zucker

  
  • CAS 729 / Problem Solving with Knowledge-Based Systems

    3 unit(s)

    W.F.S. Poehlman

    A practical study of knowledge-based technology as applied to appropriate problems including knowledge engineering; structure of expert, neural and fuzzy systems; application areas include simulation, fault analysis, rapid prototyping, adaptive scheduling, control and strategic planning.
  
  • CAS 730 / Machine Learning and Data Mining

    3 unit(s)

    I. Bruha (cross-listed as eHealth *730)

    A broad study of major approaches and methodologies related to machine learning from the viewpoint of artificial intelligence. Symbolic algorithms of learning. Statistical algorithms of learning. Well-known existing learning systems. Data mining and knowledge discovery.
  
  • CAS 731 / Symbolic and Logic Programming

    3 unit(s)

    I. Bruha

    Methodology of advanced symbolic programming: data structures and non-standard control techniques. Methodology of logic programming: Prolog programming for AI, strategies of the resolution principle, reverse resolution, elements of theory revision.
  
  • CAS 732 / Logical Foundations of Computer Science

    3 unit(s)

    J. Zucker

    A solid logical and mathematical foundation for reasoning about software and software descriptions is provided. Topics include: introductory concepts in set theory (sets, relations, functions, etc.); various logics (first order, higher order, equational, conditional equational); many-sorted algebras; initial algebra semantics for equational and conditional equational theories.
  
  • CAS 733 / Mobile User Interface Design

    3 unit(s)

    C. Anand

    An advanced look at User Interface issues associated with mobile devices, e.g. smart phones. This course is for graduate students who have already taken a course in human-computer interaction and already know how to program non-trivial applications on at least one mobile device. Through literature review, and experimentation, students will learn how the advent of mobile devices is changing our approach to human-computer interactions, and will practice a quantitative approach to evaluating the effectiveness of user interface concepts.
  
  • CAS 734 / Formalized Mathematics

    3 unit(s)

    W.M. Farmer

    Computer-supported, formalized mathematical reasoning for practical applications. Specification and verification in higher-order logic. Interactive theorem proving systems. Techniques for developing axiomatic theories.
  
  • CAS 736 / Analysis of Stochastic Networks

    3 unit(s)

    D. Down

    Techniques for the analysis of large networks that can be modeled in a statistical manner. Single queues, product form networks and mean value analysis. Fluid and diffusion approximations. Simulation techniques, including variance reduction. Hybrid simulation. Current research directions in Stochastic networks.
  
  • CAS 738 / Algebraic Methods in Software Engineering and Computer Science

    3 unit(s)

    R. Khedri

    The course covers a variety of software development issues, and illustrates the versatility of algebraic methods when used as conceptual tools in the software development process. The topics include algebraic approaches to software requirements, design, program verification, testing, and security. Several algebraic structures, such as relation algebra, Kleene algebra, and product family algebra, are introduced and discussed within software related issues.
  
  • CAS 740 / Numerical Methods for Ordinary Differential Equations and Differential-Algebraic Equations

    3 unit(s)

    N. Nedialkov (cross-listed as CSE 740 )

    Numerical methods for ODEs and DAEs; Runge-Kutta, multistep methods; convergence, accuracy, consistency; error estimation and propagation, step size and order control; stability, non-stiff and stiff methods; software for ODEs and DAEs.
  
  • CAS 741 / Development of Scientific Computing Software

    3 unit(s)

    S. Smith (cross-listed as CSE 741 )

    This course presents the basic principles of software development for reliable scientific and engineering software. Using example applications, a systematic process is given for the development and documentation of requirements, high-level design, module design, implementation, testing and inspection.
  
  • CAS 742 / Methods of Symbolic Computation

    3 unit(s)

    M.V. Mohrenschildt

    This course gives an introduction to symbolic computation methods and their application to (electrical, computer and mechanical) engineering problems. Topics include: linear and nonlinear equations and their solutions; algebraic equations; term-rewriting and their application to formal software specifications; Groebner-basis and their application to geometric problems; differential equations; visualization of dynamic processes.
  
  • CAS 743 / Functional Programming

    3 unit(s)

    W. Kahl

    The powerful abstraction capabilities and clean semantics of functional programming languages improve programmer efficiency and facilitate correct program derivation and transformation. This course will present practical aspects of software development in modern functional programming languages and theoretical foundations, like term rewriting systems, lambdacalculi, and type systems.
  
  • CAS 744 / Advanced Topics in Design of Algorithms

    3 unit(s)

    G. Karakostas

    Advanced design techniques for algorithms, including (but not limited to): approximation algorithms, randomized algorithms, on-line computation and competitive analysis, quantum computing. Each term the course will concentrate mainly on one of these topics for a deeper understanding of the particularities and the defining problems/issues of the field as well as its applications to other fields and to practice. Presentation of up to date results and tackling of open research problems will be the main requirement for the students taking this course.
  
  • CAS 745 / Supervisory Control of Discrete-Event Systems

    3 unit(s)

    R. Leduc

    This course is an introduction to the control of discrete-event systems (DES), asynchronous systems discrete in space and time (e.g. manufacturing systems, communication systems, etc.). The course will provide a solid foundation for research in this area, focusing on architectural issues such as modular, decentralized, and hierarchical control. The course will also discuss timed DES, as well as current topics of interest.
  
  • CAS 746 / Advanced Topics in Combinatorial Optimization

    3 unit(s)

    A. Deza

    This course provides an introduction to useful frameworks for discrete optimization problems. We introduce the basic concepts of polyhedra, lattices and integer cones and illustrate these notions by some examples coming from combinatorial optimization. An algorithm for finding the Hermite normal form of a lattice and the main methods for facet or vertex enumeration are presented.
  
  • CAS 748 / Analysis and Synthesis of Sound

    3 unit(s)

    M. V. Mohrenschildt

    Sound as signals (Fourier Analysis, basic harmony theory), Sound analysis (filters, FFT), Synthesis (band limited signals), over-sampling, real-time signal processing, user interfaces (real time interaction with algorithms), vocoders, physical modeling (fast DSP algorithms to solve PDE’s).
  
  • CAS 749 / Advanced Topics in Computational Geometry

    3 unit(s)

    A. Deza

    This course provides an introduction to useful frameworks for computational geometry problems in dimension 2, 3 and higher. We introduce the basic concepts of triangulations, Voronoi diagrams, polyhedra, lattices and integer cones, arrangement of hyperplanes and linear programming and illustrate these notions by some examples coming from combinatorial optimization.
  
  • CAS 750 / Model-Based Image Reconstruction

    3 unit(s)

    C. Anand (cross-listed as CSE *750, eHealth *750)

    An overview of three themes in advanced image processing: functional analysis (e.g., Fourier, Wavelet and SVD methods), PDEs (e.g., anisotropic diffusion), optimization of statistical models (e.g. Total Variation regularization). And, a detailed look at specific methods and techniques for applying these methods in new areas: medical imaging, visual process control. Including all phases of application development from mathematical modeling, through complexity analysis.
  
  • CAS 752 / Symbolic Analysis

    3 unit(s)

    J. Carette

  
  • CAS 753 / Specifying, Implementing and Verifying Timing Behaviours for Hard Real-Time Systems

    3 unit(s)

    A. Wassyng

    Hard-real-time systems are those in which timing requirements are just as important as any other requirement. The course will present a number of timing specification models and methods, such as timed automata, as well as new methods that cope with tolerances on the time durations. Techniques for implementing timing behaviours and verification of those behaviours, both mathematical and testing-based, will be included.
  
  • CAS 754 / Programming Methodology

    3 unit(s)

    E. Sekerinski

    Verification and Refinement Methods for Sequential and Concurrent Programs, Specification Techniques, Reliability, Object-Orientation (Modeling, Design, Patterns, Concurrency), Program Design and Program Documentation, Tools and Compilers.
  
  • CAS 755 / Advanced Computational Methods and Models

    3 unit(s)

    Staff

    Advanced topics in scientific computing, including iterative sparse methods and direct sparse methods for linear systems, QR-type algorithms for computing Eigen Values, perturbation analysis, methods for large-scale ODE systems, choice of preconditioners, Newton-krylov methods for solving nonlinear systems, introduction to multigrid methods, automatic differentiation, and sensitivity analysis.
  
  • CAS 756 / Advanced Topics in Formal Methods and Software Architecture

    3 unit(s)

    T. Maibaum

    The course presents advanced techniques for formal specification of requirements, designs and implementations of software based systems, focusing on software architecture as the organi sing principle for software development. Course content will include some topics amongst: comparative properties of formalisms for specification; meta-properties of specification formalisms, including interpolation properties, modularity and their relationships; component based approaches and the role of category theory in component composition; formalisation of encapsulation, cohesion and coupling; externalisation of interaction definition; formal toolkit for software architecture.
  
  • CAS 757 / Modern Software Technology for eHealth

    3 unit(s)

    Staff (cross-listed as EHEALTH 757 )

    This course exposes the graduate students in software engineering, computer science, or related programs to the challenges in the field of electronic health (eHealth). The course introduces a collection of modern architectures and technologies that are recommended by standardization organizations to build the infrastructure that meets the emerging demands in the growing network of health care systems. The topics include: standard health care and data and service representations; clinical terminology systems; web services and service oriented architecture; decision support systems; data mining techniques on clinical data; data and knowledge interoperability; security and privacy techniques, and health care application development environments.
  
  • CAS 758 / Advanced Compiler Design and Optimization

    3 unit(s)

    F. Franek

    Advanced compiler design methodologies with emphasis on control and data flow analyses, code optimization and related issues.
  
  • CAS 760 / Logic for Practical Use

    3 unit(s)

    W. M. Farmer

    Attributes of a practical logic. Techniques for improving the practicality of traditional logics. Design, implementation, and use of practice-oriented logics.
  
  • CAS 761 / Generative Programming

    3 unit(s)

    J. Carette

    This course will explore the rationale for, and the various aspects of generative programming. Special attention will be paid to Domain Specific Languages, and typed Meta programming. The relation with product families and model-driven software engineering will be emphasized. Key techniques in generative programming will be studied.
  
  • CAS 762 / Cryptography

    3 unit(s)

    M. Soltys

    An introduction to cryptography: the course will cover public key cryptography based on the discrete logarithm problem, factoring, ellipitic curves and lattices. Thus, it will examine the Diffie-Hellman and El Gamalpkc, RSA as well as lattice-based cryptographic schemes. Other topics will be key-exchange and authentication, identification, schemes, commitment schemes, electronic elections and digital cash, as well as provably secure encryption.
  
  • CAS 763 / Certified Programming with Dependent Types

    3 unit(s)

    W. Kahl

    Type systems featuring types depending on values empower not only logics that can capture common mathematical formalizations more naturally than conventional first-order or higher-order logics; they also empower programming languages where specifications may be incorporated into the type of programs, and well-typed programs are thus guaranteed to satisfy these specifications. Students will learn at least one dependently-typed programming language in depth. The course will also cover associated foundations, including relevant type theories and the Curry-Howard correspondence, as well as useful patterns of formalizing, programming, and proving in dependently-typed programming languages.
  
  • CAS 764 / Advance Topics in Data Management

    3 unit(s)

    F. Chiang

    This course introduces advanced topics in data design, and techniques for managing inconsistent data for improved search and data analysis. Topics covered include data design principles, constraints, normalization, entity resolution, statistical data measures, and information theory. We introduce algorithms for repairing inconsistencies in the data, and for answering queries in the presence of these inconsistencies.
  
  • CAS 765 / Wireless Networking and Mobile Computing

    3 unit(s)

    R. Zheng

    This course introduces fundamental concepts, state-of-the-art research and applications of wireless networking and mobile computing. Topics covered include wireless network protocols, wireless standards, location-based services and techniques, security, and programming on mobile platforms.
  
  • CAS 766 / Concurrent Programming

    3 unit(s)

    E. Sekernski

    Processes and Synchronization, Atomicity, Mutual exclusion, Locks and Barriers, Semaphores, Monitors, Message Passing, Parallel Programming, Patterns for Concurrency, Transactional Memory, Linearizability, Consensus, Lock-free Algorithms, Multi-core Processors, Heterogeneous Computing with GPU and FPGA, Applications.
  
  • CAS 767 / Information Privacy and Security



    (cross-listed as EHEALTH 767  )

    This course covers issues and technologies in Information Privacy, Security, and Accountability. The course surveys cryptography, digital signature, key management, authentication, certificates, PKI, Application layer Access control policies and mechanisms, data forensics, Internet security protocols, trust management, information and web privacy, privacy and data aggregation, audit log mechanisms, privacy policy expression and enforcement, Differential Privacy, Security and privacy in healthcare, Social networking security and privacy, Usable security and privacy, and privacy-enhancing technologies. Students will undertake a project that employs and integrates these technologies.
  
  • CAS 768 / Development and Certification of Safety-Critical Software Intensive Systems

    3 unit(s)

    Safety-critical systems are becoming more and more part of our everyday lives - cars, planes, trains, medical devices and nuclear power plants are obvious examples of safety-critical systems. Most of these systems depend on software for their correct functioning. This course is about building and certifying such systems. The emphasis is on the software component(s).
  
  • CAS 769 / Distributed Algorithms

    3 unit(s)

    This course we will study distributed computer systems, especially loosely-coupled and failure-prone ones. The course will cover formal models, algorithm design and analysis, lower bounds, and impossibility proofs. The students are expected to learn:
    • fundamental models, problems, algorithms, lower bound and impossibility results, and proof techniques in distributed computing,
    • design new distributed algorithms for new situations, using as building blocks the algorithms and techniques learned,
    • how to apply lower bounds and impossibility results learned to new situations where appropriate,
    • how to incorporate and implement distributed algorithms to build larger systems to gain speedup and achieve resiliency.
  
  • CAS 770 / Modern Cryptography

    3 unit(s)

    Cryptography underlies information security technologies. Using the provable security methodology, this course will develop an in-depth understanding of the foundations of modern cryptography, including all major primitives in symmetric and public key cryptography, as well as cryptographic protocols such as TLS. Upon this foundation we will examine more recent advances in cryptography, such as identity-based encryption, functional encryption, bilinear pairings, and lattice-based cryptography. The course will conclude with student-driven explorations of recent research in theoretical or applied cryptography.
  
  • CAS 771 / Introduction to Big Data Systems and Applications

    3 unit(s)

    Nowadays, unstructured data such as multimedia data account for around 80% of Internet traffic. Meanwhile, more than 80% of potentially usable business information exists in unstructured formats (e.g., audio/video information, social network relations, users’ purchasing habits, environmental data). Much of the unstructured data remains unused because the algorithms available for analyzing and understanding unstructured data usually do not scale up to handle the amount of data being generated. This course will discuss and explore the computer system design to deal with large scale unstructured data.
  
  • CAS 772 / Mobile Data Analytics

    3 unit(s)

    With the prevalence of wireless technologies and broadband access, untethered mobile and wearable devices have become an essential part of everyday life. The deluge of multimodality, high volume, streaming and in some cases unstructured spatial-temporal data from mobile devices poses serious challenges to algorithm and system design to extract timely information and actionable items. This class aims to cover selected topics on data acquisition, sensor signal processing, machine learning techniques, data management and processing systems pertaining to mobile data analytics as well as state-of-the-art research in this area.
  
  • CAS 773 / Randomized Algorithms and Probabilistic Techniques

    3 unit(s)

    Prerequisite(s): Undergrad data structures & algorithms, undergrad probability theory.

    Randomization techniques are playing an increasingly important role in modern computer science, with applications ranging from faster algorithms for communication networks to machine learning. This class aims to cover basic concepts in the design and analysis of randomized algorithms and the application of probabilistic techniques to problems in computer science. This includes
    concentration bounds, martingales, Markov chains, as well as practical algorithmic applications, such as load balancing, probabilistic data structures, and randomized network algorithms. The emphasis is on using randomization to solve problems in a conceptually simpler and/or more efficient way than just using deterministic methods.
  
  • CAS 774 / Foundations of Machine Learning



    Prerequisite(s): Background in probability and statistics as well as discrete mathematics and algorithms is recommended.

    The course starts off by introducing a standard mathematical model (i.e,. the PAC model) for studying machine learning problems. The first half of the course is then dedicated to understanding this model, characterizing “learnability” within this model, and establishing the foundations of Computational Learning Theory. The main topics here include sample complexity, VC dimension, No-Free-Lunch Theorem, and the Fundamental Theorem of Learning. The primary textbook for this part of the course is “Understanding Machine Learning: From Theory to Algorithms” By Shai Shalev-Shwartz and Shai Ben-David. In the second half of the course, various tasks and algorithms are studied and analyzed via the lens of the proposed theoretical foundations. These topics include Distribution Learning, Learning via Compression, and Clustering, and Deep Learning.
  
  • CAS 780 / Independent Study in Computing and Software

    3 unit(s)

    Normally a self-study course. Prerequisite: Permission of the Chair of the Department.
  
  • CAS 781 / Advanced Topics in Computing and Software

    3 unit(s)

    Staff

    Topics of interest to Computer Science and/or Software Engineering. See annual departmental listings for current year topic. A student may receive credit for this course more than once if the specific topic differs.
  
  • COMP SCI 6E03 / Performance Analysis of Computer Systems

    3 unit(s)

    Staff

    Antirequisite(s): COMP SCI 4E03, SFWRENG 4E03

    Use of queuing models and simulation to predict computer system performance and find bottlenecks in a system. Types of models, distributions. Markov models. Modelling storage and network behaviour, lock, critical sections, concurrency. Introduction to analytical system reliability.
  
  • COMP SCI 6F03 / Distributed Computer Systems

    3 unit(s)

    Staff (same as Computing and Software *6F03)

  
  • COMP SCI 6O03 / Linear Optimization

    3 unit(s)

    Staff

    Antirequisite(s): COMP SCI 4O03, SFWR ENG 4O03

    Linear programming, integer programming, decision trees, network flow problems, graph algorithms, route planning, applications to engineering problems.
  
  • COMP SCI 6TB3 / Syntax-Based Tools and Compilers

    3 unit(s)

    Staff

    Antirequisite(s): COMP SCI 4TB3

    Lexical analysis, syntax analysis, type checking; syntax-directed translation, attribute grammars; compiler structure; implications of computer architecture; mapping of programming language concepts; code generation and optimization.
  
  • COMP SCI 6TC3 / Recursive Function Theory and Computability

    3 unit(s)

    Staff

    Antirequisite(s): COMP SCI 4TC3

    Recursive and primitive recursive functions, decidability and undecidability with applications to formal language theory, logic and algebra.
 

Page: 1 <- 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13Forward 10 -> 23