Bachelor of Computer Science

Bachelor of Computer Science

2018 – 2019 Calendar Proof

Bachelor of Computer Science

  • General Information
  • Co-Operative Education Program
  • Professional Experience Program (PEP)
  • University Regulations
  • Curriculum
  • Areas of Specialization and Electives
  • Majors Degrees
  • Minor in Computer Science
  • Concurrent BA/BCS Degree Program
  • Concurrent BCS/BSc Degree Program
  • Certificate in Software Development

Faculty of Computer Science

General Office: / Computer Science Information Technology Centre, Room ITC314
Mailing Address: / Faculty of Computer Science,
University of New Brunswick,
P.O. Box 4400, Fredericton, N.B.,
Canada, E3B 5A3
Phone: / (506) 453-4566
Fax: / (506) 453-3566
Email: /
Website: /


Dean: Ali Akbar Ghorbani, BSc, MScCS, PhD

Assistant Dean(Teaching & Undergraduate Affairs):Andrew McAllister, BA, MSc (CS), PhD

Assistant Dean(Research, Graduate Studies, Industry Outreach):Patricia Evans, BScCS, MScCS, PhD

  • Aubanel, Eric, BSc (Trent), PhD (Qu.), Prof - 2002
  • Bateman, Scott, BSc (UPEI), MSc, PhD (Sask), Asst Prof - 2015
  • Bidlake, Leah, BCS, BEd, MCS (UNB), Instructor – 2016
  • Bremner, David, BSc (Calg), MSc (S.Fraser), PhD (McG.), Prof (Cross Appt – Mathematics and Statistics) - 1999
  • Cook, C. Paul, BSc (UBC), MScCS, PhD (Tor), Asst Prof - 2014
  • Cooper, Rodney H., BMath, MMath (Wat), Prof (Cross Appt-Chem)- 1975
  • Du, Weichang, BSc (Beijing), MSc, PhD (UVic), Prof - 1991
  • Dueck, Gerhard, BSc, MSc, PhD (Manit), Prof - 1999
  • Evans, Patricia, BScCS (Alta), MScCS, PhD (UVic), Prof and Assistant Dean (Research, Graduate Studies, Industry Outreach) - 1997
  • Fleming, Michael, BSc (Mt.All.), MMath, PhD (Wat.), Prof - 2003
  • Ghorbani, Ali Akbar, BSc (Tehran), MScCS (GWU), PhD (UNB), Prof & Dean – 1999
  • Hyslop, William F., BScE, MSc(CS) (UNB), PhD (Tor), Sr.TeachingAssoc - 1991
  • Kent, Kenneth, BSc (MUN), MSc, PhD (UVic), Prof - 2002
  • Lu, Rongxing, BSc, MSc (Tongji), PhD (Shanghai), PhD (Wat.), Asst Prof - 2016
  • MacIsaac, Dawn, BPE (McM.), BEd (Qu.), BEng (McM.), MScE (UNB), PhD (UNB), Assoc Prof (Joint ECE) - 2002
  • McAllister, Andrew, BA, MSc (CS) (UNB), PhD (Sask), Prof and Assistant Dean (Teaching and Undergraduate Affairs) - 1994
  • Pochec, Przemyslaw, BEng (Warsaw), MSc(CS), PhD (UNB), Assoc Prof - 1989
  • Ray, Suprio, BE (NIT), MSc (UBC), PhD (Tor), Asst Prof - 2015
  • Song, Wei, BSc (HBU), MSc (BUPT), PhD (Wat), Assoc Prof - 2009
  • Stakhanova, Natalia, BS, MS (Moscow), MS, PhD (Iowa St), Research Assoc, 2012, NBIF Chair in Cyber Security, 2014
  • Webber, Natalie, BCS, MCS (UNB), Sr. Teaching Associate - 2000
  • Wightman, Richard, BScF, MScF (UNB), Sr. Teaching Associate - 2000
  • Zhang, Huajie, BSc (China), MSc (China), PhD (WOnt), Prof - 2002

Adjunct Professors:*

  • Bagheri, Ebrahim, BSc, MSc, PhD, Adjunct Prof. - 2016
  • Boley, Harold, MSc, PhD (Hamburg), Adjunct Prof. - 2002
  • Buffett, Scott, BCS, MCS, PhD (UNB), Adjunct Prof - 2005
  • Hinkenjann, Andre, PhD, Adjunct Prof. - 2010
  • Munro, Ian, BA (UNB), MSc (Br Col), PhD (Tor), Adjunct Prof - 2005
  • Ploeger, Paul, Dipl. (Dortmund), MS (Berkeley), PhD (Brandenburg Univ of Tech), Adjunct Prof - 2013
  • Spencer, Bruce, BSc (Dal), MMath, PhD (Wat), Adjunct Prof. - 1990

* Adjunct professors are involved in the graduate programs and research of the Faculty and are not usually involved in the undergraduate curriculum.

General Information

The Faculty of Computer Science was established at UNB on May 1, 1990, thereby becoming the first such faculty in Canada. Computer Science at UNB was established as a Department in 1968 and offered only the graduate MCS degree. Subsequently, in 1973, Computer Science became a School, administratively affiliated with the Faculty of Engineering, and offered the undergraduate BCS degree, conferring its first such degree in 1974. The Ph.D. program was approved in 1987, with its first degree awarded in 1990.
The Faculty offers a four-year undergraduate program leading to the degree of Bachelor of Computer Science. Honours and Majors degree programs are also offered. The program of studies is designed to enlarge the student's view of the world as well as to provide the background and qualifications to pursue careers in the field of computing. It is based on a set of core subjects which are intended to develop problem solving ability and provide a basic understanding of concepts fundamental to information processing. Students, through a choice of electives, may deepen their knowledge in computing subjects or develop an understanding in some complementary discipline.

The Faculty of Computer Science also offers the following degree programs:

  • Bachelor of Information Systems (Please note: Admission to the Bachelor of Information Systems program has been suspended, effective September 2015. For further information, please contact the Dean of the Faculty of Computer Science.)
  • Bachelor of Science in Software Engineering (offered jointly with the Faculty of Engineering)

Co-operative Education Program

  1. The Faculty operates a full Co-operative Education (Co-op) Program that is available to academically qualified Computer Science students who have completed one year of study. Co-op is "hands-on" education, extending the learning process beyond the classroom into the workplace by alternating academic study terms with paid periods of career related work experience. This allows students to put classroom knowledge to practical and profitable use in the Canadian workplace. At UNB the Co-op Program in Computer Science consists of eight study terms and four to six work terms of four months each. This program is normally completed in five years, compared to the regular four year program, and allows students to obtain a Majors or Honours designation in addition to Co-op. Students normally apply for this program during their second term of study and enter the program at the end of their first year, although later application and entry into the program is possible.
  2. Co-op is a designated option within the BCS, BA/BCS, BCS/BSc, BISys, BScSwE, and BCS/BScE(GGE) programs in the Faculty of Computer Science.
  3. To be eligible for a co-op work term, students must normally have achieved a minimum of a 2.7 GPA in the study term preceding their application for employment.
  4. Students must register for each work term in order that they be considered as full-time students while working.
  5. A work term fee will be charged for each 4 month work term registered.
  6. The overall assessment of the work period is the responsibility of the Faculty of Computer Science. The work period assessment shall consist of two components: 1) student performance as evaluated by a coordinator, given input from the employer, and 2) a work report graded by a coordinator or a member of faculty.
  7. Students must have a minimum of four work terms of four months each, alternating with study terms, with satisfactory employer evaluations and work term reports in order that the Co-op designation appear on their transcripts. Two back-to-back work terms are possible, giving periods of work up to eight months in duration.
  8. A co-op student’s first work term will normally be 4 months in duration. After the first 4-month work term, the student shall return to UNB to study for at least one term before going out for another work term.
  9. A co-op student will normally complete at least one Summer study term during his or her degree program. This Summer study term will normally be completed before the student applies for his or her third work term. (i.e. Normally, no more than two 4-month work terms should be completed before the Summer study term.)
  10. Students will normally have at least one study term after their last work term.
  11. Each successful work term will be noted on the student's transcript.
  12. Upon graduation, Co-op students will have the designation "Co-operative Education" following the degree designation on their transcript.
  13. Students must be registered as full-time students in order to be eligible to apply for Co-op jobs.

Professional Experience Program (PEP)

This program adds flexibility to the work experiences available to our students by providing opportunities to work for employers who prefer the PEP model over the Co-op model. Moreover, many transfer students into Computer Science find it easier to fit a PEP with their academic program than a traditional sequence of Co-op work terms.

  • Program Description
  1. The PEP requires an extended period of continuous work experience, the duration of which may be 12 or 16 months.
  2. A Co-op coordinator provides the necessary liaison and support activities for students in this program.
  3. The overall assessment of the PEP experience is the responsibility of the Faculty of Computer Science. The work period assessment shall consist of two components: 1) student performance as evaluated by a coordinator, given input from the employer, and 2) a work report graded by a coordinator or a member of faculty.
  4. While no specific course credit will be assigned to the PEP, a negotiated component of a PEP project may form an integral part of the student's senior project, based on a written proposal, progress reports, and faculty supervision in accordance with standard CS 4983 regulations.
  • Program Registration
  1. The PEP is a designated option within the BCS, BA/BCS, BCS/BSc, BISys, BScSwE, and BCS/BScE (GGE) degree programs in the Faculty of Computer Science.
  2. The PEP will be open to all Faculty of Computer Science students with good academic standing, who will have completed between 80 and 120 credit hours at the beginning of the PEP work term, including having completed 50% of the required Computer Science courses, and having completed at most 2 Co-op work terms. To be considered in good academic standing for the purpose of PEP registration, a student must normally have achieved a minimum of a 2.7 GPA in the study term preceding their application for employment.
  3. Students may transfer from CS Co-op to PEP under the restrictions of not having completed more than 2 Co-op work terms. Students who have registered for a PEP normally will not be eligible to enter, or reenter, the CS Co-op program.
  4. Registration in this option is contingent upon receiving an offer of employment from an approved PEP employer and will depend on the number of PEP positions available. Each student normally will be allowed only one such PEP registration during his/her degree program.
  5. Official University registration is required for each student in the PEP. This will enable PEP students to remain on the Registrar's list in good standing during the time encompassed by their off-campus PEP period.
  6. Each student in this program will be charged a PEP fee.
  7. A suitable notation will be placed on each student's transcript in recognition of this PEP option.

University Regulations

Students are strongly advised to read the General University Regulations, Section B of this Calendar, and in particular the subsection headed "Grading System and Classification". Any point not covered in the following regulations will be governed by the General University Regulations.

Students applying for a second undergraduate bachelor's degree, transferring from other institutions, or changing degree programs are particularly advised to consult Section B of this Calendar. Questions concerning the application of regulations should be directed to the Registrar in writing.

General Regulations

  1. To earn a BCS degree, a student must complete at least 40 courses, as specified below. Completing these requirements involves completing at least 133 credit hours worth of courses.
  2. Any course taken to satisfy any of the requirements for a BCS degree must be passed with a minimum grade of C.
  3. Developments in the BCS program may lead to changes in the requirements for the degree. The University reserves the right to require candidates already enrolled to meet the revised requirements where practicable.


The basic curriculum for the BCS program and six areas of specialization are given below to assist the student in planning a program of studies.
Students will typically take 5 or 6 courses per term to complete the program in 8 study terms. Students whose grade point average drops below 2.7 (B-) should restrict their course load to 5 courses, or fewer.
Every student must complete at least 12 credit hours of courses with an extensive English writing component with a minimum grade of “C”. These courses are indicated with a “W” in the Calendar. AESL 1011 and AESL 1012 will not count for credit towards the BCS degree, nor will they count towards the writing component requirement.

Core Curriculum (Required)

Computer Science Core Requirement

(Please note: The following set of core courses is in effect for students admitted to the BCS program during either the 2016-2017 or 2017-2018 academic years.)

CS 1073 Introduction to Computer Programming I (in Java)
CS 1083 Introduction to Computer Programming II (in Java)
INFO 1103 Data and Information Management
CS 1303 Discrete Structures
CS 2043 Software Engineering I
CS 2253 Machine Level Programming
CS 2263 Systems Software Development
CS 2333 Computability and Formal Languages
CS 2383 Data Structures and Algorithms
CS 3383 Algorithm Design and Analysis
CS 3413 Operating Systems I
CS 3853 Computer Architecture and Organization
CS 3873 Net-centric Computing
CS 3997 Professional Practice

Technical Elective Requirement

In addition to the course courses listed above, students are required to select a total of 7 technical elective courses (worth a minimum of 3 ch each), as follows:

  • For BCS (non-concurrent degree) students: 7 CS/INFO/SWE courses, at least 3of which must have an extensive computer programming component (indicated with a [P] in the Calendar).
  • For BCS concurrent degree students:
  • 3 CS/INFO/SWE courses at the 3rd year or above, at least 2 of which must have an extensive computer programming component (indicated with a [P] in the Calendar); plus
  • 4 courses offered by either of the faculties associated with the student's concurrent degree program. Core courses required for the non-BCS degree are eligible to be counted among these 4 courses.

At least 4 of these 7 technical elective courses must be 3rd year or above, and at least 1 of the CS/INFO/SWE technical elective courses must be 4th year or above. Note: Courses worth 6 credit hours or more will count as two courses toward this requirement.

Mathematics and Statistics Core Requirement

1. MATH 1003 Introduction to Calculus I
2. MATH 1013 Introduction to Calculus II
3. One of:
MATH 1503 Introduction to Linear Algebra
MATH 2213 Linear Algebra I
One of the following two options:
4. STAT 3083 Probability and Mathematical Statistics I
5. STAT 3093 Probability and Mathematical Statistics II
4. STAT 2593 Probability and Statistics for Engineers
5. One of:

CS 3113Introduction to Numerical Methods
MATH 2003Intermediate Mathematics I
MATH 2513Multivariable Calculus for Engineers
MATH 3033 Group Theory
MATH 3063 Geometry
MATH 3093 Elementary Number Theory
MATH 3213 Linear Algebra II
MATH 3333 Combinatorial Theory
MATH 3343 Networks and Graphs
MATH 3353 Computational Algebra
MATH 3363 Finite Math
MATH 3373 Introduction to Game Theory
MATH 3383 Introduction to Mathematical Logic
MATH 4063 Advanced Geometry (Exotic Spaces)
STAT 4333 Queuing Theory

Another approved MATH/STATS elective at the 2000 level or above, approved by the Assistant Dean (Undergraduate) in the Faculty of Computer Science.

Breadth Core Requirement

BCS students must complete at least 10 approved courses (minimum of 30 ch) from the Faculties of Arts, Business Administration, Engineering, and Science. MATH, STAT and SWE courses are not eligible for this requirement. Courses from the other faculties, as well as selected ECE courses may be taken toward this requirement with prior approval from the Assistant Dean (Undergraduate).
At least 2 of these courses (minimum of 6 ch) must be at the 2000 level or above.

  • Courses worth 6 credit hours or more will count as two courses toward this requirement.
  • AESL 2011 and AESL 2012 (or equivalent) count as first-year English.
  • See the GENERAL NOTES section below for a list of courses that are not for BCS credit.

Free Electives

In addition to the courses taken to satisfy the core curriculum requirements, BCS students must complete at least 4 approved free electives (minimum of 12 ch). Students can choose combinations of electives to allow them to complete an area of specialization with the BCS degree (see below), to complete a Minor in another area, or simply to acquire more breadth in their studies. Note: Courses worth 6 credit hours or more will count as two courses toward this requirement.

General Notes

  1. Credit is not given toward the BCS degree for MATH 1823 , MATH 1833 , MATH 2623 , MATH 2633, ADM 2623, PHIL 3101 , CHEM 1553 , BIOL 1621, BIOL 1622.
  2. UNIV 0101 (formerly UNIV 1001), AESL 1011 and AESL 1012 will not be counted for credit toward degree programs offered by the Faculty of Computer Science.
  3. Credit will not be given for both CS 1303 and MATH 2203.
  4. ECE 2213 and ECE 3221 will not normally be counted for credit toward the BCS degree.

Common First Year (5 courses each term)

CS 1073 Intro to Computer Programming I (in Java)
MATH 1003 Intro to Calculus I, or MATH 1053 Enriched Intro to Calculus I
MATH 1013 Intro to Calculus II, or MATH 1063 Enriched Intro to Calculus II
CS 1083 Introduction to Computer Programming II (in Java)
CS 1303 Discrete Structures
CS 1203 Overview of Computer Science
INFO 1103 Data and Information Management

Three term courses toward the Breadth Core Requirement, selected from Arts, Business Administration, Engineering and Science.

Honours in Computer Science

The requirements for the Bachelor of Computer Science with Honours are the following:

  1. The student's BCS Technical Elective Requirement must be satisfied with 7 CS/INFO/SWE courses. At least 5 of these 7 courses must be 3rd year or above, and at least 2 of these 7 courses must be 4th year or above.
  2. The student must have a cumulative grade point average of 3.0 or above.
  3. As one of the two required 4th year Technical Elective courses, the student must complete CS 4997 (Honours Thesis) with a grade of B or better.

Students satisfying the requirements for an Honours degree will receive a "First Class Honours" designation is their CGPA is 3.5 or above, and "Honours", if their CGPA is 3.0 or above and less than 3.5.
Students may elect to combine Honours with one of the specializations mentioned below, but an Honours designation can be obtained without completing one of the areas of specialization.

Areas of Specialization and Electives

To assist students in planning a program of studies, some recommended courses for areas of specialization, and elective groupings, are given at the end of this section. The suggested first year, and to some extent the second, are common to the six recommended areas. First and second year electives should be carefully chosen to include courses which are prerequisites to courses intended to be taken in the third and fourth years. Students are not bound in any way to follow an area of specialization, but each student must have their program approved by the faculty. Students are advised to check carefully on course prerequisites in preparing a program. The six areas are: