Bachelor of Science in Computer Science
Department of Computer Science
- Curriculum
- Areas of Specialization
- Honours Degree Curriculum, Basic and Specialized
- Certificate in Computing
- CS Minor
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 |
Email: | cssjchair@unb.ca |
Website: | https://www.unb.ca/saintjohn/sase/undergrad/dept/computerscience/index.html |
Faculty
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.
Regulations:
- The total curriculum consists of a minimum of 141 credit hours.
- A grade of C or better is required in all required core courses, all courses offered for specializations or honours.
- 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.
- 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.
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 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:
- Specialization in Data Analytics
- Specialization in Software Engineering, and
- 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)
- STAT 3703 Experimental Design
- STAT 4043 Sample Survey Theory
- STAT 4203 Intro Multivariate Data Analysis
- STAT 4243 Statistical Computing
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
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:
- A full-year course sequence in Science that includes labs, as part of the breadth core requirements:
- An extra upper level CS elective CS 3XXX or CS 4XXX (4 ch), excluding CS 3403, CS 3619, CS 3813, CS 3913, and CS 4993.
- An extra fourth year CS elective CS 4XXX (4 ch), excluding CS 4993.
- One CS topics course, covering an emerging area of computer science or recent advances in one area. Such course can be one of: CS 4083, CS 4123, CS 4973, or CS 4999. The Department Chair must approve the topic chosen.
- CS 4993 with a grade of B or better, in lieu of CS 4982.
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.
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 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.