Bachelor of Science in Computer Science

Department of Computer Science

General Office: Sir Douglas Hazen Hall, Room 306
Mailing Address: Department of Computer Science,
University of New Brunswick,

355 Campus Ring Road, 

PO Box 5050

Saint John, N.B.,
Canada, E2L 4L5 
Phone: (506) 648-5970
Email: cssjchair@unb.ca
Website: https://unb.ca/saintjohn/sase/dept/cs/

Faculty

Chair: Dr. Janet Light

  • Baker, Christopher, BSc (Univ of Newcastle upon Tyne UK), PhD (Univ of Wales, UK), Prof - 2008
  • Kim, Jong-Kyou, BCS (KAIST), PhD (KAIST), Assistant Professor - 2022 
  • Lemire, Daniel, Adjunct Prof (University of Quebec) - 2005
  • Light, Janet, BEng (Madras), MEng (Bharathiar), PhD (Avinashilingam), Prof and Chair - 2002
  • Mahanti, Aniket, BScCS (UNB), MSc and PhD (University of Calgary), Adjunct Prof (The University of Auckland) - 2023 
  • Mahanti, Prabhat, BSc (Calc.), MSc, PhD (Indian Inst. of Technology), Prof - 2001
  • McNally, Jeffrey Mark, BSc, MSc, MCS, PhD (UNB) 
  • Shaw, Ruth, BScDA, MScCS, PhD (UNB), Prof Emeritus - 1986
  • Tasse, Josee, BScCS (Montr), PhD (McG), Assoc Prof - 1997
  • Van der Laan, Jake, BBA, LLB, BScCS, MCS (UNB) 

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.

Regulations:

  1. The total curriculum consists of a minimum of 141ch.
  2. A minimum grade of C is required in all courses counting towards core requirements, specializations or honours requirements, and in all CS courses counting towards the degree.
  3.  It is required for all BScCS students to take a minimum of 12 ch in courses that have a significant writing component, typically marked with a 'W' notation.  
  4. Students should consult with their advisor before taking any online or UNB Fredericton course. 

Curriculum

The basic degree curriculum consists of a set of core requirements plus elective courses. It is expected that students will take four years of study at five 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) (4ch) 
CS 1083 Intro to Computer Programming II (in Java)(4ch) 
CS 1103 Intro to Databases(4ch) 
CS 1303 Discrete Structures(4ch) 
CS 2043 Software Engineering I (4ch) 
CS 2253 Machine Level Programming(4ch) 
CS 2263 Systems Software Development(4ch) or CS 2617 C/C++ for Java Programmers (1ch)
CS 2333 Computability and Formal Languages(4ch) 
CS 2383 Data Structures and Algorithms (4ch) 
CS 3403 Operating Systems(4ch) 
CS 3619 Programming Languages(4ch) 
CS 3813 Computer Architecture and Organization(4ch) 
CS 3893 Computer Networking (4ch)
CS 3913 Algorithmics(4ch) 
CS 3983 Professional Practice(4ch) 

Computer Science Elective Requirements

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

  • Three more courses at the 3000 level or above
  • One more course at the 4000 level or above 

Mathematics and Statistics Core Requirements:

MATH 1003 Calculus I: Differential Calculus(3ch)
MATH 1013 Calculus II: Integral Calculus(3ch)
MATH 1503 Introduction to Linear Algebra or MATH 2213 Linear Algebra(3ch)
STAT 1793 and STAT 2793 Introduction to Probability and Statistics I (3ch) and II (3ch)
or STAT 2593 Probability and Statistics for Engineers(3ch)

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 (3ch) or one course from the Faculty of Arts with ‘W’ designation.

Breadth Core Requirement:

Students should complete at least 27 ch of approved courses (representing approx. nine 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 3672CE 2913, ECON 3613, ECON 3665, ECON 4645HEAL 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, students takes 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 (two 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 1093, 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 4501 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:

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

Specialization in Software Engineering

Required Courses

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

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

Note: Admission to this specialization has been suspended. 

Required Courses:

  • CS 3893 Computer Networking (4ch)
  • CS 4843 Wireless and Mobile Computing (4ch)

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

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

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, students must complete:

An honours degree with specialization requires that students 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 Specializations 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) (4ch)
  • CS 1083 Intro to Computer Programming II (in Java) (4ch)
  • CS 1103 Introduction to Databases (4ch)
  • CS 1303 Discrete Structures (4ch)
  • CS 2043 Software Engineering I (4ch)
  • CS 2383 Data Structures and Algorithms (4ch)
  • CS 2704 Data Analytics using Python  (4ch)
  • CS 2998 Programming Project (4ch)

Electives:(At least 12 ch required)

Electives may be chosen from any of the 2000-, 3000-, or 4000-level Computer Science courses. A minimum grade of C is required in all courses credited toward the Certificate.

Minor in Computer Science

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.

Prerequisite
Grade 12 High School Math

Required Courses:

  • CS 1073 Intro to Computer Programming I (in Java) (4ch)
  • CS 1083 Intro to Computer Programming II (in Java) (4ch)
  • CS 1103 Introduction to Databases (4ch)
  • CS 1303 Discrete Structures (4ch)
  • CS 2043 Software Engineering I (4ch)
  • CS 2263 System Software Development(4ch)
  • CS 2383 Data Structures and Algorithms (4ch)

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 minimum grade of C is required in all courses credited towards the minor in CS.