|
For more information about these courses, contact the Department of Computer Science: .
Notes:
- Computer Science students should also see courses listed under Software Engineering.
- Computer Science 217, 231, 235 and Data Science 211 are each introductions to computer science that include a substantial introduction to programming and that are available for credit for Computer Science majors. Students interested in these courses should consult the department and program information for the Department of Computer Science when choosing which course to take.
- 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.
|
|
Computer Science
203
|
Introduction to Problem Solving using Application Software
|
|
Introduction to computer fundamentals; contemporary topics, such as security and privacy, and the Internet and World Wide Web. Problem solving, analysis and design using application software such as spreadsheets and word processors.
Course Hours:
3 units; (3-2T)
Antirequisite(s):
Not open for registration to Computer Science majors.
|
back to top | |
|
Computer Science
217
|
Introduction to Computer Science for Multidisciplinary Studies I
|
|
Introduction to problem solving, analysis and design of small-scale computational systems and implementation using a procedural programming language. For students wishing to combine studies in computer science with studies in other disciplines.
Course Hours:
3 units; (3-2T)
Antirequisite(s):
Credit for Computer Science 217 and any of 215, 231, 235, Data Science 211, Computer Engineering 339, Engineering 233 or Digital Engineering 233 will not be allowed.
Notes:
See the statements at the beginning of the Computer Science entry.
|
back to top | |
|
Computer Science
219
|
Introduction to Computer Science for Multidisciplinary Studies II
|
|
Continuation of Introduction to Computer Science for Multidisciplinary Studies I. Emphasis on object oriented analysis and design of small-scale computational systems and implementation using an object oriented language. Issues of design, modularization and programming style will be emphasized.
Course Hours:
3 units; (4-2T)
Prerequisite(s):
Computer Science 217 or Data Science 211.
Antirequisite(s):
Credit for Computer Science 219 and any of 233, 235, Electrical Engineering 497 or Computer Engineering 493 will not be allowed.
|
back to top | |
|
Computer Science
231
|
Introduction to Computer Science for Computer Science Majors I
|
|
Introduction to problem solving, the analysis and design of small-scale computational systems, and implementation using a procedural programming language. For computer science majors.
Course Hours:
3 units; (3-2T)
Antirequisite(s):
Credit for Computer Science 231 and any of Computer Science 215, 217, 235, Data Science 211, Computer Engineering 339, Engineering 233, or Digital Engineering 233 will not be allowed.
Notes:
See the statements at the beginning of the Computer Science entry.
|
back to top | |
|
Computer Science
233
|
Introduction to Computer Science for Computer Science Majors II
|
|
Continuation of Introduction to Computer Science for Computer Science Majors I. Emphasis on object-oriented analysis and design of small-scale computational systems and implementation using an object oriented language. Issues of design, modularization, and programming style will be emphasized.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 231.
Antirequisite(s):
Credit for Computer Science 233 and any of 219, 235, Electrical Engineering 497 or Computer Engineering 493 will not be allowed.
|
back to top | |
|
Computer Science
235
|
Advanced Introduction to Computer Science
|
|
An accelerated introduction to problem solving, the analysis and design of small-scale computational systems and implementation using both procedural and object oriented programming languages. Issues of design, modularization, and programming style will be emphasized.
Course Hours:
3 units; (3-2T-2)
Prerequisite(s):
Consent of the Department.
Antirequisite(s):
Credit for Computer Science 235 and any of 215, 217, 219, 231, 233, Computer Engineering 339, 493 or Data Science 211 will not be allowed.
Notes:
See the statements at the beginning of the Computer Science entry.
|
back to top | |
|
Computer Science
251
|
Theoretical Foundations of Computer Science I
|
|
Proof techniques. Recursion and iteration. Specification of algorithmic problems, proofs of correctness, and bounds on their computational complexity. Discrete structures such as graphs, trees, strings, functions, and their computer representation. Counting, permutations, discrete probability spaces, random events. Applications in Computer Science.
Course Hours:
3 units; H(3-2T)
Prerequisite(s):
Computer Science 219 or 231.
Antirequisite(s):
Students may not register in, or have credit for, Computer Science 251 if they have previous credit for one of Mathematics 271 or 273 or are concurrently enrolled in Mathematics 271 or 273.
|
back to top | |
|
|
Computer Science
304
|
A Survey of Computer Science for Non-Majors
|
|
An accessible exploration of different computing topics. Emphasizing a familiarity with a broad array of subjects within computer science rather than depth. Topics may include computing hardware, data representation, data compression, computer graphics, sorting algorithms, artificial intelligence techniques, databases, networks and security and privacy.
Course Hours:
3 units; (3-0)
Antirequisite(s):
Not open for registration to Majors in Computer Science, Bioinformatics, Electrical Engineering, Software Engineering, Computer Engineering, Natural Sciences with a primary concentration in Computer Science or any student with at least 3 units of courses numbered 300 or above and labelled Computer Science, Software Engineering or Software Engineering for Engineers.
Also known as:
(formerly Computer Science 399.04)
|
back to top | |
|
Computer Science
313
|
Introduction to Computability
|
|
An introduction to abstract models of sequential computation, including finite automata, regular expressions, context-free grammars, and Turing machines. Formal languages, including regular, context-free, and recursive languages, methods for classifying languages according to these types, and relationships among these classes.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Mathematics 271 or 273; and Philosophy 279 or 377; and 3 units from Computer Science 219, 233 or 235.
Antirequisite(s):
Credit for Computer Science 313 and Computer Science 351 will not be allowed.
|
back to top | |
|
Computer Science
319
|
Data Structures, Algorithms, and Their Applications
|
|
Fundamental data structures, including arrays, lists, stacks, queues, trees, hash tables, and graphs. Algorithms for searching and sorting. Introduction to analysis of algorithms. Applications of these data structures and algorithms. For students wishing to combine studies in computer science with studies in other disciplines.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Computer Science 219, 233, 235, Computer Engineering 335, 339 or Software Engineering for Engineers 337.
Antirequisite(s):
Credit for Computer Science 319 and 331 will not be allowed. Computer Science majors are not permitted to register in this course.
|
back to top | |
|
Computer Science
329
|
Explorations in Information Security and Privacy
|
|
A broad survey of topics in information security and privacy, with the purpose of cultivating an appropriate mindset for approaching security and privacy issues. Topics will be motivated by recreational puzzles. Legal and ethical considerations will be introduced as necessary.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Mathematics 30-1, 30-2 or 31.
|
back to top | |
|
Computer Science
331
|
Data Structures, Algorithms, and Their Analysis
|
|
Fundamental data structures, including arrays, lists, stacks, queues, trees, hash tables, and graphs. Algorithms for searching and sorting. Introduction to the correctness and analysis of algorithms. For computer science majors and those interested in algorithm design and analysis, information security, and other mathematically-intensive areas.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Computer Science 251, Mathematics 271 or 273; and 3 units from Computer Science 219, 233, 235, Computer Engineering 335, 339 or Software Engineering for Engineers 337.
Antirequisite(s):
Credit for Computer Science 331 and 319 will not be allowed.
         Â
|
back to top | |
|
Computer Science
335
|
Intermediate Information Structures
|
|
A continuation of Computer Science 319 or 331. Collision resolution in hash tables, search algorithms, advanced tree structures, strings. Advanced algorithmic tools for the storing and manipulation of information.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 319 or 331.
       Â
|
back to top | |
|
Computer Science
351
|
Theoretical Foundations of Computer Science II
|
|
Probability spaces, random variables, expectation, independence, concentration bounds, conditional probability, repeated trials, error bounds. Turing machines and finite automata. Deterministic, nondeterministic and probabilistic models of computation. Languages, regular languages and regular expressions. Methods for classifying computational problems as decidable or undecidable.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Computer Science 219, 233 or 235; and Computer Science 251 or with department consent Statistics 213 and either Mathematics 271 or 273; and 3 units from Mathematics 249, 265 or 275; and Philosophy 279 or 377.Ìý
Antirequisite(s):
Credit for Computer Science 351 and Computer Science 313 will not be allowed.
|
back to top | |
|
Computer Science
355
|
Computing Machinery I
|
|
An introduction to computing machinery establishing the connection between programs expressed in a compiled language, an assembly language, and machine code, and how such code is executed. Includes the detailed study of a modern CPU architecture, its assembly language and internal data representation, and the relationship between high-level program constructs and machine operations.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Computer Science 219, 233 or 235.
Antirequisite(s):
Credit for Computer Science 355 and 265 or Computer Engineering 369 will not be allowed.
|
back to top | |
|
Computer Science
359
|
Computing Machinery II
|
|
An introduction to hardware and microprocessor design, including the connection between gate-level digital logic circuits and sequential machines that can execute an algorithm and perform input and output.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 355 and Philosophy 279 or 377.
Antirequisite(s):
Credit for Computer Science 359 and any of 325, 455 or Computer Engineering 415 will not be allowed.
Notes:
A supplementary fee will be assessed to cover additional costs associated with this course.
|
back to top | |
|
Computer Science
393
|
Metacognition in Self-Directed Learning Methodologies
|
|
Remain current in computer science as this field evolves by developing a reflective life-long learning practice. Independent student work will include using a wide variety of sources and developing the ability to self-assess progress in learning and knowledge in topics related to computer science.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 219, 233 or Data Science 311 and enrolment in one of the Majors in Computer Science, Bioinformatics, Electrical Engineering, Software Engineering, Computer Engineering, Natural Sciences with a primary concentration in Computer Science.
Also known as:
(formerly Computer Science 399.03)
|
back to top | |
|
Computer Science
399
|
Special Topics in Computer Science
|
|
Exploration of various areas in Computer Science. Topics will vary from year-to-year. It will be offered as required to provide the opportunity for students to engage in additional areas in Computer Science. Before registration, consult the Department of Computer Science for topics offered.
Course Hours:
3 units; (3-0) or (3-1T)
Prerequisite(s):
Consent of the Department.
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
Computer Science
405
|
Software Entrepreneurship
|
|
Development of business models, building software prototypes and creation of pitch presentations to create a software-based business.
Course Hours:
3 units; (3-1.25T)
Prerequisite(s):
Software Engineering 300 or 301.
Notes:
Taught in collaboration with the Haskayne School of Business.
Also known as:
(formerly Computer Science 499.01)
|
back to top | |
|
Computer Science
409
|
History of Computation
|
|
The history of computation from the earliest times to the modern era.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 355.
|
back to top | |
|
Computer Science
411
|
Compiler Construction
|
|
Introduction to compilers, interpreters, and the tools for parsing and translation. Lexical analysis, context free grammars and software tools for their recognition. Attribute grammars and their applications in translation and compiling.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 319 or 331; and Computer Science 355 or Computer Engineering 369.
|
back to top | |
|
Computer Science
413
|
Design and Analysis of Algorithms I
|
|
Techniques for the analysis of algorithms, including counting, summation, recurrences, and asymptotic relations; techniques for the design of efficient algorithms, including greedy methods, divide and conquer, and dynamic programming; examples of their application; an introduction to tractable and intractable problems.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 331; and 313 or 351; and Mathematics 211 or 213; and 3 units from Mathematics 249, 265 or 275.
Notes:
Students who have credit for Computer Science 319 instead of Computer Science 331 should contact the department for instructions on how to enrol in this course.
|
back to top | |
|
Computer Science
418
|
Introduction to Cryptography
|
|
The basics of cryptography, with emphasis on attaining well-defined and practical notations of security. Symmetric and public key cryptosystems; one-way and trapdoor functions; mechanisms for data integrity; digital signatures; key management; applications to the design of cryptographic systems. In addition to written homework, assessment will involve application programming; additional mathematical theory and proof-oriented exercises will be available for extra credit.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 331 and 3 units from Computer Science 351, Mathematics 271, 273, 315 or Pure Mathematics 315.
Antirequisite(s):
Credit for Computer Science 418 and any of Computer Science 429, 557, Mathematics 318, Pure Mathematics 329 or 418 will not be allowed.
Notes:
Students who have credit for Computer Science 319 instead of Computer Science 331 should contact the department for instructions on how to enrol in this course.
|
back to top | |
|
Computer Science
433
|
Artificial Intelligence
|
|
An examination of the objectives, key techniques and achievements of work on artificial intelligence in Computer Science.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 313 or 351; and Philosophy 279 or 377.
|
back to top | |
|
|
Computer Science
449
|
Programming Paradigms
|
|
Examination of the basic principles of the major programming language paradigms. Focus on declarative paradigms such as functional and logic programming. Data types, control expressions, loops, types of references, lazy evaluation, different interpretation principles, information hiding.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 319 or 331; and Philosophy 279 or 377.
Antirequisite(s):
Credit for Computer Science 449 and 349 will not be allowed.
Notes:
The prerequisite of Philosophy 279 or 377 is waived for Engineering students in the Software Engineering program.
|
back to top | |
|
Computer Science
453
|
Introduction to Computer Graphics
|
|
Introduction to computer graphics. Principles of raster image generation. Example of a graphics API. Graphics primitives. Co-ordinate systems, affine transformations and viewing of graphical objects. Introduction to rendering including shading models and ray tracing. Introduction to modelling including polygon meshes, subdivision, and parametric curves and surfaces.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 319 or 331; and Mathematics 211 or 213; and 3 units from Mathematics 253, 267, 277, 283 or Applied Mathematics 219.
|
back to top | |
|
|
Computer Science
461
|
Information Structures
|
|
File architecture and manipulation techniques for various file types. Physical characteristics of current mass storage devices. Advanced data structures and algorithms for implementing various sequential and hierarchical file structures. File organization and design for various applications, file systems and other storage management techniques including website design.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 355; and 319 or 331.
|
back to top | |
|
|
Computer Science
481
|
Human-Computer Interaction I
|
|
Fundamental theory and practice of the design, implementation, and evaluation of human-computer interfaces. Topics include: principles of design; methods for evaluating interfaces with or without user involvement; techniques for prototyping and implementing graphical user interfaces.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Software Engineering 300, 301, Software Engineering 480 or Data Science 311.
|
back to top | |
|
|
Computer Science
499
|
Special Topics in Computer Science
|
|
Exploration of various areas in Computer Science. Topics will vary from year-to-year. It will be offered as required to provide the opportunity for students to engage in additional areas in Computer Science. Before registration, consult the Department of Computer Science for topics offered.
Course Hours:
3 units; (3-0) or (3-1T)
Prerequisite(s):
Consent of the Department.
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
Computer Science
501
|
Advanced Programming Techniques
|
|
Theory and application of advanced programming methods and tools. Recent issues as well as those of an enduring nature will be discussed.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 349 or 449.
|
back to top | |
|
Computer Science
502
|
Research Project
|
|
A substantial research project under the guidance of a faculty member. A report must be written and presented on completion of the course.
502.01. Research Project in Computer Science
502.02. Research Project in Theoretical Computer Science
502.03. Research Project in Computer Graphics
502.04. Research Project in Information Security
502.05. Research Project in Scientific Computation
502.06. Research Project in Software Engineering
502.07. Research Project in Human Computer Interaction
502.08. Research Project in Networks and Distributed Computing
Course Hours:
6 units; (1-5)
Prerequisite(s):
Consent of the Department.
Antirequisite(s):
Credit for Computer Science 502 and any of 503, Software Engineering for Engineers 599 or 591 will not be allowed.
Notes:
Students intending to complete a research project in a specific area of computer science should register in the version of Computer Science 502 corresponding to that area, if such a course is available. Other students should register in Computer Science 502.01. Permission to register in Computer Science 502 is generally given only to students with a minimum GPA of 3.30 over the last 90 units. When demand exceeds capacity, registration in Computer Science 502 is limited to students in Honours programs in Computer Science.
|
back to top | |
|
Computer Science
503
|
Project
|
|
A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.
503.01. Project in Computer Science
503.02. Project in Theoretical Computer Science
503.03. Project in Computer Graphics
503.04. Project in Information Security
503.05. Project in Scientific Computation
503.06. Project in Software Engineering
503.07. Project in Human Computer Interaction
503.08. Project in Networks and Distributed Computing
Course Hours:
3 units; (1-5)
Prerequisite(s):
Consent of the Department.
Antirequisite(s):
Credit for Computer Science 503 and either 502 or Software Engineering for Engineers 599 will not be allowed.
Notes:
Students intending to complete a project in a specific area of computer science should register in the version of Computer Science 503 corresponding to that area, if such a course is available. Other students should register in Computer Science 503.01.
|
back to top | |
|
Computer Science
505
|
Foundations of Access Control
|
|
Application of formal methods and mathematical logic to the modelling of access control systems and the design of policy languages. Topics include safety and resiliency analysis, proof of policy compliance, expressiveness of policy languages, policy analysis, as well as a survey of modern paradigms of access control.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 413 and 449.
Antirequisite(s):
Credit for Computer Science 505 and either 601.40 or 604 will not be allowed.
|
back to top | |
|
Computer Science
511
|
Introduction to Complexity Theory
|
|
Time and space complexity; the classes P, LOGSPACE, PSPACE and their nondeterministic counterparts; containments and separations between complexity classes; intractability and the theory of NP-completeness; complexity theories for probabilistic algorithms and for parallel algorithms.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 413.
Antirequisite(s):
Credit for Computer Science 511 and 611 will not be allowed.
|
back to top | |
|
Computer Science
513
|
Computability
|
|
Computable functions; decidable and undecidable problems; Church's thesis and recursive functions.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 313 or 351.
|
back to top | |
|
Computer Science
517
|
Design and Analysis of Algorithms II
|
|
Advanced techniques for the design and analysis of deterministic and probabilistic algorithms; techniques for deriving lower bounds on the complexity of problems.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 413.
|
back to top | |
|
Computer Science
518
|
Introduction to 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; (3-0)
Prerequisite(s):
Computer Science 413; and Mathematics 211 or 213.
Antirequisite(s):
Credit for Computer Science 518 and Computer Science 667 will not be allowed.
|
back to top | |
|
Computer Science
519
|
Introduction to Quantum Computation
|
|
Introduction to quantum computing. Quantum algorithms, quantum search, quantum fourier transforms, quantum error correcting codes, quantum cryptography, nonlocality and quantum communication complexity, and quantum computational complexity.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 413; and Mathematics 311 or 313.
Antirequisite(s):
Credit for Computer Science 519 and 619 will not be allowed.
|
back to top | |
|
Computer Science
521
|
Foundations of Functional Programming
|
|
Theoretical foundations of functional programming: the lambda-calculus, beta-reduction, confluence, and reduction strategies. Programming syntax: solving recursive equations with the Y-combinator, let and letrec, types, datatypes, and patterns. Programming in a functional language: recursion patterns, useful combinators, maps, and folds, for datatypes. Example applications: recursive descent parsing, unification, combinatorial algorithms, theorem proving.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 313 or 351; and Computer Science 349 or 449.
|
back to top | |
|
Computer Science
522
|
Introduction to Randomized Algorithms
|
|
Techniques for the 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; (3-2T)
Prerequisite(s):
Computer Science 413.
Antirequisite(s):
Credit for Computer Science 522 and 622 will not be allowed.
|
back to top | |
|
Computer Science
525
|
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.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 457; and 3 units from Computer Science 351, Mathematics 271 or 273.
Antirequisite(s):
Credit for Computer Science 525 and either 529 or 625 will not be allowed.
|
back to top | |
|
Computer Science
526
|
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.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 329 and 441.
Antirequisite(s):
Credit for Computer Science 526 and either 529 or 626 will not be allowed.
           Â
|
back to top | |
|
Computer Science
527
|
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; (3-0)
Prerequisite(s):
Computer Science 313 and 457 and consent of the Department.
Antirequisite(s):
Credit for Computer Science 527 and 627 will not be allowed.
|
back to top | |
|
Computer Science
528
|
Ads, 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; (3-0)
Prerequisite(s):
Computer Science 313 and 457 and consent of the Department.
Antirequisite(s):
Credit for Computer Science 528 and 628 will not be allowed.
|
back to top | |
|
|
Computer Science
531
|
Systems Modelling and Simulation
|
|
An introduction to the modelling and simulation of stochastic systems; programming language issues; model and tool design; input data modelling; simulation experiments; and the interpretation of simulation results.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 457 and 3 units from Mathematics 321, Statistics 205, 211, 213 or 321.
|
back to top | |
|
Computer Science
535
|
Introduction to 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; (3-0)
Prerequisite(s):
3 units from Mathematics 311, 313, 331, 353, 376, Applied Mathematics 307, 311, Pure Mathematics 331.
Antirequisite(s):
Credit for Computer Science 535 and 635 will not be allowed.
|
back to top | |
|
Computer Science
544
|
Machine Learning
|
|
Presenting various techniques for learning various kinds of knowledge, including rules, parameters, trees and graphs, partitions of sets, sequences and behaviors, and cases. Pointing out the components that can be improved using knowledge about the application area of a system. Looking at various pre-processing and post-processing improvement techniques.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 433.
Antirequisite(s):
Credit for Computer Science 544 and 599.44 will not be allowed.
|
back to top | |
|
Computer Science
550
|
Systems Administration
|
|
Topics and practices in systems administration and management. Required and optional administration duties and responsibilities. Moral and ethical conundrums, and legal responsibilities, in systems operation. Configuration and installation of operating systems and network and systems services.
Course Hours:
6 units; (2-3)
Prerequisite(s):
Computer Science 441, 457 and consent of the Department.
|
back to top | |
|
Computer Science
556
|
Machine Learning in Biometric Security
|
|
Principles of machine learning in biometric system design. Examine methods of expert decision making in multi-modal systems using rank, score, decision and fuzzy level fusion. Biometric classification using traditional machine learning methods and modern deep learning architectures. Application topics may include image processing, pattern recognition, data mining, medicine, defense and cybersecurity.
Course Hours:
3 units; (3-0)
Prerequisite(s):
3 units from Computer Science 319, 331, or Data Science 311.
Antirequisite(s):
Credit for Computer Science 556 and either 601.57 or 656 will not be allowed.
|
back to top | |
|
Computer Science
559
|
Introduction to Distributed Systems
|
|
Designing and implementing distributed systems that overcome challenges due to concurrent computation, failure of components in the system and heterogeneity of processors and communication channels.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 441 and 457.
|
back to top | |
|
Computer Science
561
|
Introduction to Distributed Algorithms
|
|
Basic problems in distributed systems such as symmetry breaking, consensus, resource allocation, and synchronization. The impact of system characteristics, such as models of communication, timing and failure, and of solution requirements, such as correctness and complexity criteria and algorithmic constraints, on the computability and complexity of these problems. Techniques for solving problems under different models will be emphasized.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 413.
Antirequisite(s):
Credit for Computer Science 561 and 661 will not be allowed.
|
back to top | |
|
Computer Science
565
|
Emergent Computing
|
|
An insight into a new mindset for programming as an emergent and evolutionary process of "breeding," rather than constructing. Programs can evolve to perform specific tasks in a bottom-up fashion rather than being manually coded. Topics will include: decentralized agent-based programming, massive parallelism and interaction, evolution, swarm intelligence.
Course Hours:
3 units; (3-0)
Prerequisite(s):
3 units from Computer Science 217, 231, Data Science 211; and 6 units offered by the Faculty of Science at the 400 level or above.
|
back to top | |
|
Computer Science
567
|
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; (3-1T)
Prerequisite(s):
Computer Science 457 and 433.
Antirequisite(s):
Credit for Computer Science 567 and 609 or Software Engineering 697 will not be allowed.
|
back to top | |
|
Computer Science
568
|
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; (3-0)
Prerequisite(s):
Computer Science 433 and consent of the Department.
Antirequisite(s):
Credit for Computer Science 568 and 662 will not be allowed.
|
back to top | |
|
Computer Science
571
|
Design and Implementation of Database Systems
|
|
Implementation and design of modern database systems including query modification/optimization, recovery, concurrency, integrity, and distribution.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 471.
Antirequisite(s):
Credit for Computer Science 571 and 671 will not be allowed.
|
back to top | |
|
Computer Science
572
|
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; (3-0)
Prerequisite(s):
Computer Science 471 or Data Science 311.
Antirequisite(s):
Credit for Computer Science 572 and either 599.77 and 672 will not be allowed.
|
back to top | |
|
Computer Science
573
|
Visualization and Analytics
|
|
The full data analysis lifecycle from collection to presentation. Practical application of exploratory statistical, analytical, and visualization techniques to real-world data with a focus on critical thinking, accuracy, and ethics.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Computer Science 319, 331 or Data Science 311.
Antirequisite(s):
Credit for Computer Science 573 and 599.87 will not be allowed.
|
back to top | |
|
Computer Science
575
|
iProgramming for Creative Minds
|
|
Design, develop and market apps. This course has a focus on developing, implementing and evaluating ideas in teams and gaining entrepreneurial skills for software development and marketing.
Course Hours:
3 units; (3-0)
Prerequisite(s):
3 units from Software Engineering 300, 301, Data Science 311.
Also known as:
(formerly Computer Science 599.72)
|
back to top | |
|
Computer Science
577
|
Biometric Technologies
|
|
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 information fusion. Privacy and ethics considerations in deployment of biometric systems.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 453.
Also known as:
(formerly Computer Science 599.97)
|
back to top | |
|
Computer Science
581
|
Human-Computer Interaction II
|
|
Intermediate and advanced topics and applications in human-computer interaction, to further one's skills for designing highly interactive human-computer interfaces.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Computer Science 481 and consent of the Department.
|
back to top | |
|
Computer Science
583
|
Introduction to Information Visualization
|
|
Principles of information representation, presentation and interaction. Development of mappings from data to visual structures and exploration, navigation, cues, distortion and emphasis techniques.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
3 units from Computer Science 319, 331 or Data Science 311.
|
back to top | |
|
Computer Science
584
|
Human-Robot Interaction
|
|
Introduction to the design, implementation and evaluation of human-robot interfaces. Topics include the evaluation of human-robot interaction (HRI), theoretical, philosophical and ethical issues, exploration of applications and tasks, prototyping HRI tools, and practical implementation and evaluation methods.
Course Hours:
3 units; (3-2T)
Prerequisite(s):
Computer Science 481.
|
back to top | |
|
Computer Science
585
|
Games Programming
|
|
Standard techniques for the implementation of computer games. Standard multimedia programming environments and high performance multimedia. Special purpose rendering engines. Interactive control and feedback; modelling.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Computer Science 453 and consent of the Department.
|
back to top | |
|
Computer Science
587
|
Fundamentals of 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; (3-2T)
Prerequisite(s):
Computer Science 453.
Antirequisite(s):
Credit for Computer Science 587 and 687 will not be allowed.
|
back to top | |
|
Computer Science
589
|
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; (3-2T)
Prerequisite(s):
Computer Science 453.
Antirequisite(s):
Credit for Computer Science 589 and 689 will not be allowed.
|
back to top | |
|
Computer Science
591
|
Rendering
|
|
Physical foundations of illuminations techniques. Colour. 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; (3-2T)
Prerequisite(s):
Computer Science 453.
Antirequisite(s):
Credit for Computer Science 591 and 691 will not be allowed.
|
back to top | |
|
Computer Science
594
|
Software Engineering Project
|
|
A software engineering project conducted under the guidance of a faculty member.
Course Hours:
6 units; (1-5)
Prerequisite(s):
Consent of the Department.
Notes:
Includes a research, writing and presentation component.
|
back to top | |
|
Computer Science
598
|
Special Topics in Computer Science
|
|
New areas in Computer Science. It will be offered only as required. Before registration consult the Department of Computer Science for topics offered.
Course Hours:
6 units; (3-0)
Prerequisite(s):
Consent of the Department.
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
Computer Science
599
|
Special Topics in Computer Science
|
|
Exploration of various areas in Computer Science. Topics will vary from year-to-year. It will be offered as required to provide the opportunity for students to engage in additional areas in Computer Science. Before registration, consult the Department of Computer Science for topics offered.
Course Hours:
3 units; (3-0) or (3-2)
Prerequisite(s):
Consent of the Department.
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
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; (3-0)
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
Computer Science
602
|
Explorations in Information Security and Privacy
|
|
Surveys topics in information security and privacy, with the purposes of cultivating an appropriate mindset for approaching security and privacy issues and developing basic familiarity with related technical controls.
Course Hours:
3 units; (3-0)
Notes:
Not intended for students specializing in information security and privacy technologies.
Also known as:
(formerly Computer Science 601.50)
|
back to top | |
|
Computer Science
604
|
Foundations of Access Control
|
|
Application of formal methods and mathematical logic to the modelling of access control systems and the design of policy languages. Topics include safety and resiliency analysis, proof of policy compliance, expressiveness of policy languages, policy analysis, as well as a survey of modern paradigms of access control.
Course Hours:
3 units; (3-0)
Also known as:
(formerly Computer Science 601.40)
|
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; (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; (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; (3-0)
Antirequisite(s):
Credit for Computer Science 609 and either Computer Science 567 or 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; (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; (3-0)
Antirequisite(s):
Credit for Computer Science 611 and Computer Science 511 will not be allowed.
|
back to top | |
|
Computer Science
615
|
Computational Techniques for Graphics and Visualization
|
|
Various case studies from the fields of graphics and visualization. Topics in numerical linear algebra, numerical optimization, and discrete differential geometry.
Course Hours:
3 units; (3-0)
Antirequisite(s):
Credit for Computer Science 615 and 601.13 will not be allowed.
   Â
|
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; (3-0)
|
back to top | |
|
Computer Science
619
|
Quantum Computation
|
|
Introduction to quantum computing. Quantum algorithms, quantum search, quantum fourier transforms, quantum error correcting codes, quantum cryptography, nonlocality and quantum communication complexity, and quantum computational complexity.
Course Hours:
3 units; (3-0)
Antirequisite(s):
Credit for Computer Science 619 and 519 will not be allowed.
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 622 and 522 will not be allowed.
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 625 and 525 will not be allowed.
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 626 and 526 will not be allowed.
 Â
|
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; (3-0)
|
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; (3-2T)
Antirequisite(s):
Credit for Computer Science 630 and 530 will not be allowed.
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 635 and 535 will not be allowed.
  Â
|
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; (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; (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; (3-0)
|
back to top | |
|
Computer Science
656
|
Machine Learning in Biometric and Cybersecurity
|
|
Principles of machine learning in biometric system design. Multi-modal, trustworthy and fuzzy decision fusion. Traditional machine learning methods and modern deep learning architectures.
Applications in image processing, pattern recognition, data mining, medicine, human-computer interaction, oil and gas exploration, defense and cybersecurity.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Computer Science 319 or 331 or Data Science 311.
Antirequisite(s):
Credit for Computer Science 656 and 556 will not be allowed.
Also known as:
(formerly Computer Science 601.57)
|
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; (3-0)
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 661 and 561 will not be allowed.
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 662 and 568 will not be allowed.
 Â
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 667 and 518 will not be allowed.
    Â
|
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; (3-0)
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 671 and 571 will not be allowed.
 Â
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 672 and either 572 or 599.77 will not be allowed.
 Â
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; (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; (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; (3-0)
|
back to top | |
|
Computer Science
682
|
Independent Research Project
|
|
A research project conducted under the guidance of a faculty member. A report must be presented on completion of the course.
Course Hours:
3 units; (0-3)
Prerequisite(s):
Consent of the Department.
MAY BE REPEATED ONCE FOR CREDIT
|
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; (3-0)
|
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; (3-2T)
Antirequisite(s):
Credit for Computer Science 687 and 587 will not be allowed.
 Â
|
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; (3-0)
Antirequisite(s):
Credit for Computer Science 689 and 589 will not be allowed.
  Â
|
back to top | |
|
Computer Science
691
|
Rendering
|
|
Physical foundations of illuminations techniques. Colour. 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; (3-0)
Antirequisite(s):
Credit for Computer Science 691 and 591 will not be allowed.
|
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; (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; (3-0)
Antirequisite(s):
Credit for Computer Science 696 and 699 will not be allowed.
|
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; (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; (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; (3-0)
Antirequisite(s):
Credit for Computer Science 699 and 696 will not be allowed.
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; (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; (3-0)
Prerequisite(s):
Computer Science 567 or 609.
|
back to top | |
|
Computer Science
771
|
Current Trends in Database Technology
|
|
Advanced topics chosen from state of the art trends in data management and analysis, including big data management, data mining, machine learning, network analysis and their applications in healthcare, homeland security, and business. There is a large project component.
Course Hours:
3 units; (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; (3-0)
Prerequisite(s):
Computer Science 481.
|
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; (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; (3-0)
|
back to top | |
|