Bachelor of Science in Computer Science

Department of Computer Science

General Office: Sir Douglas Hazen Hall, Room 305 
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
Email: cssjchair@unbsj.ca 
Website: http://www.unb.ca/saintjohn/sase/undergrad/computerscience/index.html 

Faculty

Chair: Dr. Christopher Baker 

  • Baker, Christopher, BSc (Univ of Newcastle upon Tyne UK), PhD (Univ of Wales, UK), Prof & Chair - 2008
  • Belacel, Nabil, Adjunct Prof (Joint Appt: Faculty of CS UNBF) - 2003
  • Garey, Lawrence E., BSc (St FX), MA, PhD (Dal), Prof Emeritus - 2007
  • Kaser, Owen, BCSS (Acad), MS, PhD (SUNY, Stony Brook), Assoc Prof - 1993
  • Light, Janet, BEng (Madras), MEng (Bharathiar), PhD (Avinashilingam), Prof - 2002
  • Lemire, Daniel, Adjunct Professor, (University of Quebec)- 2005
  • Mahanti, Prabhat, BSc (Calc.), MSc, PhD (Indian Inst. of Technology), Prof - 2001
  • Shaw, Ruth, BScDA, MScCS, PhD (UNB), Prof - 1986
  • Tasse, Josee, BScCS (Montr), PhD (McG), Assoc Prof - 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 and an IT minor.  A multi-disciplinary four year undergraduate program leading to a Bachelor of Information Sciences (BISc) is also available.

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 141 credit hours.
  2. A grade of C or better is required in all required core courses, all courses offered for specializations or honours, and all CS courses.
  3. It is recommended to take a minimum of 12ch 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

Curriculum

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 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 3813    Computer Architecture and Organization
CS 3913    Algorithmics
CS 3983    Professional Practice
CS 4613    Programing Languages
CS 4983    Technical Report or CS 4993 (Honours Project)
(ECE 2214 and ECE 2215) Digital Logic Design  and its Lab
or CS 2803   Logic Design
INFO 1103   Data and Information Management

Computer Science Elective Requirements

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

  • Two of them at the 3000 level or above
  • One 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 in Data Analytics should take STAT 1793 and STAT 2793.

Breadth Core Requirements:

Students should complete at least 30 ch of approved courses (representing approx. 10 courses) from the areas of Arts, Business Administration, Engineering, and Science. MATH, STAT and SWE courses are not eligible for this requirement. 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.

At least 6ch of these (2 courses) must be at the 2000 level or above.

It is strongly recommended that in order to meet this requirement, the student takes half of these courses in Science, Engineering, and/or Business, and half of these courses in Humanities and Social Sciences. Note that Honours students have to include Science courses, as described below.

The following courses cannot be used toward this breadth requirement, because of their heavy statistics content: BA 1605, BA 2606, BA 3129, ECON 4645, PSYC 2102, PSYC 2901, PSYC 3913, SOCI 3104.

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 MATH 3633 (Fundamental Principles of School Mathematics) cannot be taken for credit by Computer Science students.

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 High-Performance Scientific Computing
  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 High-Performance Scientific Computing

NOTE: Admission to this specialization has been suspended.

Required Courses

  • CS 3113     Introduction to Numerical Methods
  • CS 3123    High-Speed Computing
  • CS 4103    Parallel Programming with MPI
  • CS 4113     Advanced Scientific Computing
  • CS 4123     Topics in High-Performance Scientific Computing and Visualization

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
  • 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 High-Performance Scientific Computing: STAT 3083 and STAT 3093. (Note that admission to the Honours in High-Performance Scientific Computing has been suspended.)
  • 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 & Applied Statistics. 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 1303    Discrete Structures
  • CS 2043     Software Engineering I
  • INFO 1103    Data and Information Management
  • CS 2383     Data Structures and Algorithms
  • CS 2998    Programming Project
  • ICS 1002    Foundations of Information and Communication Studies

Electives:(At least 12ch 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.

Prerequisites
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 1303    Discrete Structures
  • CS 2043    Software Engineering I
  • CS 2253    Machine Level Programming
  • CS 2383    Data Structures and Algorithms
  • INFO 1103    Data and Information Management

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.

IT Minor

In the last few years information technology (IT)has emerged to play an important role in most work environments. Organizations of all kinds have become more dependent on computing infrastructure than before. IT people are required to select, manage, and maintain IT infrastructure to meet organizational needs. This program aims to prepare graduates from other discipline to a career in IT.

Prerequisites

None. However, students who do not have NB Grade 12 Math will have to pass Math 1863 before they take the required CS courses (or permission of instructor).

Required Courses

  • IT 1713    Multimedia and Information Highway
  • IT 1813    Introduction to Data Management
  • IT 2773    Java Programing for the Internet
    OR
  • CS 1073    Intro to Computer Programming I (in Java)
  • CS 1083    Intro to Computer Programming II (in Java)
  • CS 2043    Software Engineering I
  • INFO 1103    Data and Information Management

Additional 8 ch from upper level courses in CS/IT (or CS 2998 + 4ch from upper level courses in CS/IT).

Total CS/IT credits required = 29 ch min
NOTE: A grade of C or better is required in all courses credited towards the minor in IT.