Shahadat Hossain, Professor and Chair
Liang Chen, Professor
Waqar Haque, Professor
David Casperson, Associate Professor
Fan Jiang, Associate Professor
Andreas Hirt, Assistant Professor
Sajal Saha, Assistant Professor
Allan Kranz, Senior Lab Instructor
Website: www.unbc.ca/computer-science
The Computer Science program gives students a thorough exposure to basic areas like computer architecture, programming languages and methodology, algorithms and data structures, systems programming, operating systems and networking, knowledge-based and database systems, software engineering, and theory. The student will develop the advanced practical computing and problem-solving skills required for professional work in modern industry, based on a strong conceptual foundation and on insights into the nature of this rapidly changing field. Each student will use advanced development tools, and will be encouraged to approach problem-solving from a multidisciplinary point of view. The program emphasizes direct co-operation with industry.
Major in Computer Science (BSc)
Major in Computer Science (BSc Honours)
Joint Major in Chemistry and Computer Science (BSc)
Joint Major in Computer Science and Mathematics (BSc)
Joint Major in Computer Science and Physics (BSc)
Minor in Computing
Major in Computer Science
A major in Computer Science requires at least 20 Computer Science courses and at least 61 credit hours in Computer Science, at least 27 credit hours of which must be upper-division courses, and of those upper-division credit hours, at least 12 must be taken at the 400 level. MATH 335-3 and STAT 371-3 can count towards this requirement.
The following course may not be used for credit towards a Computer Science major or joint major:
MATH 150-3 | Finite Mathematics for Business and Economics |
The minimum requirement for completion of a Bachelor of Science with a major in Computer Science is 120 credit hours.
Program Requirements
*Note: Unless otherwise specified, students enrolling in any Computer Science or Mathematics course with prerequisites are required to have completed all prerequisite courses for that course with a C- or better, or have permission to enroll from the Program Chair.
Lower-Division Requirement
100 Level
CPSC 100-4 | Computer Programming I |
CPSC 101-4 | Computer Programming II |
CPSC 141-3 | Discrete Computational Mathematics |
ENGL 170-3 | Writing and Communication Skills |
or ENGL 270-3 | Expository Writing |
MATH 100-3 | Calculus I |
*Note: MATH 101-3 Calculus II is strongly recommended.
200 Level
CPSC 200-3 | Algorithm Analysis and Development |
CPSC 222-3 | Introduction to Concurrent and Distributed Programming |
CPSC 230-4 | Introduction to Logic Design |
CPSC 231-4 | Computer Organization and Architecture |
CPSC 242-3 | Mathematical Topics for Computer Science |
CPSC 260-3 | Ethics in Computing Science |
CPSC 281-3 | Data Structures I |
MATH 220-3 | Linear Algebra |
General Science Requirement
Students must take two courses from the following list of science courses. It is recommended that computer science majors take PHYS 110-4 and PHYS 111-4. However, students may take any two courses from the following list, according to their interests, to fulfill the general science requirement:
BIOL 103-3 | Introductory Biology I |
BIOL 104-3 | Introductory Biology II |
CHEM 100-3 | General Chemistry I |
CHEM 101-3 | General Chemistry II |
ENVS 101-3 | Introduction to Environmental Citizenship |
GEOG 204-3 | Introduction to GIS |
GEOG 205-3 | Cartography and Geomatics |
GEOG 210-3 | Introduction to Earth Science |
PHYS 100-4 | Physics for Life Sciences I |
PHYS 101-4 | Physics for Life Sciences II |
PHYS 110-4 | Introductory Physics I: Mechanics |
PHYS 111-4 | Introductory Physics II: Waves and Electricity |
PSYC 101-3 | Introduction to Psychology I |
*Note: In some special cases other science courses approved by the Chair of Computer Science may be used to satisfy this requirement.
Upper-Division Requirement
Computer Science Breadth
CPSC 300-3 | Software Engineering I |
CPSC 320-3 | Programming Languages |
CPSC 321-3 | Operating Systems |
CPSC 324-3 | Introduction to Database Systems |
CPSC 340-3 | Theory of Computation |
CPSC 344-3 | Data Communications and Networking |
or CPSC 444-3 | Computer Networks |
*Note: STAT 371-3 Probability and Statistics for Scientists and Engineers is strongly recommended.
400 Level
At least 12 credit hours of Computer Science courses must be taken at the 400 level, and at least nine of these credit hours must be outside the seminar course, project course, (other than CPSC 400-3), research course, or special topics course category.
Alternate courses may be substituted for the above with the written permission of the Program Chair.
Subject Requirement
Six additional credit hours chosen from the following:
Computer Science at any level | |
MATH 335-3 | Introduction to Numerical Methods |
STAT 371-3 | Probability and Statistics for Scientists and Engineers |
Elective and Academic Breadth
Elective credit hours as necessary to ensure completion of a minimum of 120 credit hours including any additional credit hours necessary to meet the Academic Breadth requirement of the University (see Academic Regulation on Academic Breadth). A total of 45 credit hours in upper-division (300 and 400 level) courses from any discipline are required for graduation.
BSc Honours - Computer Science
The Honours Program in Computer Science offers students additional undergraduate research experience and helps to prepare them for post-graduate studies in Computer Science and related fields.
Candidates are normally expected to apply for entry prior to completion of 90 credit hours. Candidates are required to consult with their Student Advisor prior to entry to the Program. Entry to the Computer Science Honours Program takes place after completion of 60 credit hours, 30 credit hours of which must be from the Computer Science Program Requirements (excluding Elective and Academic Breadth), and requires a minimum Cumulative GPA of 3.33 over the previous 30 credit hours of Computer Science Program Requirements, and permission of the Department Chair. Attaining the minimum requirement does not guarantee entry to the Honours Program, which is at the discretion of the Department. Maintenance of a Cumulative GPA of 3.33 is required to remain in the Honours Program. Students are responsible to find their own undergraduate thesis research supervisor. Faculty members are under no obligation to supervise Honours students.
To be awarded the BSc Honours degree students will
- complete 120 credits hours required for a BSc in Computer Science
- complete an additional 6 credit hours of CPSC 430 including the successful completion of an undergraduate thesis under the supervision of a faculty member
- complete STAT 371-3
Joint Major in Chemistry and Computer Science (BSc)
See Calendar entry under Chemistry.
Joint Major in Computer Science and Mathematics (BSc)
The minimum requirement for completion of a Bachelor of Science with a Joint Major in Computer Science and Mathematics is 124 credit hours.
MATH 150-3 (Finite Mathematics for Business and Economics) may not be used for credit towards any Mathematics or Computer Science major or joint major.
Program Requirements
Literacy Requirement
One of the following:
ENGL 170-3 | Writing and Communication Skills |
ENGL 270-3 | Expository Writing |
Lower-Division Requirement
CPSC 100-4 | Computer Programming I |
CPSC 101-4 | Computer Programming II |
CPSC 141-3 | Discrete Computational Mathematics |
CPSC 200-3 | Algorithm Analysis and Development |
CPSC 230-4 | Introduction to Logic Design |
CPSC 231-4 | Computer Organization and Architecture |
CPSC 242-3 | Mathematical Topics for Computer Science |
CPSC 281-3 | Data Structures I |
MATH 100-3 | Calculus I |
MATH 101-3 | Calculus II |
MATH 202-3 | Multivariable Calculus I |
MATH 204-3 | Multivariable Calculus II |
MATH 220-3 | Linear Algebra |
MATH 224-3 | Foundations of Modern Mathematics |
MATH 230-3 | Ordinary Differential Equations and Boundary Value Problems |
General Science Requirement
Two of the following:
BIOL 103-3 | Introductory Biology I |
and BIOL 123-1 | Introductory Biology I Laboratory |
BIOL 104-3 | Introductory Biology II |
and BIOL 124-1 | Introductory Biology II Laboratory |
CHEM 100-3 | General Chemistry I |
and CHEM 120-1 | General Chemistry Lab I |
CHEM 101-3 | General Chemistry II |
and CHEM 121-1 | General Chemistry Lab II |
PHYS 100-4 | Physics for Life Sciences I |
or PHYS 110-4* | Introductory Physics I: Mechanics |
PHYS 111-4* | Introductory Physics II: Waves and Electricity |
*Note: PHYS 110-4 (Introductory Physics I: Mechanics) and PHYS 111-4 (Introductory Physics II: Waves and Electricity) are strongly recommended for all majors.
Upper-Division Requirement
CPSC 320-3 | Programming Languages |
CPSC 321-3 | Operating Systems |
CPSC 370-3 | Functional and Logic Programming |
Six credit hours of 300- or 400-level Computer Science; and 6 credit hours of 400-level Computer Science (excluding seminar, project, and special topics courses).
MATH 320-3 | Survey of Algebra |
MATH 326-3 | Advanced Linear Algebra |
MATH 335-3 | Introduction to Numerical Methods |
STAT 371-3 | Probability and Statistics for Scientists and Engineers |
Three credit hours of 300- or 400-level Mathematics; and 6 credit hours of 400-level Mathematics.
Between the two disciplines, a minimum of 15 credit hours at the 400-level must be completed.
Note: CPSC 340-3 (Theory of Computation) is recommended.
Elective and Academic Breadth
Elective credit hours as necessary to ensure completion of a minimum of 123 credit hours including any additional credit hours necessary to meet the Academic Breadth requirement of the University (see Academic Regulation on Academic Breadth).
Joint Major in Computer Science and Physics (BSc)
The minimum requirement for completion of a Bachelor of Science with a Joint Major in Computer Science and Physics is 127 credit hours.
MATH 150-3 (Finite Mathematics for Business and Economics) may not be used for credit towards any Mathematics or Computer Science major or joint major.
Program Requirements
Lower-Division Requirement
CPSC 100-4 | Computer Programming I |
CPSC 101-4 | Computer Programming II |
CPSC 141-3 | Discrete Computational Mathematics |
CPSC 200-3 | Algorithm Analysis and Development |
CPSC 231-4 | Computer Organization and Architecture |
CPSC 281-3 | Data Structures I |
ENGL 170-3 | Writing and Communication Skills |
or ENGL 270-3 | Expository Writing |
MATH 100-3 | Calculus I |
MATH 101-3 | Calculus II |
MATH 202-3 | Multivariable Calculus I |
MATH 204-3 | Multivariable Calculus II |
MATH 220-3 | Linear Algebra |
MATH 230-3 | Ordinary Differential Equations and Boundary Value Problems |
PHYS 110-4 | Introductory Physics I: Mechanics |
PHYS 111-4 | Introductory Physics II: Waves and Electricity |
PHYS 200-3 | Thermal Physics |
PHYS 202-4 | Electromagnetism and Optics |
PHYS 205-3 | Modern Physics I |
PHYS 206-4 | Modern Physics II |
Upper-Division Requirement
CPSC 320-3 | Programming Languages |
CPSC 321-3 | Operating Systems |
CPSC 370-3 | Functional and Logic Programming |
Twelve additional credit hours of upper-level Computer Science, of which at least six must be at the 400 level (excluding seminar, project, and special topics courses).
MATH 335-3 | Introduction to Numerical Methods |
MATH 336-3 | Intermediate Differential Equations |
PHYS 300-3 | Classical Mechanics |
PHYS 302-3 | Quantum Mechanics I |
PHYS 305-4 | Electronics [which must be taken before CPSC 231-4 (Computer Organization and Architecture)] |
PHYS 404-3 | Solid State Physics |
Nine additional credit hours of upper-level Physics, of which at least six must be at the 400 level (excluding project and special topics courses).
Elective and Academic Breadth Requirement
Elective credit hours must be taken as necessary to ensure completion of a minimum of 127 credit hours including any additional credit hours necessary to meet the Academic Breadth requirement of the University (see Academic Regulation on Academic Breadth).
Minor in Computing
The Minor in Computing requires the following 29 credit hours of courses:
Requirements
CPSC 100-4 | Computer Programming I |
CPSC 101-4 | Computer Programming II |
CPSC 141-3 | Discrete Computational Mathematics |
CPSC 200-3 | Algorithm Analysis and Development |
CPSC 281-3 | Data Structures I |
CPSC 300-3 | Software Engineering I |
CPSC 324-3 | Introduction to Database Systems |
CPSC 344-3 | Data Communications and Networking |
One additional upper-division Computer Science course**
**MATH 335-3 (Introduction to Numerical Methods) may be used to meet this requirement.
Updated: June 27, 2024