Software Engineering Degree and Transfers
The software engineering program at the University of Victoria is leading to the degree of Bachelor of Software Engineering (BSEng). This degree program is offered jointly by two Departments in the Faculty of Engineering, the Department of Electrical and Computer Engineering and the Department of Computer Science.
The program itself will have no minors or majors. Students will still be able to pursue the Software Engineering Option within a Computer Science degree or a Software Engineering Specialization within a Computer Engineering degree.
You can find the BSEng Academic Regulations in the UVic Calendar.
The curriculum has been designed to give you a thorough understanding of the specification, development, implementation, testing, maintenance, and evolution of software systems ranging from embedded systems to large information systems. The courses ensure that you obtain a foundation in mathematics and basic sciences, a broad preparation in engineering design and engineering sciences, and an exposure to non-technical subjects in the form of complementary studies courses.
The requirements for this BSEng program include 47 courses and mandatory work experience of 16 months. The courses, which are designed to be taken over eight terms, include 38 prescribed courses and nine elective courses. The Table below summarizes the components and the contributions of the key disciplines to the proposed software engineering degree program.
| BSENG COMPONENT | NUMBER OF COURSES |
|---|---|
| Software Engineering | 12 |
| Engineering | 7 |
| Computer Science | 6 |
| Mathematics | 6 |
| Basic Science | 4 |
| Complementary Studies Electives | 7 |
| Technical Electives | 5 |
| Total | 47 |
The following tables describe an ideal schedule for BSEng work terms and course terms. This schedule, if followed, allows you to graduate in a fixed amount of time (i.e., 4 2/3 years). Assuming that selected courses are offered multiple times, you have significant flexibility with respect to the length of your work terms.
| FALL | SPRING | SUMMER |
|---|---|---|
| Course Term 1A |
Course Term 1B |
Work Term or Off Term |
| Course Term 2A | Work Term or Off Term |
Course Term 2B |
| Work Term or Off Term |
Course Term 3A | Work Term or Off Term |
| Course Term 3B | Work Term or Off Term |
Course Term 4A |
| Work Term or Off Term |
Course Term 4B |
The first year of the BSEng shown is similar to the existing BENG first year, but can also serve as preparation for computer science degrees. This approach ensures maximal flexibility for you to change programs during or even after first year with minimal additional course work. Student advising is a critically important part of Engineering First Year.
The first year courses emphasize fundamental skills, such as computer programming, engineering design, basic science, calculus and English. These courses also provide the broad background necessary to allow you to choose from the broad range of engineering and basic science electives.
The primary goals of the two courses on electrical and mechanical systems are to develop engineering design skills and to expose you to a variety of systems.
| TERM 1A | UVIC CALENDAR |
COURSE INSTANTIATIONS |
|---|---|---|
| Fundamentals of Programming: I For Engineers | CSC 111 (formerly CSC 110) | CSC and SENG Undergraduate Courses |
| * Introduction to Professional Practice | ENGR 020 | ENGR Courses |
| Calculus: I | MATH 100 | MATH Courses |
| Matrix Algebra for Engineers | MATH 110 | MATH Courses |
| Design and Communication : I | ENGR 110 | ENGR Courses |
| Mechanics for Engineers | PHYS 122 | PHYS Courses |
| TERM 1B | UVIC CALENDAR |
COURSE INSTANTIATIONS |
|---|---|---|
| Fundamentals of Programming: II For Engineers | CSC 115 (formerly CSC 160) | CSC and SENG Undergraduate Courses |
| Design and Communication: II | ENGR 120 | ENGR Courses |
| Engineering Fundamentals: I | ENGR 141 | ENGR Courses |
| Calculus II | MATH 101 | MATH Courses |
| Fundamentals of Physics | PHYS 125 | PHYS Courses |
* Please note, ENGR 020 (Introduction to Professional Practice) should be completed during the first term upon admission to program (normally 1A, 2A or 3A). See Calendar for regulations regarding ENGR 020, ENGR 240 and participation in Co-op placement process.
The second and third year courses develop engineering skills and fundamental knowledge, which are essential for a software engineering degree, including software engineering, computer science, computer engineering, electrical engineering, basic science, business, entrepreneurship, technical writing, and elective complementary studies. The discrete mathematics components in second year are essential for several software engineering courses.
| TERM 2A | UVIC CALENDAR |
COURSE INSTANTIATIONS |
|---|---|---|
| Introduction to Computer Architecture | CSC 230 or CENG 255 |
CSC and SENG Undergraduate Coursesor ECE Courses |
| Continuous-Time Signals and Systems | ELEC 260 | ECE Courses |
| Fundamentals of Chemistry: I | CHEM 101 | ENGR Courses |
| Logic and Foundations | MATH 122 | MATH Courses |
| Software Development Methods | SENG 265 | CSC and SENG Undergraduate Courses |
| Introduction to Probability and Statistics: I | STAT 260 | MATH Courses |
| TERM 2B | UVIC CALENDAR |
COURSE INSTANTIATIONS |
| Algorithms and Data Structures: I | CSC 225 | CSC and SENG Undergraduate Courses |
| Digital Signal Processing: I | ELEC 310 | ECE Courses |
| Engineering Economics | ENGR 280 | ENGR Courses |
| Discrete and Combinatorial Mathematics | MATH 222 | MATH Courses |
| Software Modeling Engineering | SENG 271 | CSC and SENG Undergraduate Courses |
| Human Computer Interaction | SENG 310 | CSC and SENG Undergraduate Courses |
The third year of the program permits one basic science elective and one complementary study elective to allow each student to broaden his or her knowledge. The two business components in second and third year are essential for software engineering practice.
| TERM 3A | UVIC CALENDAR |
COURSE INSTANTIATIONS |
|---|---|---|
| Software Evolution | SENG 371 | CSC and SENG Undergraduate Courses |
| Control Theory and Systems: I | ELEC 360 | ECE Courses |
| Requirements Engineering and Formal Specifications | SENG 321 | CSC and SENG Undergraduate Courses |
| Software Process and Management | SENG 380 | ECE Courses |
| Complementary Studies Elective | See entry below | |
| Natural Science Elective | See entry below |
| TERM 3B | UVIC CALENDAR |
COURSE INSTANTIATIONS |
|---|---|---|
| Foundations of Computer Science | CSC 320 | CSC and SENG Undergraduate Courses |
| Operating Systems | CSC 360 | CSC and SENG Undergraduate Courses |
| Database Systems | CSC 370 | CSC and SENG Undergraduate Courses |
| Security Engineering | SENG 360 | CSC and SENG Undergraduate Courses |
| Microprocessor-Based Systems orDigital Logic and Computer Organization | CENG 355 orCSC 355 | ECE Coursesor CSC and SENG Undergraduate Courses |
| Computer Communication and Networks or Computer Communication Networks |
CSC 361orCENG 460 | ECE Coursesor CSC and SENG Undergraduate Courses |
Fourth year continues the skill and knowledge development with an additional four prescribed courses. An engineering curriculum must culminate in a significant design experience which is based on the knowledge and skills acquired in earlier course work and which, preferably, gives you an exposure to the concepts of teamwork. The required technical project is intended for this purpose. The fourth year of the proposed software engineering degree program also includes five technical electives. These courses allow you to specialize and pursue particular interests in greater depth. The final course in this software engineering degree program introduces you to the legal, social, and professional issues that arise in software engineering practice.
The fourth year of the program permits five technical electives and one free elective to allow you to focus your studies in the area of most interest.
| TERM 4A | UVIC CALENDAR |
COURSE INSTANTIATIONS |
|---|---|---|
| SENG 426 Software Quality Engineering | SENG 426 | ECE Courses |
| Embedded Systems | SENG 440 | ECE Courses |
| Two courses taken from the technical electives | See entry below | |
| Free elective taken from any faculty | See entry below | |
| Natural Science Elective | See entry below |
| TERM 4B | UVIC CALENDAR |
COURSE INSTANTIATIONS |
|---|---|---|
| Real Time Computer Systems or Design and Analysis of Real-time Systems | CENG 455orCSC 460 | ECE CoursesorCSC and SENG Undergraduate Courses |
| Social and Professional Issues | SENG 401 | CSC and SENG Undergraduate Courses |
| Technical Project | SENG 499 | ECE Courses |
| Three courses taken from the technical electives | See entry below | |
| * Technical Report | ENGR 446 | ENGR Courses |
* Please note, ENGR 446 is to be registered in the term preceding the final term of program (academic or work term).
Any two of the following courses are acceptable for use in satisfying the Natural Science elective requirement of the BSEng program. Depending on the first course taken, some additional courses may also be suitable for use to satisfy this requirement. You should contact the BSEng office about the possible use of other courses. You can download a current list of acceptable courses here: Natural Science Electives (PDF)or obtain it from the BSEng Office.
Complementary Studies Electives
This course must be chosen to meet the Complementary Studies requirements for accreditation. You can download a current list of acceptable courses here: Complementary Studies Electives (PDF)or obtain it from the BSEng Office. If you wish to use a course not on this list you must obtain written approval through the BSEng office.
The Software Engineering Program offers a large number of technical electives; the program requires completion of five technical electives (7.5 units) normally chosen from the set of 400-level courses offered within the Faculty. Students who transferred from other programs or post-secondary institutions must choose their electives in consultation with the Software Engineering Program Office. Their choice of electives requires pre-approval by that office. Students who complete 3 courses (4.5 units) in one of the specialization areas listed below can optionally request a letter from the Software Engineering Program Office confirming this; the area will not be shown on the transcript.
Specialization Areas
Biomedical
CSC 428 Computational Biology Algorithms
CSC 498 Bioinformatics Project *
ELEC 435 Medical Image Processing
ELEC 486 Multiresolution Signal and Geometry Processing
SENG 466 Software for Embedded and Mechatronic Systems
Communication and Networks
CENG 461 Design and Analysis of Computer Networks
CSC 463 Wireless and Mobile Networks
CSC 466 Overlay and Peer-to-Peer Networking
CSC 467 Switching, Network Traffic and Quality Service
SENG 461 Network Security
Computational Intelligence
CENG 420 Artificial Intelligence
or CSC 421 Introduction to Artificial Intelligence
CENG 421 Computer Vision
CSC 322 Logic and Programming
ELEC 485 Pattern Recognition
SENG 474 Data Mining
Embedded Systems
CENG 450 Computer Systems and Architecture
CENG 455 Real Time Computer Systems Design Project
ELEC 407 Digital Signal Processing II
ELEC 426 Robotics
ELEC 466 System-on-chip Engineering for Signal Processing
ELEC 486 Multiresolution Signal and Geometry Processing
SENG 466 Software for Embedded and Mechatronic Systems
Graphics and Gaming
CENG 420 Artificial Intelligence
or CSC 421 Introduction to Artificial Intelligence
CSC 305 Introduction to Computer Graphics
CSC 461 Multimedia Systems
CSC 471 Fundamentals of Computer Rendering
CSC 472 Fundamentals of Computer Modeling
CSC 473 Fundamentals of Computer Animation
CSC 475 Music Retrieval Techniques
CSC 486 Topics in Graphics
ELEC 483 Digital Video Processing: Algorithms and Applications in Media
ELEC 484 Audio Signal Processing
ELEC 486 Multiresolution Signal and Geometry Processing
High Performance Computing
CENG 453 Parallel and Cluster Computing
C5C 454 Fault Tolerant Computing
CSC 462 Distributed Computing
or SENG 462 Distributed Systems and the Internet
CSC 464 Concurrency
SENG 424 Reliability Engineering
SENG 450 Network-centric Computing
Human Computer Interaction
CENG 412 Human Factors in Engineering
CENG 420 Artificial Intelligence
or CSC 421 Introduction to Artificial Intelligence
CENG 421 Computer Vision
SENG 410 Media Applications
SENG 411 Advanced Human Computer Interaction
SENG 435 Computer Supported Collaborative Work
Mechatronics
ELEC 460 Control Theory and Systems II
MECH 458 Mechatronics
MECH 459 Fundamentals of Hybrid Vehicles
MECH 466 Microelectromechanical Systems
MECH 497 Green Vehicle Technology Project
SENG 466 Software for Embedded and Mechatronic Systems
Programming Languages and Architectures
CSC 322 Logic and Programming
CSC 330 Programming Languages
CSC 435 Compiler Construction
SENG 422 Software Architecture
Security and Privacy
CSC 429 Cryptography
CSC 454 Fault Tolerant Computing
SENG 460 Practice of Information Security and Privacy
SENG 461 Network Security
Theory of Computations
CSC 326 Algorithms and Data Structures II
CSC 349A Numerical Analysis
CSC 422 Graph Algorithms
CSC 423 Randomized Algorithms
CSC 425 Analysis of Algorithms
CSC 426 Computational Geometry
CSC 428 Computational Biology Algorithms
CSC 428A Combinatorial Algorithms
CSC 429 Cryptography
CSC 445 Operations Research: Linear Programming
CSC 446 Operations Research: Simulation
CSC 449 Numerical Linear Algebra
Other courses that may qualify as technical electives are topic courses, directed studies, technical projects and other courses offered by the Faculty of Engineering. Students interested in such courses must seek pre-approval with the Software Engineering Program Office.
* Subject to approval by BSEng Program Office
Experiential Learning: Lectures, Labs, and Tutorials
Most courses include laboratory components (labs), assignments, and projects emphasizing experiential learning. Courses will be primarily delivered in the on-site lecture mode. Labs and tutorials will form part of the course when appropriate. Labs can either be structured (i.e., a sequence of experiments is executed with prescribed methods in a specific time slot) or non-structured (i.e., substantial software development assignments and projects are carried out by the students using facilities provided by the University, but not in a specific time slot or under specific time constraints). However, for both lab types, progress and success is measured against specified performance requirements. Over half of the required core courses have a laboratory component, which involves substantial projects.
A 16 months work experience is mandatory in the BSEng program in form of a Co-operative Education component. This is critical to providing you the opportunity to practise and apply knowledge and skills acquired throughout your studies. Furthermore, you are required to complete a four-month Technical Project that can be extended to eight months. Moreover, two different projects can be undertaken for full credit in the two fourth-year terms. Over half of the required core courses have a laboratory component, which involves substantial projects.
The software engineering degree program is accredited by the Canadian Engineering Accreditation Board (CEAB). As an ongoing process, accreditation will help ensure that the BSEng program is kept up to date and effective and that the curriculum meets the guidelines of the Association of Professional Engineers and Geoscientists of British Columbia.
Graduation from a nationally accredited program is the first step on your way of becoming a Professional Engineer (P.Eng).

