Bachelor of Science in Software Engineering

General Office: Department of Electrical and Computer Engineering
Head Hall, Room D36
Faculty of Computer Science
Information Technology Centre, Room ITC314 
Mailing Address: Program Coordinator, Software Engineering Program
Faculty of Engineering/Faculty of Computer Science
University of New Brunswick,
P.O. Box 4400, Fredericton, N.B.,
Canada, E3B 5A3 
Phone: (506) 453-4561 or (506) 453-4566
Fax:  (506) 453-3589 or (506) 453-3566

General Information

Software Engineering was established at UNB as a separate discipline in 2000. The BScSwE is administered jointly by the Department of Electrical and Computer Engineering and the Faculty of Computer Science. The program educates professionals who apply engineering techniques to the design, implementation, testing and maintenance of software products. The Software Engineering progam is accredited by both the Engineers Canada and the Canadian Information Processing Society. Students graduating from the program will be eligible for registration as an Information Systems Professional and will have fulfilled the academic requirements for licensure as a professional Engineer in Canada.

The BScSwE is designed as a four-year program or five years if undertaken in conjunction with the Co-op or Professional Experience Program. Students entering the program are strongly encouraged to participate in either Co-op or PEP, as it is widely recognized that the experience gained is a valuable component of a Software Engineering background. A description of these Cooperative Education Programs is found in the Bachelor of Computer Science and Bachelor of Science in Engineering degree program descriptions.

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

  • Bachelor of Computer Science

The Faculty of Engineering also offers the following degree program:

  • Bachelor of Science in Engineering


The program is designed to be completed in 8 study terms. Because the BScSwE is considered an engineering degree, the General Regulations, including minimum credit hour requirements that are listed under Bachelor of Science in Engineering, apply to the BScSwE program. The program consists of required “core” courses, basic science electives, technical electives and complementary studies electives. The first year of the program includes many fundamental math, science, and engineering courses common to all Engineering programs. Students transferring from BScE.UNDC will have all of their courses transferred to BScSWE, but only those common to the BScSWE, with grades C or better, will count towards program credit. Students transferring from New Brunswick Community Colleges will be eligible to receive up to one year of credits toward the Software Engineering degree. A minimum grade of C is required for all courses used for credit towards the BScSwE degree.

Core Courses

CHEM 1982 General Applied Chemistry
CHEM 1987 General Applied Chemistry Laboratory
CS 1073 Introduction to Computer Programming I (in Java)
CS 1083 Introduction to Computer Programming II (in Java)
CS 1103 Introduction to Databases
CS 1303 Discrete Structures
CS 2043 Introduction to Software Engineering 
CS 2263 Systems Software Development
CS 2333 Computability and Formal Languages
CS 2383 Data Structures and Algorithms
CS 2413 Information Security
CS 2613 Programming Languages Lab
CS 3383 Algorithm Design and Analysis
CS 3413 Operating Systems I
SWE 3503 Systems Analysis, Design and Project Management
ECE 1813 Electricity and Magnetism
ECE 2021 Electrical Design, Experimentation, and Measurements
ECE 2214 Digital Logic Design
ECE 2215 Digital Logic Design Laboratory
ECE 2711 Electric Circuits 
ECE 3221 Computer Organization
ECE 3232 Embedded Systems Design
ECE 4803 Data Communications and Networking 
or CS 38732 Net-centric Computing
ENGG 1001 Engineering Practice Lecture Series
ENGG 1003 Engineering Technical Communications
ENGG 1015 Introduction to Engineering Design & Problem Solving
ENGG 4013 Law & Ethics for Engineers
MATH 1003 Introduction to Calculus I
MATH 1013 Introduction to Calculus II
MATH 1503 Introduction to Linear Algebra
ME 3232 Engineering Economics or CE 3963 Engineering Economy
PHYS 1081 Foundations of Physics for Engineers
STAT 2593 Probability and Statistics for Engineers
SWE 4040 Software Engineering Design Project or ENGG 40002 Senior Design Project or TME 4025Product Design and Development
SWE 4103 Software Quality and Project Management
SWE 4203 Software Evolution and Maintenance
SWE 4403 Software Architecture and Design Patterns


  1. CS 3873 is a prerequisite for the technical elective CS 4865.
  2. Capstone design course prerequisites for software engineering students: ((CS 3503 or SWE 3503 or at least 2 terms of co-op) and 100 ch in the software engineering program) or permission from the instructor.  
  3. Permission from program co-ordinator is required to take ENGG 4000 or TME 4025 in lieu of SWE 4040.


Basic Science Electives

Core courses in Basic Science include PHYS 1081, CHEM 1982, and CHEM 1987. A minimum of 5 ch of other Basic Science courses must be chosen from the Physics, Chemistry, and the life or earth sciences. 

Technical Electives

Each student is required to take 5 technical elective courses chosen from the following list. Other senior level courses that are at least 3 credit hours may be taken subject to approval by the Software Engineering Coordinator.

CS 2053 Introduction to Game Development
CS 2063 Introduction to Mobile Application Development
CS 2545 Data Science for Big Data Analytics
CS 3025 Human-Computer Interaction
CS 3103 Programming on the Web
CS 3113 Intro to Numerical Methods (or MATH 3413)
CS 3543 Database Systems Administration
CS 4065 Interactive Human-Centered Systems
CS 4355 Cryptanalysis and Database Security
CS 4405 Operating Systems II
CS 4411 Fundamental of Information Assurance
CS 4413 Foundations of Privacy
CS 4415 Network Security
CS 4417 Software Security
CS 4419 Digital Forensics
CS 4545 Big Data Systems
CS 4613 Programming Language Interpretation
CS 4725 Introduction to Artificial Intelligence
CS 4735 Computer Graphics
CS 4745 Introduction to Parallel Processing
CS 4865 Principles of Data Communications and Networks Modeling 
CS 4905 Introduction to Compiler Construction
CS 4935 Advanced Algorithmic Techniques
CS 4998 Open Source Project
ECE 4242 Computer Architecture
ECE 4261 Digital Systems Design
ECE 4433 Safety-Critical System Design
ECE 4823 Communications and Network Engineering
ECE 4913 Independent Project
ECE 4923 Introduction to Biomedical Engineering
ECE 4943 Topics in Computer Engineering
SWE 4303 Performance Analysis of Computer Systems
SWE 4913 Independent Project

Complementary Studies Electives

The program requires 9 credit hours (typically three 3 credit hour courses) of Complementary Studies Electives (CSE). While students are encouraged to seek out courses of interes and value to them, the choice of courses is subject to the following restrictions and approval by the Software Engineering Coordinator:

  1. Three credit hours must be a course addressing the impact of technology on society. A list of appropriate courses is available from the BScSwE program coordinator.
  2. At least three additional credit hours must be in the Humanities and Social Sciences (HSS). This includes courses from Anthropology, Classics, History, International Development Studies, Literature, Philosophy, Political Science, and Sociology.
  3. The remaining credit hours may be taken from the faculties of Arts (including HSS), Business Administration, Renaissance College, or through Technology of Management and Entrepreneurship (TME), subject to the approval of the program coordinator. No more than three credit hours of language courses may be used for credit toward the BScSWE Degree. ENGL 1103 is strongly recommended.

Biomedical Engineering Option in Software Engineering

Biomedical engineering is the application of engineering principles in biological systems. This SWE option explores applications of engineering that are well suited for biomedical use. The purpose of the option is to give students experience with biomedical terminology and ways of thinking, such that they are familiar with the topics they would need to learn in an advanced degree or in order to work with health-care providers, biomedical companies, and solve important problems that pertain to our health and well being.

Students may not enrol in the option until they have completed 80 ch, although they are encouraged to integrate appropriate coursework (including prerequisites) into their broader plan. Courses chosen to count towards the option must be approved by the option co-ordinator. Enrolment in this option will likely result in an extra term; students must ensure coursework schedules.

The option comprises a project-based course in the area of biomedical engineering (described in section A below) along with 20 credit hours from UNB courses described in sections B-C below. Some of these courses taken as part of the option may also be used as technical electives in the SWE program.

Students must complete:

A. One of SWE 4040, TME 4025SWE 4913 or ECE 4913 with a biomedical application.

B. One of APSC 3953 Basis of Biomedical Engineering (3 ch) or ECE 4923 Intro to Biomedical Engineering (4 ch)

C. The remaining credit hours (16 or 17) must be selected from the following courses. An asterisk denotes highly recommended.

* BIOL 1782 Human Physiology I (4 ch)
* BIOL 1789 Human Physiology I - Online (4 ch)
* BIOL 2792 Human Physiology (3 ch)
* CS 2545 Data Science for Big Data Analytics (3 ch)
* CS 3025 Human-Computer Interaction (3 ch)
* CS 4065 Interactive Human-Centered Systems (3 ch)
* CS 4725 Introduction to Artificial Intelligence (4 ch)
* ECE 4343 Haptic Robotics (4 ch)
* ECE 4433 Safety Critical Design (4 ch)
* ECE 4553 Intro to Pattern Recognition (4 ch)
* ME 5913 Biomechanics (4 ch)
* STAT 3373 Elementary Experimental Design (3 ch)
* EE 6913 Advanced Biomedical Instrumentation (3 ch)
BIOL 1719 Human Anatomy (4 ch)
BIOL 3033 Cell Signaling (3 ch)
BIOL 4533 Bioinformatics: Computational Analysis of Genes and Genomes (4 ch)
CHEM 4503 Biocomputing in Drug Design (5 ch)
CS 4545 Big Data Systems (4 ch)
ECE 3111 Electronics I (4 ch)
ECE 3122 Electronics II (4 ch)
ECE 3312 Systems and Controls (4 ch)
ECE 3511 Signals (4 ch)
ECE 4133 Instrumentation design (4 ch)
ECE 4531 DSP 1 (4 ch)
ECE 4523 Communication Systems (4 ch)
KIN 2062 Intro. To Biomechanics (3 ch)
KIN 2072 Introduction to Motor Control and Learning (3 ch)
KIN 3042 Disability Awareness (3 ch)
KIN 3061 Advanced Biomechanics (4 ch)
KIN 3081 Physiological Basis for Physical Activity (3 ch)
KIN 3161 Human Factors in Ergonomic Design (3 ch)
KIN 3252 Functional Home Anatomy (4 ch)
KIN 3282 Physical Activity, Health and Wellness (3 ch)
KIN 4041 Movement Disorders (3 ch)
KIN 4063 Biomedical Instrumentation and Data Acquisition (3 ch)
KIN 4072 Neural Control of Human Movement (3 ch)
KIN 4161 Occupational Biomechanics (3 ch)
KIN 4162 Occupational Health and Safety Ergonomics (3 ch)
KIN 4163 Workplace Ergonomic Design and Analysis (3 ch)
KIN 4281 Measurement and Evaluation in Exercise Science (4 ch)
KIN 4165 Occupational Physiology (3 ch)
PHYS 5993 Magnetic resonance Imaging (3 ch)
STAT 5293 Applied Statistics (3 ch)

Software Engineering (BScSwE) Entrance Program

Students admitted to the Software Engineering Entrance Program are considered fully-accepted students with an acceptance condition that the missing requirement be met by taking an approved University course before transfer to the Bachelor of Science in Software Engineering. Conditions of acceptance will be provided to the students with their letter of acceptance.

Entrance students must complete at least 12 credit hours per term and remain in good academic standing. Courses taken while enrolled in the Software Engineering Entrance Program will be considered for degree credit by the program into which the student is ultimately enrolled.

The Software Engineering Entrance Program is a terminal program. Students who fail to meet conditions of their acceptance or rules of the program within their first academic year will be required to withdraw from the Faculty. Students who withdraw in this manner will be eligible to apply for admission to other Faculties.

General Notes

  1. University Studies courses (e.g.UNIV0101) and Academic AESL courses (e.g. AESL 1011) will not be counted for credit towards the BScSWE degree program.