# Computing Science

## Computing Science (CSCI)

Students can obtain a Bachelor of Science in Computing Science in one of two possible ways. A traditional degree in Computing Science involving an emphasis in Mathematics is offered as a minor, concentration, major, or honours. Alternatively, students interested in applying the technical aspects of Computing Science to business can obtain a major in Computing Science and Business Administration. Both of these Computing Science options have a Co-op option.

The major and honours programs in Computing Science are accredited by the Computer Science Accreditation Council of the Canadian Information Processing Society (CIPS). Not only is this an assurance of program quality, but it also allows students to earn the Information Systems Professional (ISP) designation in less time.

**Note:** Students are advised that possession of the minimum qualifications does not guarantee admission to a particular academic program. Limits to the number of students who can be in a particular program at any one time exist and depend very much on the number of faculty members available in a particular academic unit.

## Cooperative Education Program (Co-op)

This program is designed for students in the honours or major programs who wish to gain relevant work experience while attending university. The general requirements for the Cooperative Education program can be found in the Faculty of Science regulations, Cooperative Education Section, of this Calendar. Interested students should contact the Department of Mathematics and Computing Science Co-op Advisor before the end of their first year.

## Credit for Duplicate Courses

No student who has received credit for an advanced mathematics or computing science course may later receive credit for a mathematics or computing science prerequisite to the course without permission of the Department. With renumbered or restructured courses, students are advised that they are not eligible to take a course for credit if they already have a credit for a comparable course, even if that course was taken at a different level or under a different number.

**Important Notes:**

i. CSCI 1226 andCSCI 1228 are intended to be the courses for all students who intend to pursue further studies in computing science.

ii. Students taking a concentration, major, or honours in computing science are permitted credit for at most one of BIOL 3308, MGSC 2207, or PSYC 2350, and shall not be permitted credit for any of these courses simultaneously with or subsequent to MATH 1216.

iii. Related courses to a maximum of nine (9) credit hours offered by other Departments may be allowed for CSCI credit, with written approval of the Department of Mathematics and Computing Science Chairperson.

## Major in Computing Science

For a major in Computing Science, students must complete the following 45 credit hours in Computing Science and 15 credit hours in Mathematics, in addition to the general requirements for the Bachelor of Science (see Section 3 for details on the requirements for B.Sc. with major). Students must receive a minimum grade of C in each of these MATH and CSCI courses [see Faculty of Science Regulation 6 (h)].

- CSCI 1226 Introduction to Computing Science and Programming
- CSCI 1228 Advanced Computer Programming and Problem Solving
- CSCI 2307 Theoretical Foundations of Computing Science
- CSCI 2308 [MATH 2308] Introduction to Numerical Analysis
- CSCI 2327 Digital Logic and Computer Architecture
- CSCI 2341 Data Structures and Algorithms I
- CSCI 3428 Software Engineering
- CSCI 3430 Principles of Programming Languages
- CSCI 3431 Operating Systems
- MATH 1210 Introductory Calculus I
- MATH 1211 Introductory Calculus II
- MATH 1216 Introduction to Mathematical Statistics
- MATH 2305 Survey of Discrete Mathematics
- MATH 2301 Applied Linear Algebra
- CSCI 2355 Internet Technologies and Web Programming or 2356 Mobile App Development
- CSCI 3461 Database Systems or 4477 Data Mining
- CSCI 4471 Computer Graphics or 4476 Computer Vision & Digital Image Processing
- Three (3) credit hours in CSCI numbered above 2306
- Six (6) credit hours in CSCI at the 3000-level or higher

**Suggested Program Sequence**

The following program sequence is recommended by the Department of Mathematics and Computing Science for students taking the Computing Science Major program:

**Year 1:**

- ENGL 1205 Introduction to Literature
- CSCI 1226 Introduction to Computing Science and Programming
- CSCI 1228 Advanced Computer Programming and Problem Solving
- MATH 1210 Introductory Calculus I
- MATH 1211 Introductory Calculus II
- Six (6) credit hours in Science (excluding MATH and CSCI)
- Three (3) credit hours in Humanities
- Six (6) credit hours from Arts or Economics

**Year 2:**

- CSCI 2307 Theoretical Foundations of Computing Science
- CSCI 2308 [MATH 2308] Introduction to Numerical Analysis
- CSCI 2327 Digital Logic and Computer Architecture
- CSCI 2341 Data Structures and Algorithms I
- MATH 2305 Survey of Discrete Mathematics
- Three (3) credit hours in CSCI numbered above 2306
- CSCI 2355 Internet Technologies and Web Programming or CSCI 2356 Mobile App Development
- Six (6) credit hours in Science (excluding MATH and CSCI)
- Three (3) credit hours in Arts or Economics

**Year 3:**

- CSCI 3428 Software Engineering
- CSCI 3430 Principles of Programming Languages
- CSCI 3431 Operating Systems
- MATH 1216 Introduction to Mathematical Statistics
- MATH 2301 Applied Linear Algebra
- Six (6) credit hours in Science (excluding MATH and CSCI)
- Nine (9) credit hours of electives

**Year 4:**

- Six (6) credit hours in CSCI at the 3000-level or above
- CSCI 3461 Database Systems or 4477 Data Mining
- CSCI 4471 Computer Graphics or 4476 Computer Vision & Digital Image Processing
- Three (3) credit hours in Arts or Economics
- Fifteen (15) credit hours of electives

## Double Major in Computing Science and Mathematics

For a double major in Computing Science and Mathematics, students must complete the following 42 credit hours in Computing Science, 30 credit hours in Mathematics in addition to the general requirements for the Bachelor of Science (see Section 3 for details on the requirements for BSc with major).

- CSCI 1226 Introduction to Computing Science and Programming
- CSCI 1228 Advanced Computer Programming and Problem Solving
- CSCI 2307 Theoretical Foundations of Computing Science
- CSCI 2308 [MATH 2308] Introduction to Numerical Analysis
- CSCI 2327 Digital Logic and Computer Architecture
- CSCI 2341 Data Structures and Algorithms I
- CSCI 3428 Software Engineering
- CSCI 3430 Principles of Programming Languages
- CSCI 3431 Operating Systems
- MATH 1210 Introductory Calculus I
- MATH 1211 Introductory Calculus II
- MATH 1216 Introduction to Mathematical Statistics
- MATH 2301 Applied Linear Algebra
- MATH 2305 Survey of Discrete Mathematics
- MATH 2310 Introductory Analysis
- MATH 2311 Intermediate Calculus
- MATH 2321 Linear Algebra II
- CSCI 2355 Internet Technologies and Web Programming or 2356 Mobile App Development
- CSCI 3461 Database Systems or 4477 Data Mining
- CSCI 4471 Computer Graphics or 4476 Computer Vision & Digital Image Processing
- Three (3) credit hours in CSCI at the 3000-level or higher
- Three (3) credit hours in CSCI numbered above 2306
- Six (6) credit hours in MATH numbered 3000 or above

## Double Major in Computing Science and another Science

For a double major in Computing Science and another Science other than Mathematics, students must fulfill requirements 1-18 for the major.

## Honours in Computing Science

Students with a minimum CGPA of 3.00 out of 4.30 are encouraged to apply for admission to the honours program. For honours in Computing Science, students must fulfill the major requirements plus:

- CSCI 3451 Theory of Computation;
- Nine (9) additional credit hours in CSCI numbered 2306 or above;
- Six (6) additional credit hours in CSCI at the 3000-level or above. It is recommended that CSCI 4500 Research Thesis be used to satisfy this requirement;
- Six (6) additional credit hours in MATH at the 3000-level or above;

for a total of 63 credit hours in CSCI and 21 credit hours in MATH.

Students must achieve a minimum DGPA of 3.00 out of 4.30 on those courses presented in fulfillment of the Bachelor of Science with Honours in Computing Science requirements.

## Double Honours in Computing Science and Mathematics

For double honours in Computing Science and Mathematics, students must fulfill requirements 1-20 of the specified courses in CSCI and MATH for the double major, plus:

- CSCI 3451 Theory of Computation
- MATH 4420 Abstract Algebra I
- MATH 3441 Real Analysis I
- Three (3) additional credit hours in CSCI numbered 2306 or above
- Six (6) additional credit hours in CSCI at the 3000-level or above. CSCI 4500 Research Thesis can be used to satisfy this requirement.
- Six (6) additional credit hours in MATH at the 3000-level or above. MATH 4500 Research Thesis can be used to satisfy this requirement.

Students must achieve a DGPA of 3.00 out of 4.30 or above on those courses presented in fulfillment of the Bachelor of Science with Double Honours in Computing Science and Mathematics requirements.

## Double Honours in Computing Science and another Science

For Double Honours in Computing Science and another science, students must fulfill all of the specified required courses in CSCI and MATH for honours, plus:

- Three (3) additional credit hours in MATH courses numbered 2306 or above.
- Six (6) additional credit hours in CSCI courses numbered 2306 or above.

## Concentration in Computing Science

Students may complete a 3 year (90 credit hour) Bachelor of Science with a concentration in computing science. See Section 3 for details on the requirements for general B.Sc. with concentration. The Computing Science concentration requires 36 credit hours in Computing Science and Mathematics as follows:

- CSCI 1226 Introduction to Computing Science and Programming
- CSCI 1228 Advanced Computer Programming and Problem Solving
- CSCI 2327 Digital Logic and Computer Architecture
- CSCI 2341 Data Structures and Algorithms I
- Eighteen (18) credit hours in CSCI numbered 2306 or above
- MATH 1210 Introductory Calculus I
- MATH 1211 Introductory Calculus II