Computer Science
Head: Dr. David Gerhard
Campus Address/General Office: E2-445 EITC
Telephone: 204 474 8313
Email Address: queries@cs.umanitoba.ca
Website: umanitoba.ca/science/computer-science
Computer Science
Computer technology continues to advance and computer applications are found in all fields and disciplines. As new applications proliferate, opportunities for careers in computing will continue to be strong. Both the Major and the Honours programs offer a co-op option so students may combine education with paid employment experience. The co-operative (co-op) option in Computer Science is well established with the first class graduating in October 1983.
Programs
Degree/Diploma | Years to Completion | Total Credit Hours | Has Co-op Option |
---|---|---|---|
Degree/Diploma Computer Science, B.C.Sc., Honours | Years to Completion 4 | Total Credit Hours 120 | Has Co-op Option Yes |
Degree/Diploma Computer Science, B.Sc. Major | Years to Completion 4 | Total Credit Hours 120 | Has Co-op Option Yes |
Degree/Diploma Computer Science - Mathematics Joint, B.Sc. Honours | Years to Completion 4 | Total Credit Hours 120 | Has Co-op Option Yes |
Degree/Diploma Computer Science - Physics & Astronomy Joint, B.Sc. Honours | Years to Completion 4 | Total Credit Hours 120 | Has Co-op Option Yes |
Degree/Diploma Computer Science - Statistics Joint, B.Sc. Honours | Years to Completion 4 | Total Credit Hours 120 | Has Co-op Option Yes |
Degree/Diploma Computer Science Minor | Total Credit Hours 18 | Has Co-op Option no |
Courses
Computer Science
(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.
Attributes: Science, Recommended Intro Courses
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.
Attributes: Science
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.
Attributes: Science
(Lab required) An introduction to computer programming using a procedural high level language. May not be held with COMP 1011, COMP 1012, or COMP 1013.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100.
Equiv To: COMP 1011
Attributes: Science, Recommended Intro Courses
(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. May not be held with COMP 1010, COMP 1011, or COMP 1013.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: One of any 40S Mathematics (50%), MATH 1018, or MSKL 0100. Pre- or corequisite: One of MATH 1230, MATH 1500, MATH 1510, or MATH 1501.
Equiv To: COMP 1013
Attributes: Science, Recommended Intro Courses
(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: [One of COMP 1010, COMP 1011, COMP 1012, or COMP 1013] or [Computer Science 40S (75%) and (one of 40S Mathematics (50%), MATH 1018, or MSKL 0100)].
Equiv To: COMP 1021
Attributes: Science, Recommended Intro Courses
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
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
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.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 1020 or COMP 1021. COMP 1006 is recommended.
Attributes: Science
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.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 2002. COMP 1006 is recommended.
Attributes: Science
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.
Attributes: Science
Techniques for algorithm design: divide-and-conquer, greedy, dynamic programming, and randomization. Analysis of recursive algorithms through recurrence relations. The design and implementation of common algorithms such as sorting and selection.
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
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
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. May not be held with the former COMP 2061.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisite: COMP 1020 or COMP 1021.
Equiv To: COMP 2061
Attributes: Science
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
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+). Pre- or corequisite: COMP 2140.
Attributes: Science
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
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
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
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
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 and COMP 2080] or [ECE 3740 and ECE 3790]] and [one of STAT 1150, STAT 1000, STAT 1001, STAT 2220, or PHYS 2496].
Attributes: Science
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: COMP 2150 or ECE 3740. A course in cognitive psychology, such as PSYC 2480 or PSYC 2481, is recommended.
Attributes: Science
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
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.
Attributes: Science
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: COMP 2080 and [one of STAT 1150, STAT 1000, STAT 1001, STAT 2220, or PHYS 2496].
Attributes: Science
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.
Prerequisites: [COMP 2150 or ECE 3740] and [one of STAT 1150, STAT 1000, STAT 1001, STAT 2220 or PHYS 2496].
Attributes: Science
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
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.
Attributes: Science
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
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 2150 or ECE 3740.
Attributes: Science
Operating systems, their design, implementation, and usage. COMP 2160 is recommended for Computer Engineering students. May not be held with ECE 3630.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: [one of STAT 1150, STAT 1000, STAT 1001, STAT 2220, or PHYS 2496]; and one of [[COMP 2280 and COMP 2080] or [(COMP 2140 or the former COMP 2061) and ECE 3610 and ECE 3790]].
Mutually Exclusive: ECE 3630
Attributes: Science
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
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 2150 or ECE 3740) or ((COMP 2140 or the former COMP 2061) and 3 credit hours of MATH courses 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), or MATH 1524 (B)].
Attributes: Science
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
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.
Prerequisites: COMP 3020 and [one of STAT 1150, STAT 2000 (B), STAT 2001 (B), STAT 2220, or PHYS 2496]. A course in cognitive psychology, such as PSYC 2480 or PSYC 2481, is recommended.
Attributes: Science
Introduction to the issues involved in managing large, complex software projects.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3350 and (COMP 2600 or the former COMP 3040 or a course that fulfills the Written English requirement).
Attributes: Science
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.
Attributes: Science
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.
Attributes: Science
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.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: [one of COMP 3170, MATH 2170, or the former MATH 2500] and [one of STAT 1150, STAT 2000 (B), STAT 2001 (B), STAT 2220 or PHYS 2496].
Attributes: Science
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.
Prerequisites: COMP 2160 and COMP 3190.
Attributes: Science
Reasoning with temporal knowledge; causal reasoning; plausible reasoning; nonmonotonic reasoning; abductive reasoning.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3190 and [one of STAT 1150, STAT 2000 (B), STAT 2001 (B), STAT 2220, or PHYS 2496].
Attributes: Science
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.
Prerequisites: COMP 3010 and COMP 3430.
Mutually Exclusive: COMP 3720, COMP 4720, ECE 3700
Attributes: Science
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.
Attributes: Science
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.
Prerequisites: COMP 3010 and COMP 3350 and COMP 3380.
Attributes: Science
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 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 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), or MATH 1524 (B))] or [STAT 2400 and MATH 2740 and DATA 2010].
Mutually Exclusive: ECE 4450
Attributes: Science
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.
Prerequisites: COMP 3010 and COMP 3380 and COMP 3430.
Attributes: Science
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 [one of STAT 1150, STAT 2000 (B), STAT 2001 (B), STAT 2220, or PHYS 2496].
Attributes: Science
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
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
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
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.
Attributes: Science
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.
Attributes: Science
Students will work in teams on an industrial project. Projects are supplied by the Department. May not be held with COMP 2980, COMP 4522, the former COMP 4520, or SCI 3980.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3350 and written permission of the department.
Attributes: Science
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.
Prerequisites: COMP 3430 and COMP 3010.
Attributes: Science
(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).
Equiv To: COMP 3620
Attributes: Science
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
Introduction to data mining concepts and their applications.
PR/CR: A minimum grade of C is required unless otherwise indicated.
Prerequisites: COMP 3380 and [one of STAT 1150, STAT 2000 (B), STAT 2001 (B), STAT 2220, or PHYS 2496] or consent of department.
Attributes: Science
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
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.
Mutually Exclusive: COMP 3820
Attributes: Science
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
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