|
Instruction offered by members of the Department of Computer Science in the Faculty of Science.
Notes:
- Computer Science students should also see courses listed under Software Engineering.
- In several cases, credit is not allowed for Computer Science courses and various courses offered by the Faculty of Engineering. Students who have successfully completed Engineering courses should contact the Department of Computer Science for additional information.
|
Graduate Courses
Note: Registration in all courses requires the approval of the Department of Computer Science. Computer Science students should also see courses listed under Software Engineering.
|
Computer Science
601
|
Special Topics in Computer Science
|
|
A study of problems of particular interest to graduate students in Computer Science.
Course Hours:
3 units; H(3-0)
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
Computer Science
605
|
Information Storage and Processing in Biological Systems
|
|
Examination of complex biological systems; concepts and fundamentals of biological solutions to information storage and processing; modelling and computer simulation of biological systems; information storage in biological molecules; genetic networks; hierarchical organization of biological information processing in signal transduction, development, evolution, and ecology; biological control systems.
Course Hours:
3 units; H(3-0)
Also known as:
(Medical Science 605)
|
back to top | |
|
Computer Science
607
|
Biological Computation
|
|
Examination and modelling of biological networks; focus on the latest developments in biological computing and their theoretical backgrounds, such as: DNA computing; genomic algorithms; artificial chemistries; complex adaptive systems, chaos and fractals; immune system computing; gene regulatory networks; swarm intelligence systems.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
609
|
Foundations of Multi-Agent Systems
|
|
Modelling of agents and properties of multi-agent systems. Communication issues, including interaction and co-ordination concepts, forming and maintaining organizations, and competitive agent environments. Example systems; the implementation of a multi-agent system will be performed as the assignment.
Course Hours:
3 units; H(3-0)
Antirequisite(s):
Credit for Computer Science 609 and Software Engineering 697 will not be allowed for programs offered by the Department of Computer Science.
|
back to top | |
|
Computer Science
610
|
Compiler Code Generation and Optimization
|
|
Compiler code generation and optimization techniques, including register allocation, instruction selection, dataflow analysis, and code optimization techniques using intermediate representations. Implementation of special language features and tools for automated code generation.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
611
|
Complexity Theory
|
|
Deterministic and non-deterministic time and space complexity; complexity classes and hierarchies; NP-complete problems and intractable problems; axiomatic complexity theory.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 413 or equivalent is recommended as preparation for this course.
|
back to top | |
|
Computer Science
615
|
Computational Techniques for Graphics and Visualization
|
|
Various case studies from the fields of graphics and visualization.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 453 or equivalent is recommended as preparation for this course.
|
back to top | |
|
Computer Science
617
|
Category Theory for Computer Science
|
|
Introduction to category theory with applications in computer science. Functors, natural transformations, adjoints and monads, initial and final algebras. Introduction to 2-categories and fibrations.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 513 or 521 or equivalent is recommended as preparation for this course.
|
back to top | |
|
Computer Science
619
|
Quantum Computation
|
|
Quantum information, quantum algorithms including Shor's quantum factoring algorithm and Grover's quantum searching technique, quantum error correcting codes, quantum cryptography, nonlocality and quantum communication complexity, and quantum computational complexity.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
622
|
Randomized Algorithms
|
|
Design and analysis of randomized algorithms; discrete probability theory; randomized data structures; lower bound techniques; randomized complexity classes; advanced algorithmic applications from various areas.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
625
|
Principles of Computer Security
|
|
Security policies and protection mechanisms for a computing system, including such topics as design principles of protection systems, authentication and authorization, reference monitors, security architecture of popular platforms, formal modelling of protection systems, discretionary access control, safety analysis, information flow control, integrity, role-based access control. Legal and ethical considerations will be introduced as necessary.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 457 and Mathematics 271, or equivalents, are recommended as preparation for this course.
|
back to top | |
|
Computer Science
626
|
Network Systems Security
|
|
Attacks on networked systems, tools and techniques for detection and protection against attacks including firewalls and intrusion detection and protection systems, authentication and identification in distributed systems, cryptographic protocols for IP networks, security protocols for emerging networks and technologies, privacy enhancing communication. Legal and ethical issues will be introduced as necessary.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 418 and 441, or equivalents, are recommended as preparation for this course.
|
back to top | |
|
Computer Science
627
|
Computer Viruses and Malware
|
|
Study of computer viruses, worms, Trojan horses, and other forms of malicious software. Countermeasures to malicious software. Legal and ethical issues, and some general computer and network security issues.
Course Hours:
3 units; H(3-0)
Prerequisite(s):
Computer Science 313 and 457 and consent of the Department.
|
back to top | |
|
Computer Science
628
|
Spam and Spyware
|
|
Spam and other unsolicited bulk electronic communication, and spyware. Legal and ethical issues. Countermeasures, and related security problems.
Course Hours:
3 units; H(3-0)
Prerequisite(s):
Computer Science 313 and 457 and consent of the Department.
|
back to top | |
|
Computer Science
629
|
Elliptic Curves and Cryptography
|
|
An introduction to elliptic curves over the rationals and finite fields. The focus is on both theoretical and computational aspects; subjects covered will include the study of endomorphism rings, Weil pairing, torsion points, group structure, and effective implementation of point addition. Applications to cryptography will be discussed, including elliptic curve-based Diffie-Helman key exchange, El Gamal encryption, and digital signatures, as well as the associated computational problems on which their security is based.
Course Hours:
3 units; H(3-0)
Notes:
Pure Mathematics 315 is recommended as preparation for this course.
Also known as:
(Pure Mathematics 629)
|
back to top | |
|
Computer Science
630
|
Information Theory and Security
|
|
Information theoretic concepts such as entropy and mutual information, and their applications to defining and evaluating information security systems including encryption, authentication, secret sharing and secure message transmission.
Course Hours:
3 units; H(3-2T)
Notes:
One of Computer Science 219, 233 or 235 and one of Mathematics 271, 273 or Pure Mathematics 315 and one of Statistics 205 or 211 or 213 or 321 or Mathematics 321, or equivalents, are recommended as preparation for this course.
|
back to top | |
|
Computer Science
635
|
Image Analysis and Computer Vision
|
|
Standard methods used in the analysis of digital images. Image acquisition and display: visual perception; digital representation. Sampling and enhancement. Feature extraction and classification methods. Object recognition.
Course Hours:
3 units; H(3-2T)
|
back to top | |
|
Computer Science
641
|
Performance Issues in High Speed Networks
|
|
An overview of current research in high speed networks. Topics covered will include the current Internet, the future Internet, wireless networks, optical networks, Asynchronous Transfer Mode (ATM), TCP/IP, network traffic measurement, Web server performance, and mobile computing. Emphasis will be placed on network performance issues for next-generation Internet protocols and applications.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
643
|
Modern Wireless Networks
|
|
An introduction to the fundamentals and applications of wireless networks.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
653
|
Computational Geometry
|
|
Geometric searching, hull proximity and intersection data structures and algorithms and their complexity.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 517 or equivalent is recommended as preparation for this course.
|
back to top | |
|
Computer Science
657
|
Modelling And Visualization of Plants
|
|
Modelling, simulation and visualization of plants for computer graphics and biological purposes. Modelling of plants as an example of interdisciplinary research including computer science, biology, mathematics and physics. L-systems as a formal basis for model construction. Modelling languages. Information flow in plants. Symmetry, self-similarity and allometry of plants. Descriptive models of plant architecture. Models integrating plant structure and function. Simulation of plant development. Case studies: competition for space, phyllotaxis, tropisms, and biomechanical considerations. Reaction-diffusion models of morphogensis. Genotype-to-phenotype mapping. Modelling of plant ecosystems. Rendering and visualization of the models. A survey of applications and research directions.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 453 or equivalent is recommended as preparation for computer science students taking this course.
|
back to top | |
|
Computer Science
661
|
Algorithms for Distributed Computation
|
|
Fundamental algorithmic problems in distributed computation; impact of communication, timing, failures and other characteristics on computability and complexity of solutions.
Course Hours:
3 units; H(3-0)
Prerequisite(s):
Computer Science 561.
|
back to top | |
|
Computer Science
662
|
Agent Communications
|
|
An examination of communication paradigms in multi-agent systems. A number of paradigms will be covered including simple protocols, BDI (Believe, Desire, Intension), and social commitments.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
667
|
Computer Algebra
|
|
Fundamental problems, classical and modern algorithms, and algorithm design and analysis techniques of use in computer algebra. Integer and polynomial arithmetic. Additional problems in computer algebra, possibly including problems in computational linear algebra, factorization, and concerning systems of polynomial equations will be considered as time permits.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 413, 491 and Pure Mathematics 315, or equivalents, are recommended as preparation for this course.
|
back to top | |
|
Computer Science
669
|
Cryptography
|
|
An overview of the basic techniques in modern cryptography, with emphasis on fit-for-application primitives and protocols. Topics will include symmetric and public-key cryptosystems; digital signatures; elliptic curve cryptography; key management; attack models and well-defined notions of security.
Course Hours:
3 units; H(3-0)
Notes:
Students should not have taken any previous course in cryptography.
Also known as:
(Pure Mathematics 669)
|
back to top | |
|
Computer Science
671
|
Database Management Systems
|
|
Foundations of database applications and database systems, plus some advanced topics in data management systems will be introduced.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
672
|
Fundamentals of Social Network Analysis and Data Mining
|
|
Introduction to data mining with emphasis on frequent pattern mining, clustering and classification, data collection, network construction, basic graph theory concepts and network analysis metrics, and case studies.
Course Hours:
3 units; H(3-0)
Antirequisite(s):
Students may not have credit for more than one of Computer Science 672, 572 or 599.77
Also known as:
(formerly Computer Science 601.77)
|
back to top | |
|
Computer Science
673
|
Distributed Database Systems
|
|
Introduction to distributed database systems. Topics covered include: architecture, data design, query processing, transaction management, multidatabases, object-oriented databases and advanced system issues.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
675
|
Datawarehouse Systems
|
|
Design, development and deployment of datawarehouses. Schemas, models, data organization, OLAP, tuning, data mining and architectural models may be discussed.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
681
|
Research Methods in Human-Computer Interaction
|
|
Application of the theory and methodology of human-machine studies to real systems; theory and practice.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 481 or equivalent is recommended as preparation for this course.
|
back to top | |
|
Computer Science
683
|
Information Visualization: Theory and Practice
|
|
The theory and development of interactive visual representations of abstract data for the purpose of amplifying cognition. Topics covered can include representational issues, perceptual issues, visual literacy, spatial abstraction, and interaction issues.
Course Hours:
3 units; H(3-0)
Notes:
Computer Science 583 or equivalent is recommended as preparation for this course.
|
back to top | |
|
Computer Science
687
|
Computer Animation
|
|
Principles of traditional animation, key framing, parametric and track animation, free form deformation, inverse kinematics, dynamics, spring mass systems, particle systems, numerical integration, Lagrangian constraints, space time constraints, collisions, human animation, behavioural animation, metamorphosis, implicit animation techniques, animating liquids, gases and cloth, motion capture.
Course Hours:
3 units; H(3-2T)
|
back to top | |
|
Computer Science
689
|
Modelling for Computer Graphics
|
|
Parametric Modelling. B-splines and NURBS. Subdivision schemes. Surface subdivision. Multiresolution. Wavelets. Implicit modelling. Blends. Polygonization. Blobtree. Precise contact modelling. Solid modelling. CSG. Procedural modelling. Special topics, e.g. Differential geometry. Graph-based modelling. Topology.
Course Hours:
3 units; H(3-2T)
|
back to top | |
|
Computer Science
691
|
Rendering
|
|
Physical foundations of illuminations techniques. Color. Radiometry and photometry. Reflection models. The rendering equation. Ray tracing. Monte Carlo techniques. Sampling and antialiasing. Texturing. Radiosity. Photon tracing. Volume rendering. Image-based rendering. Real-time shading.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
695
|
Data Management in Geographical Information Systems
|
|
Examination of advanced geometric algorithms for representation, analysis and visualization of Geographical Information Systems. Data structures such as progressive mesh, ROAM, multidimensional Delauney triangulization, quadtree and space partitioning. Algorithmic techniques such as incremental, divide and conquer, sweep-plane, and dimension reduction. Algorithms for surface simplification, culling, quality measurement and reduction.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
696
|
Information Security Seminar
|
|
Topics in information security, such as security management, emerging threats, research frontiers using case studies and best practices.
Course Hours:
3 units; H(3-0)
Antirequisite(s):
Credit for Computer Science 696 and 699 will not be allowed.
Notes:
This course is intended to help students identify a project topic for Computer Science 698 and meets for one and one-half hours per week during the Fall and Winter Terms.
|
back to top | |
|
Computer Science
697
|
Biometric Security
|
|
Principles of biometric system design, technology and performance evaluation. Verification, identification and synthesis in biometrics. Traditional and emerging techniques for fingerprint matching, face recognition, iris modelling, signature authentication, and biometric pattern recognition. Multi-modal biometrics and biometric security.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
698
|
Information Security Project
|
|
An information security project conducted under the guidance of a faculty member. A report must be written and presented on completion of the course.
Course Hours:
6 units; F(3-0)
|
back to top | |
|
Computer Science
699
|
Research Methodology in Computer Science
|
|
An introduction to and survey of research areas and methods in Computer Science. Professional skills in computer science research such as reviewing, critical evaluation, and the preparation of research proposals.
Course Hours:
3 units; H(3-0)
Antirequisite(s):
Credit for Computer Science 699 and 696 will not be allowed.
Notes:
This course meets for one and one-half hours per week during the Fall and Winter Terms.
NOT INCLUDED IN GPA
|
back to top | |
|
Computer Science
701
|
Research Topics in Computer Science
|
|
In-depth course on a focused current research topic in Computer Science. Involves a significant research component and requires substantial background knowledge.
Course Hours:
3 units; H(3-0)
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
Computer Science
767
|
Advanced Topics in Multiagent Systems
|
|
An in-depth study of a selected subfield of multiagent systems including state-of-the-art research. This is a project-driven course.
Course Hours:
3 units; H(3-0)
Prerequisite(s):
Computer Science 567 or 609.
|
back to top | |
|
Computer Science
771
|
Current Trends in Database Technology
|
|
Advanced topics chosen from Bioinformatics, Data mining, Mobile Databases, Spatial Databases and Web Databases. There is a large project component.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
781
|
Advanced Topics in Human-Computer Interaction
|
|
The topics covered will change year by year depending on current advances in human computer interaction.
Course Hours:
3 units; H(3-0)
Prerequisite(s):
Computer Science 481.
Notes:
Computer Science 581 or 681 or equivalent is highly recommended as preparation for this course.
|
back to top | |
|
Computer Science
785
|
Implicit Modelling
|
|
A detailed look at modelling using implicit and iso-surface techniques taking an in-depth review of the literature. Algebraic methods will be followed by skeletal models, field function design, modelling techniques, rendering and texture mapping. Polygonisation algorithms, ray tracing implicits, techniques for animation, meta-morphosis, precise contact modelling, deformation and warping. Algorithms and data structures and implementation details will be presented. Students will be expected to make a new contribution in their project and term paper.
Course Hours:
3 units; H(3-0)
|
back to top | |
|
Computer Science
789
|
Advanced Geometric Modelling
|
|
Current research topics including spline modelling, Subdivision Surfaces, multiresolution, wavelets, analysis of the subdivision surfaces and reverse subdivision.
Course Hours:
3 units; H(3-0)
|
back to top | |
|