Bachelor of Science in Computer Science

Department of Computer Science

General Office: Sir Douglas Hazen Hall, Room 307
Mailing Address: Department of Computer Science,
University of New Brunswick,
100 Tucker Park Road,
Saint John, N.B.,
Canada, E2L 4L5 
Phone: (506) 648-5970


Chair: Dr. Josee Tasse (Acting)

  • Baker, Christopher, BSc (Univ of Newcastle upon Tyne UK), PhD (Univ of Wales, UK), Prof - 2008
  • Belacel, Nabil, Adjunct Prof (Joint Appt: Faculty of CS UNBF) - 2002
  • Kaser, Owen, BCSS (Acad), MS, PhD (SUNY, Stony Brook), Assoc Prof - 1993
  • Lemire, Daniel, Adjunct Prof (University of Quebec) - 2005
  • Light, Janet, BEng (Madras), MEng (Bharathiar), PhD (Avinashilingam), Prof - 2002
  • Mahanti, Prabhat, BSc (Calc.), MSc, PhD (Indian Inst. of Technology), Prof - 2001
  • Shaw, Ruth, BScDA, MScCS, PhD (UNB), Prof Emeritus - 1986
  • Tasse, Josee, BScCS (Montr), PhD (McG), Assoc Prof & Acting Chair - 1997

General Information

The Department of Computer Science offers a four year undergraduate program accredited by the Canadian Information Processing Society (CIPS), leading to a Bachelor of Science in Computer Science (BScCS). Both honours and specializations are also offered along with the BScCS program. A set of core courses and some student selected courses (electives) comprise the requirements for the degree.

Our department also offers other related programs:  Certificate programs in Computer Science and Data Analytics, as well as a CS Minor.

For general regulations on admission, please consult the appropriate section of the University calendar. Transfer into the BScCS from another UNB degree program is not permitted if the GPA for the most recent assessment period is below 2.0. For transfer from another university, a CGPA equivalent to 2.0 at UNB is required.


  1. The total curriculum consists of a minimum of 141 credit hours.
  2. A grade of C or better is required in all required core courses, all courses offered for specializations or honours.
  3. It is recommended to take a minimum of 12 ch of courses having a significant writing component.  This requirement is mandatory for students contemplating a transfer into the Bachelor of Computer Science program at UNB Fredericton. Normally, courses with the prefix ENGL, HIST, or POLS satisfy this requirement. Other courses may also be acceptable. It is the responsibility of the student to ensure that a particular course has a significant writing component, by discussing with the instructor before taking the course. The student should also keep a course outline and at least one writing assignment, as a proof of the significant writing component.
  4. Students should consult with an advisor before taking a UNB course, online or not, offered at a different campus. For example, the course MATH 1843 (offered by the Fredericton campus) will not be granted credit.


The basic degree curriculum consists of a set of core requirements plus elective courses. It is expected that students will take four (4) years of study at 5 term courses per term to complete the program. The specific requirements are listed below.

Computer Science Core Requirements:

CS 1073    Intro to Computer Programming I (in Java)
CS 1083    Intro to Computer Programming II (in Java)
CS 1103    Intro to Databases
CS 1303    Discrete Structures
CS 2043    Software Engineering I
CS 2253    Machine Level Programming
CS 2263    Systems Software Development or CS 2617 C/C++ for Java Programmers
CS 2333    Computability and Formal Languages
CS 2383    Data Structures and Algorithms
CS 3403    Operating Systems
CS 3619    Programming Languages
CS 3813    Computer Architecture and Organization
CS 3913    Algorithmics
CS 3983    Professional Practice
CS 4980    Fourth Year Technical Report or CS 4982 (Technical Report) or CS 4993(Honours Project)
(ECE 2214 and ECE 2215) Digital Logic Design  and its Lab
or CS 2803   Logic Design

Computer Science Elective Requirements

On top of courses under the Computer Science Core Requirements above, the student should take 4 extra computer science courses (worth 4 ch each) as follows: 

  • Either CS 3893 (Computer Networking) or CS 2704 (Data Analytics using Python) or CS 3033 (Software Design and Development)
  • Two more of them at the 3000 level or above
  • One more of them at the 4000 level or above 

Mathematics and Statistics Core Requirements:

MATH 1003   Intro to Calculus I
MATH 1013   Intro to Calculus II
MATH 2213   Linear Algebra
or MATH 1503  Introduction to Linear Algebra

STAT 1793 and STAT 2793 Introduction to Probability and Statistics I and II
or STAT 2593 Probability and Statistics for Engineers

NOTE: Students planning to take further courses in Statistics or take the Certificate or Specialization in Data Analytics should take STAT 1793 and STAT 2793.

Arts Writing Core Requirement:

HUM 1021 (Effective Writing I) or one course in English, Political Science, or History. (Writing courses from other disciplines in the Faculty of Arts may be approved at the discretion of the Department Chair). The requirement may also be satisfied by obtaining university credit for a Grade 12 English course taken under the International Baccalaureate or Advanced Placement systems. At the discretion of the Department Chair, the Arts Writing Core Requirement may be waived for students who have otherwise demonstrated exceptional performance in Grade 12 English, for instance by winning a "top mark in Grade 12 English" award. 

Breadth Core Requirement:

Students should complete at least 27 ch of approved courses (representing approx. 9 courses) from the areas of Arts, Business Administration, Engineering, and Science. CMPE, CS, DA, MATH, STAT and SWE courses are not eligible. Similarly, courses in other fields with an excessive component from these subjects are also ineligible. Such courses include (but are not limited to) BA 3129, BA 3623, BA 3624, BA 3672, BIOL 1605, CE 2913, ECON 3613, ECON 3665, ECON 4645, ECE 2412, HEAL 2002, ME 2352, PSYC 2102, and SOCI 3104. Courses from other areas, as well as selected ECE courses (Electrical Engineering courses, not Computer Engineering courses), may be taken toward this requirement with prior approval from the Department Chair. Courses excluded below under "free electives" may not be used toward the breadth core requirement.

It is strongly recommended that in order to meet this requirement, the student take half of these courses in Science, Engineering, and/or Business, and half of these courses in Humanities and Social Sciences. At least 6 ch of these (2 courses) must be at the 2000 level or above.

Note that Honours students have to include Science courses, as described below.

Free Electives:

In addition to the courses taken to satisfy the core curriculum requirements, BScCS students must complete sufficient free electives to get a total of 141 ch. Students can choose combinations of electives to allow them to complete an area of specialization with the BScCS degree, to complete a Minor in another area, or simply to acquire more breadth in their studies. Students are encouraged to take one course (or more) in a newer area of computing. Note that elective credit is not granted for a course whose content has extensive overlap with other courses for which credit will be received, and elective credit is also not granted for a course that represents pre-university content. In particular, the following is a non-exhaustive list of courses for which elective credit will not be granted: BA 1605, BA 2606, CHEM 1813, CMPE 1003, CS 1003, CS 1023, CS 1063, IT 1703, IT 1713, IT 1803, IT 1813, IT 2773, MATH 1001, MATH 1853, MATH 1863, MATH 2633, MATH 2853, MATH 3633, clinical/practicum NURS courses, PSYC 2901, PSYC 3913, SCI 1001, SCI 1831, SCI 1862, SCI 1872, STAT 2263, STAT 2593, UNIV 1003, UNIV 1005, UNIV 2003. 

Elective credit for ED courses is limited to 9 ch. SOCS 4051 requires approval of the Department Chair. Students should contact an advisor or the Department Chair for clarification or if there are exceptional circumstances regarding free electives or breadth-core courses. 

Areas of Specialization

The basic degree is obtained by satisfying the basic curriculum outlined above. In addition to the basic degree, three specializations or curriculum options are available, as described below:

  1. Specialization in Data Analytics
  2. Specialization in Software Engineering, and
  3. Specialization in Networking

To obtain a specialized degree, students must complete all required core courses and all required courses listed in the chosen area of specialization, and they must obtain a cumulative grade point average of 2.5 or greater.

Specialization in Data Analytics

Required Courses

  • STAT 4703 Regression Analysis
  • CS 2704     Data Analytics using Python
  • DA 4993     Project in Data Analysis (with a project involving a large amount of data)
One of
One of
One of
  • CS 2714     Text Analysis
  • CS 3423     Data Management
  • CS 3553     Intro to Bioinformatics
  • CS 3769     Knowledge Representation
  • CS 4525     Adv. Database Management Systems
  • CS 4553     Biomedical Informatics

Specialization in Software Engineering

Required Courses

  • CS 3033     Software Design and Development
  • CS 4033     Software Project Management and Quality Assurance
  • CS 4083     Leading-Edge Technology in Software Development
  • CS 4093     Team Software Development Project
  • CS 4525     Advanced Database Management Systems

NOTE: The Specialization in Software Engineering is not an accredited engineering program and does not lead to registration as a Professional Engineer.

Specialization in Networking

Required Courses

  • CS 3893    Computer Networking
  • CS 4843    Wireless and Mobile Computing

In addition, at least three (3) of the following courses must be completed.

  • MATH 3343    Networks and Graphs
  • MATH 4704    Introduction to Coding Theory
  • CS 3123    High Speed Computing
  • CS 4713    Fundamentals of Simulation
  • CS 4893    Network Programming
  • CS 4973 or CS 4999 Independent Study/Directed Studies in Computer Science, with an approved topic.

Honours Degree Curriculum, Basic and Specialized:

Students in the BScCS degree program may elect, after their first or second year, an Honours degree program, with or without a specialization. Students who satisfy the requirements for an honours and/or specialized degree will have that designation on their final transcript. The honours degrees are designed to prepare students for graduate work.

The requirements for the basic BScCS degree must be met. Within the constraints of those basic requirements, the student must complete:

An honours degree with specialization requires that the student meet the requirements of both the honours degree and the specialization. It further requires:

  • Honours in Data Analytics: One additional course from the Specialization's list of Statistics courses, one additional course from the Specialization's list of CS courses, and an approved course in an applied area (for example, health or environmental studies) related to the topic of the Honours Project.
  • Honours in Software Engineering: STAT 3703.
  • Honours in Networking: no additional courses required

A cumulative grade point average greater than or equal to 3.0 is required to achieve the honours degree. Students who satisfy the requirements for an Honours degree will receive "First Class Honours" if their CGPAs are greater than or equal to 3.5. If their CGPAs are greater than or equal to 3.0 and less than 3.5, they will receive "Second Class Honours".

Certificate in Computing

This certificate program is designed to provide individuals, especially working adults, with an opportunity to acquire the formal background necessary to become effective participants in the Information Technology industry. Since the courses taken in the Certificate are also appropriate for the BScCS, students who later decide to pursue a BScCS will normally be able to transfer their credits into that program.

Although the scheduling of courses cannot be guaranteed, it is likely that the Certificate can be completed on a part-time basis in five terms.

The Certificate is also available to students who do not meet the entrance requirements of the BScCS program; in fact, there are no specific entrance requirements except the formal approval of the Department of Computer Science. However, students who do not have Grade 12 Math will have to pass Math 1863 before they take the required CS courses.

Core Courses

  • CS 1073     Intro to Computer Programming I (in Java)
  • CS 1083     Intro to Computer Programming II (in Java)
  • CS 1103     Introduction to Databases
  • CS 1303     Discrete Structures
  • CS 2043     Software Engineering I
  • CS 2383     Data Structures and Algorithms
  • CS 2998     Programming Project
  • CS 2704     Data Analytics using Python or COMS 1002 Media, Truth, and the Social Sphere

Electives:(At least 12 ch required)

Electives may be chosen from any of the 2000-, 3000-, or 4000-level Computer Science courses.

A grade of C or better is required in all courses credited toward the Certificate.

CS Minor

This program aims to prepare graduates from other disciplines to a career in areas of arts and business computer applications, such as in media, banking, data analyzing etc. There are potentially many rich opportunities for cooperation between the knowledge of arts and business disciplines with Computer Science for the above career.

Grade 12 High School Math

Required courses

  • CS 1073    Intro to Computer Programming I (in Java)
  • CS 1083    Intro to Computer Programming II (in Java)
  • CS 1103    Introduction to Databases
  • CS 1303    Discrete Structures
  • CS 2043    Software Engineering I
  • CS 2253    Machine Level Programming
  • CS 2383    Data Structures and Algorithms

Additional 4 ch from upper level CS courses (CS 2998 can be used to meet this requirement).

CS credits required = 32 ch min

NOTE: A grade of C or better is required in all courses credited towards the minor in CS.