Curriculum

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.


Academic Regulations

You can find the BSEng Academic Regulations in the UVic Calendar.

 

Course Requirements Overview

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

 

Proposed Study Schedule

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

 

First Year

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.

 

Second Year

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

 

Third Year

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

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).

Electives

Natural Science Electives

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.

 

2012-2013 Technical Electives

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.

 

Work Terms

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.

 

Accreditation

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).

Comments are closed.