Academic Calendar

Computer Science (COMP)

COMP 1010  Introductory Computer Science 1  3 cr  

(Lab Required) An introduction to computer programming using a procedural high level language. May not be held with COMP 1011 or COMP 1012 or COMP 1013.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: any grade 12 or 40S Mathematics, or equivalent.

Equiv To: COMP 1011

Mutually Exclusive: COMP 1012, COMP 1013

Attributes: Science, Recommended Intro Courses

COMP 1012  Computer Programming for Scientists and Engineers  3 cr  

(Lab Required) An introduction to computer programming suitable for solving problems in science and engineering. Students will implement algorithms for numerical processing, statistical analysis and matrix operations. Not to be held with COMP 1010, COMP 1011 or COMP 1013.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Mathematics 40S or equivalent. Co-requisite: MATH 1230 or MATH 1500 or MATH 1501 (or equivalent).

Equiv To: COMP 1013

Mutually Exclusive: COMP 1010, COMP 1011

Attributes: Science

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 1010 or COMP 1011; or COMP 1012 or COMP 1013; or High School Computer Science 40S (75%) and any grade 12 or 40S Mathematics, or equivalent.

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  

Topics related to digital society such as security, encryption and data storage, issues of social and ethical importance, and current events. 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. May not be held with the former COMP 1270.

Mutually Exclusive: COMP 1270, COMP 1271

Attributes: Science, Recommended Intro Courses

COMP 2080  Analysis of Algorithms  3 cr  

Methods of analyzing the time and space requirements of algorithms. Average case and worst case analysis. Models of computation.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: MATH 1240, MATH 1241 or COMP 2130; and one of COMP 2140, or the former COMP 2061. STAT 1000 or STAT 1001 or STAT 1150 is strongly recommended.

Attributes: Science

COMP 2130  Discrete Mathematics for Computer Science  3 cr  

An introduction to the set theory, logic, integers, combinatorics and functions for today's computer scientists.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 1020 or COMP 1021, and one of: MATH 1210, MATH 1211, MATH 1220, MATH 1300, MATH 1301, MATH 1310; and one of: MATH 1230, MATH 1500, MATH 1501, MATH 1510, MATH 1520, or MATH 1690.

Mutually Exclusive: MATH 3120

Attributes: Science

COMP 2140  Data Structures and Algorithms  3 cr  

(Lab Required) Introduction to the representation and manipulation of data structures. Topics will include lists, stacks, queues, trees, and graphs. May not be held with COMP 2061.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: one of COMP 1020, COMP 1021.

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2160; and one of COMP 2140 or COMP 2061.

Attributes: Science

COMP 2160  Programming Practices  3 cr  

(Lab Required) Introduction to issues involved in real-world computing. Topics will include memory management, debugging, compilation, performance, and good programming practices.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 1020 (C+) or COMP 1021 (C+).

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.

Equiv To: COMP 2191

Attributes: Science

COMP 2280  Introduction to Computer Systems  3 cr  

(Lab Required) 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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 2140, COMP 2160, and one of MATH 1240, MATH 1241 or COMP 2130.

Mutually Exclusive: ECE 3610

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2150 or ECE 3740.

Attributes: Science

COMP 3020  Human-Computer Interaction 1  3 cr  

Human-computer interaction: human factors and usability, user-centered design, prototyping, usability evaluation.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: one of COMP 2140 or COMP 2061. A course in cognitive psychology, such as PSYC 2480, is recommended.

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.

Attributes: Science

COMP 3040  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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Students must be enrolled in third year (or higher) of a majors or honours program in the Department of Computer Science.

Attributes: Science

COMP 3090  Digital Logic 2  3 cr  

Design and implementation of digital circuits. Minimization and state reduction, asynchronous circuits, arithmetic circuits, implementation using modern hardware techniques. May not to be held with ECE 2220.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2280.

Mutually Exclusive: ECE 2220

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: one of COMP 2140 or COMP 2061; and COMP 2080.

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: one of COMP 2140 or COMP 2061.

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 2140 (or COMP 2061) and COMP 2280 (or ECE 3610). COMP 2160 is recommended.

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: COMP 2150 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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2280 or ECE 3610.

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: one of COMP 2140 or COMP 2061.

Attributes: Science

COMP 3430  Operating Systems  3 cr  

(Lab Required) Operating systems, their design, implementation, and usage.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: one of COMP 2140 or COMP 2061; and COMP 2280 or ECE 3610. COMP 2160 is recommended.

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.

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.
Prerequisite: COMP 2140; and either COMP 2190, or both: MATH 1300 (or MATH 1220, MATH 1310, MATH 1301, MATH 1210 or MATH 1211) and MATH 1500 (or MATH 1230, MATH 1501, MATH 1510 or MATH 1520).

Attributes: Science

COMP 3820  Introduction to Bioinformatics Algorithms  3 cr  

An introduction to problems in molecular biology and computational solutions. Focus on design and analysis of efficient algorithms.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 2080. Suggested prerequisite: MBIO 1410. Suggested concurrent requirement: COMP 3170.

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).

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3020. A course in cognitive psychology such as PSYC 2480 is recommended.

Attributes: Science

COMP 4050  Project Management  3 cr  

Introduction to the issues involved in managing large, complex software projects.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3350.

Attributes: Science

COMP 4060  Topics in Computer Science  3 cr  

This course will examine topics of interest at the fourth-year level. Specific topics will vary from year to year. Topics will be selected from current research in computer science.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: Departmental permission.

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 Data Encryption Standard (ADES) and Publickey cryptosystems.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: one of COMP 3170, MATH 2170, or the former MATH 2500.

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. Not to be held with the former COMP 4060 –“Mobile Robotics”.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 2160 and COMP 3190.

Attributes: Science

COMP 4190  Artificial Intelligence  3 cr  

Reasoning with temporal knowledge; causal reasoning; plausible reasoning; nonmonotonic reasoning; abductive reasoning.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3190.

Attributes: Science

COMP 4200  Expert Systems  3 cr  

Organization of expert systems; knowledge representation in expert systems; inference; knowledge engineering; tools for building expert systems; limitations of expert systems.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3190.

Attributes: Science

COMP 4300  Computer Networks  3 cr  

(Lab required) 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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2280 and COMP 3010.

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.

Mutually Exclusive: MATH 2070, MATH 2071, MATH 2400, MATH 3370

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3350.

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.
Prerequisite: COMP 3190 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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3380.

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3170 and (STAT 1000 or STAT 1001 or STAT 1150).

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.
Prerequisites: COMP 2160 and 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.

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.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3370 and COMP 3430.

Mutually Exclusive: ECE 4530

Attributes: Science

COMP 4520  Undergraduate Honours Project  3 cr  

A research based project on a specific area of computer science. Students must find a faculty supervisor and write a proposal in their penultimate term. If acceptable, the defined research is to be carried out in the student's final term. Permission to take the course is given on an individual basis. Available to 4th Year students only.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: departmental permission.

Attributes: Science

COMP 4550  Real-Time Systems  3 cr  

An introduction to the theory and practice of real-time systems. Topics include the design of real-time systems, scheduling, event based processing, and real-time control. This course may not be held for credit if a student has previously completed both of ECE 4240 and ECE 3760.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3430 and COMP 3370.

Mutually Exclusive: ECE 3760, ECE 4240

Attributes: Science

COMP 4560  Industrial Project  3 cr  

Students will work in teams on an industrial project. Projects are supplied by the Department.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3350 and departmental permission.

Attributes: Science

COMP 4580  Computer Security  3 cr  

(Lab Required) Computer security and information management. This course will examine state-of-the-art knowledge about the issues relevant to data and computer security.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3430 and COMP 3010.

Attributes: Science

COMP 4620  Professional Practice in Computer Science  3 cr  

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.
Prerequisite: 6 credit hours of COMP courses at the 3000 or 4000 level.

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.

Attributes: Science

COMP 4710  Introduction to Data Mining  3 cr  

Introduction to data mining concepts and their applications.

PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 3380 or consent of department.

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.

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).

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).

Attributes: Science