Computer Science (COMP)
COMP 1000 Introductory Programming: Think Like a Computer 3 cr
(Lab required) To develop the apps we use every day, you need to understand how computers ‘think.’ In this course students will learn to mentally simulate how a computer operates and read and write simple computer programs. Students will gain an understanding of how information is stored and computations are performed. This is an excellent pathway into computer programming for those with no prior experience. May not be used to fulfill computer science requirements in a Computer Science Honours, Joint Honours, or Major program. May not be taken once in a declared Computer Science Honours, Joint Honours, or Major program. May be used as an elective if taken prior to entry.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100.
Prerequisites: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100.
Attributes: Science, Recommended Intro Courses
COMP 1002 Introduction to Tools and Techniques in Computer Science 1 1.5 cr
This is a lab-based course. Every computer scientist needs to make use of an expansive set of modern computing tools and techniques. This course provides a hands-on experiential introduction to working with the tools and techniques we use every day to design, develop, analyze, and maintain software.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100.
Prerequisite: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100.
Attributes: Science
COMP 1006 Introduction to Tools and Techniques in Computer Science 2 1.5 cr
This is a lab-based course. Every computer scientist needs to make use of an expansive set of modern computing tools and techniques. This course continues the hands-on experiential introduction to working with the tools and techniques we use every day to design, develop, analyze, and maintain software.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 1002.
Prerequisite: COMP 1002.
Attributes: Science
COMP 1010 Introductory Computer Science 1 3 cr
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100.
Prerequisite: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100.
Equiv To: COMP 1011
Attributes: Science, Recommended Intro Courses
COMP 1012 Computer Programming for Scientists and Engineers 3 cr
Equiv To: COMP 1013
Attributes: Science, Recommended Intro Courses
COMP 1020 Introductory Computer Science 2 3 cr
(Lab required) More features of a procedural language, elements of programming. May not be held with COMP 1021.
Equiv To: COMP 1021
Attributes: Science, Recommended Intro Courses
COMP 1500 Computing: Ideas and Innovation 3 cr
An introduction to the topics of Computer Science and problem solving. Students will learn concepts in computer programming. May not be used to fulfill computer science requirements in a Computer Science Honours, Joint Honours, Major, General or Minor program. May not be taken once in a declared Computer Science Honours, Joint Honours, Major, General or Minor program. May be used as an elective if taken prior to entry.
Attributes: Science, Recommended Intro Courses
COMP 1600 Navigating Your Digital World 3 cr
From broad technical descriptions to the social and environmental impacts of Computer Science, we analyze and critique the networks, technologies, and social factors that co-shape our world.
Mutually Exclusive: COMP 1270, COMP 1271
Attributes: Science, Recommended Intro Courses
COMP 2002 Tools and Techniques in Computer Science 1 1.5 cr
This is a lab-based course. Every computer scientist needs to make use of an expansive set of programming tools and techniques. This course provides a hands-on experiential introduction to working with the programming tools and techniques we use every day to develop and maintain software.
Attributes: Science
COMP 2006 Tools and Techniques in Computer Science 2 1.5 cr
This is a lab-based course. Every computer scientist needs to make use of an expansive set of programming tools and techniques. This course continues the hands-on experiential introduction to working with the programming tools and techniques we use every day to develop and maintain software.
Attributes: Science
COMP 2060 Special Topics in Computer Science 3 cr
Computer Science encompasses a broad array of ideas and special topic areas. In this course students will pursue a specific introductory topic, which will vary from year to year. This course can be completed as a topics course multiple times under different titles.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Consent of Department.
Prerequisite: Consent of Department.
Attributes: Science
COMP 2080 Algorithms: Design and Implementation 3 cr
Attributes: Science
COMP 2140 Data Structures: Analysis and Implementation 3 cr
Introduction to the representation, implementation, and analysis of common data structures: stacks, queues, hash tables, binary and balanced trees. Algorithms for manipulating data structures will be analyzed using asymptotic notation.
Equiv To: COMP 2061
Attributes: Science
COMP 2150 Object Orientation 3 cr
Design and development of object-oriented software. Topics will include inheritance, polymorphism, data abstraction and encapsulation. Examples will be drawn from several programming languages. This course is intended for students admitted to the Computer Science Honours, Computer Science Major, Computer Science – Statistics Joint Honours, Computer Engineering, Data Science Major, the Applied Math with Computer Science Major, or the Statistics Honours or Major, prior to Fall 2025.
Attributes: Science
COMP 2160 Programming Practices 3 cr
Introduction to issues involved in real-world computing. Topics will include memory management, debugging, compilation, performance, and good programming practices. This course is intended for students admitted to the Computer Science Honours, Computer Science Major, Computer Science – Mathematics Joint Honours, Computer Science – Physics and Astronomy Joint Honours, Computer Science – Statistics Joint Honours, Computer Engineering, Data Science Major, or the Applied Math with Computer Science Major, prior to Fall 2025.
Attributes: Science
COMP 2190 Introduction to Scientific Computing 3 cr
An applied computational course introducing topics such as approximation by polynomials, solution of non-linear equations, linear systems, simulation and computational geometry. May not hold with COMP 2191.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: One of COMP 1020 or COMP 1021, or COMP 1012 or COMP 1013; and one of MATH 1230, MATH 1500, MATH 1501, MATH 1510, MATH 1520, or MATH 1690. Prerequisite or concurrent registration: One of MATH 1220, MATH 1300, MATH 1301, or MATH 1310.
Prerequisites: One of COMP 1020 or COMP 1021, or COMP 1012 or COMP 1013; and one of MATH 1230, MATH 1500, MATH 1501, MATH 1510, MATH 1520, or MATH 1690. Prerequisite or concurrent registration: One of MATH 1220, MATH 1300, MATH 1301, or MATH 1310.
Equiv To: COMP 2191
Attributes: Science
COMP 2280 Introduction to Computer Systems 3 cr
Data representation and manipulation, machine-level representation of programs, assembly language programming, and basic computer architecture. Not available to students who have previously completed ECE 3610.
Mutually Exclusive: ECE 3610
Attributes: Science
COMP 2400 Programming Paradigms 3 cr
Attributes: Science
COMP 2450 Software Development 1 3 cr
Real-world software development involves many different parts of Computer Science: software design, validation and verification, user interface design, computer security, and information management. This course introduces students to the elements of software development. May not be held with COMP 2150 or COMP 2160. COMP 1006 is recommended.
Attributes: Science
COMP 2452 Software Development 2 3 cr
This course provides more advanced coverage of current approaches to software design, validation and verification, human interface design, computer security, and information management. May not be held with COMP 2150.
Attributes: Science
COMP 2600 Technical Communication in Computer Science 3 cr
This course is designed to help students become more effective and confident writers in the context of the computing profession. Students will be introduced to a broad range of written and oral presentation styles used in the computing workplace. This course is restricted to students in a Computer Science Major, Honours, or Joint Honours program. May not be held with the former COMP 3040.
Mutually Exclusive: COMP 3040
Attributes: Science
COMP 2980 Workterm 1 0 cr
Work assignment in business, industry, or government for students registered in the Computer Science Cooperative Option. Requires submission of a written report covering the work completed during the four-month professional assignment. (Pass/Fail)
Attributes: Science
COMP 3010 Distributed Computing 3 cr
An introduction to the development of client server and peer-to-peer systems through web applications, distributed programming models, and distributed algorithms.
Attributes: Science
COMP 3020 Human-Computer Interaction 1 3 cr
Attributes: Science
COMP 3030 Automata Theory and Formal Languages 3 cr
An introduction to automata theory, grammars, formal languages and their applications. Topics: finite automata, regular expressions and their properties; context-free grammars, pushdown automata and properties of context-free languages; Turing machines and their properties.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2080.
Prerequisite: COMP 2080.
Attributes: Science
COMP 3060 Intermediate Topics in Computer Science 3 cr
Computer Science encompasses a broad array of ideas and special topic areas. In this course students will pursue a specific intermediate topic, which will vary from year to year. This course can be completed as a topics course multiple times under different titles.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Consent of Department.
Prerequisite: Consent of Department.
Attributes: Science
COMP 3170 Analysis of Algorithms and Data Structures 3 cr
Fundamental algorithms for sorting, searching, storage management, graphs, databases and computational geometry. Correctness and analysis of those algorithms using specific data structures. An introduction to lower bounds and intractability.
Attributes: Science
COMP 3190 Introduction to Artificial Intelligence 3 cr
Principles of artificial intelligence: problem solving, knowledge representation and manipulation; the application of these principles to the solution of 'hard' problems.
Attributes: Science
COMP 3290 Introduction to Compiler Construction 3 cr
Introduction to the standard compiler phases: scanning, parsing, symbol-table management, code generation, and code optimization. The emphasis is on the simpler techniques for compiler construction such as recursive descent. COMP 2400 is recommended for Computer Engineering Students.
Attributes: Science
COMP 3350 Software Engineering 1 3 cr
Introduction to software engineering. Software life cycle models, system and software requirements analysis, specifications, software design, testing and maintenance, software quality.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: 6 credit hours of COMP courses at the 3000 level or ECE 3740.
Prerequisites: 6 credit hours of COMP courses at the 3000 level or ECE 3740.
Attributes: Science
COMP 3370 Computer Organization 3 cr
Principles of computer systems architecture, organization and design. Performance, instruction sets, processors, input/output, memory hierarchies.
Attributes: Science
COMP 3380 Databases Concepts and Usage 3 cr
An introduction to database systems including the relational, hierarchical, network and entity-relationship models with emphasis on the relational model and SQL.
Attributes: Science
COMP 3430 Operating Systems 3 cr
Operating systems, their design, implementation, and usage. COMP 2400 is recommended for Computer Engineering Students.
Mutually Exclusive: ECE 3630
Attributes: Science
COMP 3440 Programming Language Concepts 3 cr
An introduction to major concepts involved in the design of modern programming languages. The imperative, functional, and logical families and differences between them. Facilities for high level data and control structures, modular programming, data typing, and other topics will be covered.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: one of COMP 2140 or COMP 2061.
Prerequisite: one of COMP 2140 or COMP 2061.
Attributes: Science
COMP 3490 Computer Graphics 1 3 cr
An introductory course in computer graphics including topics such as raster graphics, two and three dimensional transforms, and simple rendering.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 2140 and [(one of COMP 2150, COMP 2452, or ECE 3740) or 3 credit hours of MATH at the 2000 level] and [one of MATH 1220, MATH 1300 (B), MATH 1301 (B), MATH 1310 (B), MATH 1210 (B), or MATH 1211 (B)] and [one of MATH 1230, MATH 1500 (B), MATH 1501 (B), MATH 1510 (B), the former MATH 1520 (B), MATH 1524 (B), or MATH 1525 (B)].
Prerequisites: COMP 2140 and [(one of COMP 2150, COMP 2452, or ECE 3740) or 3 credit hours of MATH at the 2000 level] and [one of MATH 1220, MATH 1300 (B), MATH 1301 (B), MATH 1310 (B), MATH 1210 (B), or MATH 1211 (B)] and [one of MATH 1230, MATH 1500 (B), MATH 1501 (B), MATH 1510 (B), the former MATH 1520 (B), MATH 1524 (B), or MATH 1525 (B)].
Attributes: Science
COMP 3980 Workterm 2 0 cr
Work assignment in business, industry, or government for students registered in the Computer Science Cooperative Option. Requires submission of a written report covering the work completed during the four-month professional assignment. (Pass/Fail).
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2980 (P).
Prerequisite: COMP 2980 (P).
Attributes: Science
COMP 4020 Human-Computer Interaction 2 3 cr
Advanced issues in the field of human-computer interaction. Topics will be selected from current research and development issues in the field of HCI.
Attributes: Science
COMP 4050 Project Management 3 cr
Introduction to the issues involved in managing large, complex software projects.
Attributes: Science
COMP 4060 Advanced Topics in Computer Science 3 cr
Computer Science encompasses a broad array of ideas and special topic areas. In this course students will pursue a specific topic, which will vary from year to year. This course can be completed as a topics course multiple times under different titles.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Consent of Department.
Prerequisite: Consent of Department.
Attributes: Science
COMP 4062 Honours Topics in Computer Science 3 cr
Computer Science encompasses a broad array of ideas and special topic areas. In this course students will pursue a specific advanced topic, which will vary from year to year. Available to fourth-year Honours or Joint Honours Computer Science students only. This course can be completed as a topics course multiple times under different titles.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Consent of Department.
Prerequisite: Consent of Department.
Attributes: Science
COMP 4140 Introduction to Cryptography and Cryptosystems 3 cr
Description and analysis of cryptographic methods used in the authentication and protection of data. Classical cryptosystems and cryptoanalysis, the Advanced Encryption Standard (AES) and Publickey cryptosystems.
Attributes: Science
COMP 4180 Intelligent Mobile Robotics 3 cr
Topics include artificial intelligence, computer vision, human-robot interaction, and multi-robot systems. These abstract components are grounded in the problem of developing a team of intelligent mobile robots. All topics are covered with specific emphasis on applied problems, e.g., real-time performance. May not be held with COMP 4060 when titled "Mobile Robotics."
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3190.
Prerequisite: COMP 3190.
Attributes: Science
COMP 4190 Artificial Intelligence 3 cr
Reasoning with temporal knowledge; causal reasoning; plausible reasoning; nonmonotonic reasoning; abductive reasoning.
Attributes: Science
COMP 4300 Computer Networks 3 cr
This course examines the principles of computer networks, including network architectures, algorithms, protocols, and performance. May not be held with the former COMP 3720 or the former COMP 4720 or ECE 3700.
Mutually Exclusive: COMP 3720, COMP 4720, ECE 3700
Attributes: Science
COMP 4340 Graph Theory Algorithms 1 3 cr
Spanning trees, connectivity, planar graphs, directed graphs, networks, colouring problems and tours are studied and their applications to computer science will be highlighted.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3170.
Prerequisite: COMP 3170.
Attributes: Science
COMP 4350 Software Engineering 2 3 cr
Advanced treatment of software development methods. Topics will be selected from requirements gathering, design methodologies, prototyping, software verification and validation.
Attributes: Science
COMP 4360 Machine Learning 3 cr
Learning strategies; evaluation of learning; learning in symbolic systems; neural networks, genetic algorithms. May not be held with ECE 4450.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: [COMP 3190 and (one of STAT 1150 (B), STAT 2150, STAT 2220 (B), or PHYS 2496 (B)) and (one of MATH 1220, MATH 1300 (B), MATH 1301 (B), MATH 1210 (B), or MATH 1211 (B)) and (one of MATH 1230, MATH 1500 (B), MATH 1501 (B), MATH 1510 (B), or the former MATH 1520 (B), MATH 1524 (B), or MATH 1525 (B))] or [STAT 2400 and MATH 2740 and DATA 2010].
Prerequisites: [COMP 3190 and (one of STAT 1150 (B), STAT 2150, STAT 2220 (B), or PHYS 2496 (B)) and (one of MATH 1220, MATH 1300 (B), MATH 1301 (B), MATH 1210 (B), or MATH 1211 (B)) and (one of MATH 1230, MATH 1500 (B), MATH 1501 (B), MATH 1510 (B), or the former MATH 1520 (B), MATH 1524 (B), or MATH 1525 (B))] or [STAT 2400 and MATH 2740 and DATA 2010].
Mutually Exclusive: ECE 4450
Attributes: Science
COMP 4380 Database Implementation 3 cr
Implementation of modern database systems including query modification/optimization, recovery, concurrency, integrity, and distribution.
Attributes: Science
COMP 4420 Advanced Design and Analysis of Algorithms 3 cr
Algorithm design with emphasis on formal techniques in analysis and proof of correctness. Computational geometry, pattern matching, scheduling, numeric algorithms, probabilistic algorithms, approximation algorithms and other topics.
Attributes: Science
COMP 4430 Operating Systems 2 3 cr
Design and implementation of modern operating systems. Detailed analysis of an open source modern operating system and hands-on experience with its kernel and major components.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3430.
Prerequisite: COMP 3430.
Attributes: Science
COMP 4490 Computer Graphics 2 3 cr
Methods in computer graphics including topics such as representation of curves and surfaces, viewing in three dimensions, and colour models.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3490.
Prerequisite: COMP 3490.
Attributes: Science
COMP 4510 Introduction to Parallel Computation 3 cr
An overview of the architectures of current parallel processors and the techniques used to program them. Not to be held with ECE 4530.
Mutually Exclusive: ECE 4530
Attributes: Science
COMP 4522 Honours Project 6 cr
A supervised research-based project on a specific area of Computer Science. Permission to take the course is given on an individual basis. Available to fourth-year Honours or Joint Honours Computer Science students only. May not be held with COMP 4560 or the former COMP 4520.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Written permission of the department.
Prerequisite: Written permission of the department.
Attributes: Science
COMP 4550 Real-Time Systems 3 cr
Attributes: Science
COMP 4560 Industrial Project 3 cr
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3350 and written permission of the department.
Prerequisites: COMP 3350 and written permission of the department.
Attributes: Science
COMP 4580 Computer Security 3 cr
Computer security and information management. This course will examine state-of-the-art knowledge about the issues relevant to data and computer security.
Attributes: Science
COMP 4620 Professional Practice in Computer Science 3 cr
(Lab required) Background and rationale to view Computer Science in a professional context. Examination of professional ethics, intellectual property, and privacy considerations important to Computer Scientists. May not be held with the former COMP 3620. This course is restricted to students in a Computer Science Major, Honours, or Joint Honours program.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: 6 credit hours of COMP courses at the 3000 or 4000 level and (COMP 2600 or the former COMP 3040 or a course that fulfills the Written English requirement).
Prerequisites: 6 credit hours of COMP courses at the 3000 or 4000 level and (COMP 2600 or the former COMP 3040 or a course that fulfills the Written English requirement).
Equiv To: COMP 3620
Attributes: Science
COMP 4690 Computer Systems and Architecture 3 cr
Investigation of today's modern computer architecture and system design concepts, including requirements, specifications, and implementation. Instruction sets, instruction-level parallelism, speculative execution, multi-threaded architectures, memory hierarchy, multiprocessors, storage design and implementation, and interconnection networks.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3370.
Prerequisite: COMP 3370.
Attributes: Science
COMP 4710 Introduction to Data Mining 3 cr
Introduction to data mining concepts and their applications.
Attributes: Science
COMP 4740 Advanced Databases 3 cr
Parallel, distributed, object-oriented, object-relational, and XML databases; other emerging database technologies.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3380.
Prerequisite: COMP 3380.
Attributes: Science
COMP 4820 Bioinformatics 3 cr
An exploration of bioinformatics problems through the lens of Computer Science. Students will discover novel data structures, algorithmic tools, and techniques used to manage, index, and analyze large amounts of data. May not be held with the former COMP 3820.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3170.
Prerequisite: COMP 3170.
Mutually Exclusive: COMP 3820
Attributes: Science
COMP 4980 Workterm 3 0 cr
Work assignment in business, industry, or government for students registered in the Computer Science Cooperative Option. Requires submission of a written report covering the work completed during the four-month professional assignment. (Pass/Fail).
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3980 (P).
Prerequisite: COMP 3980 (P).
Attributes: Science
COMP 4990 Workterm 4 0 cr
Work assignment in business, industry, or government for students registered in the Computer Science Cooperative Option. Requires submission of a written report covering the work completed during the four-month professional assignment (Pass/Fail).
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 4980 (P).
Prerequisite: COMP 4980 (P).
Attributes: Science