Bachelor of Science in Software Engineering

General Office: Department of Electrical and Computer Engineering
Head Hall, Room D36
and/or
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
Email: swe@unb.ca 
Website: https://www.unb.ca/fredericton/engineering/undergrad/swe/

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

Transferring from Engineering 

Students transferring to the software engineering program (BScSwE) from first year engineering (BSE.UNDC) are guaranteed acceptance into the program  if they meet the following eligibility criteria as described in the 1st Year Program description for the Faculty of Engineering.

Once they qualify, students are free to apply to transfer at any time during the year.  Transfer is guaranteed upon qualification until a student continues in another program (ee.g. BSE with a declared discipline).  Students who continue in another program are free to apply as a regular transfer student to BScSWE at any time.  Students who are put on academic probation when they are trying to qualify will be accepted to BScSWE once they qualify, but on academic probation. 

Upon transferring to BScSWE, all grades from courses listed in the 1st Year Program description for the Faculty of Engineering will be transferred and those that are a C or better will normally count for credit. 

Students transferring into BSE.UNDC with prior credit from other post-secondary institutions for any of the courses listed in the 1st Year Program description for the Faculty of Engineering are ineligible for guaranteed transfer, but are free to apply as a regular transfer student at any time. 

Transferring from Computer Science 

Students who apply to transfer to the software engineering program (BScSwE) while they are in first year computer science (BCS) are guaranteed acceptance into the programprovided they satisfy the BScSwE admission requirements, and they subsequently meet the following eligibility criteria.Note: BCS students who do not satisfy the BScSwE admission requirements will be considered for the BScSwE program on an individual basis. 

  1. Successful completion of 16 credit hours per term from courses listed for the Common First Year as described under the Bachelor of Computer Science degree program, 
  2. an eligibility average of no less than 2.0, and  
  3. successful completion of CS1073.  

The eligibility average is calculated as a grade point average across the grades attained in all of the MATH and CS courses listed for the Common First Year as described under the Bachelor of Computer Science degree program. 

Transfer to BScSwE is guaranteed for any student who meets the eligibility criteria after completing first year BCS. This guaranteed transfer eligibility no longer applies, however, if the student subsequently continues in the second year of the BCS program. Such students are free to apply at any time as a regular transfer student to BScSwE. 

Upon transferring to BScSWE, all grades from courses listed in the BCS Common First Year will be transferred and those for which the student earns a final grade of C or better will normally count for credit. 

Students transferring into BCS with prior credit from other post-secondary institutions for any of the courses included as part of the eligibility average are ineligible for guaranteed transfer, but are free to apply as a regular transfer student at any time. 

University Regulations

Students are strongly advised to read the General University Regulations, Section B of this Calendar, and in particular the subsection headed "Grading System and Classification". Any point not covered in the following regulations will be governed by the General University Regulations.

General Regulations 

  1. To earn a BScSWE degree, a student must complete at least 160 credit hours, as specified below.  
  2. Any course taken to satisfy any of the requirements for a BScSWE degree must be passed with a minimum grade of C or grade of credit. 
  3. Prerequisites must be passed with a minimum grade of C or grade of credit. 
  4. If a BScSWE student receives a failing grade three times in any given course, that student will be required to withdraw from the BScSWE program. Failing grades include D, F, WF, and NCR. Courses with the W, #, or X notations do not count toward this total.  
  5. Developments in the BScSWE program may lead to changes in the requirements for the degree. The University reserves the right to require candidates already enrolled to meet the revised requirements where practicable. 
  6. All BScSWE students must complete program-approved safety training prior to gaining access to Engineering laboratories. Safety training will be provided each year. 

Curriculum

The program is designed to be completed in 8 study terms. 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 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
CS 1073 Introduction to Computer Programming I (in Java)
CS 1083 Introduction to Computer Programming II (in Java)
CS 1543 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 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 1002 * Engineering Profession Lecture Series II
ENGG 1101 * Cornerstone Design Principles 
ENGG 1102 * Cornerstone Design Applications 
ENGG 1201 * Mechanics for Engineers I 
ENGG 1302 * Multidisciplinary Engineering in Practice 
ENGG 4001 Engineering Profession Lecture Series III
ENGG 4002 Engineering Profession Lecture Series IV
ENGG 4013 Law & Ethics for Engineers
ESCI 1003 * Earth Sciences and Sustainability 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 1082 * Waves and Electromagnetism
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

NOTES:

* Indicates common first year engineering courses

  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.

Electives

Basic Science Electives

Core courses in Basic Science include PHYS 1082, CHEM 1982, and ESCI 1003. A minimum of 3 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 3 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 4213 Web Development, Deployment and Operations
SWE 4303 Performance Analysis of Computer Systems
SWE 4503 Engineering Machine Learning Systems
SWE 4703 Software Defined Energy 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). (including courses related to anthropology, literature, history, philosophy, political science and sociology)
  3. The remaining credit hours may be taken from the faculties of Arts (including HSS), Faculty of Management, School of Leadership Studies, 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.
General Elective  
  • Each student is required to take a minimum of 3 additional credit hours from any of the above elective categories. Other courses may be taken to meet this requirement subject to the approval of the Software Engineering Coordinator. 

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, ENGG 0101) and Academic AESL courses (e.g. AESL 1011) will not be counted for credit towards the BScSWE degree program.