Specializations
Certain technical electives available to software engineering students have been organized into specific areas that reflect strong or emerging industry interest. This allows you to focus most of your technical electives in key areas of study.
**Courses in Electrical and Computer Engineering (ELEC XXX and CENG XXX) were merged under a new name (ECE XXX) in May 2018.**
How do I get a specialization?
The courses within each specialization are divided into two groups: the first group contains courses that are key to the area, and the second group contains supplementary “breadth” courses. To earn a specialization, you must take and pass a minimum of three courses (4.5 units) as follows:
- Three or more courses must be from Group 1; OR
- Two or more courses must be from Group 1, and one or more courses must be from Group 2.
What if I want to take a course that isn't listed on this page?
The Faculty of Engineering offers a variety of additional courses that are not listed below but may qualify as technical electives in a given specialization, including topics courses, directed studies, and technical projects. If you feel a course is appropriate for your targeted specialization, please contact the BSEng advisor before registering for the class as permission is required from the Program Director.
Where is my specialization noted?
Specialization areas are not noted on your transcript. However, once you finish your degree, you can request a certificate from the Software Engineering Academic Advisor to show that you completed the requirements for the specialization area. Specialization certificates are prepared and distributed when convocation is held.
The deadline for certificate requests is 30 days prior to convocation.
Specialization areas
Data mining and analysis, artificial intelligence, and machine learning
Group 1
- ECE 470/CENG 420 - Artificial Intelligence, OR CSC 421 - Introduction to Artificial Intelligence
- ECE 485/ELEC 485 - Data Analysis and Pattern Recognition
- SENG 474 - Data Mining
Group 2
- CSC 322 - Logic and Programming
- CSC 349A - Numerical Analysis
- CSC 425 - Analysis of Algorithms
- CSC 445 - Operations Research: Linear Programming
- CSC 446 - Operations Research: Simulation
- ECE 403/ELEC 403 - Optimization for Machine Learning
- ECE 471/CENG 421 - Computer Vision
Cyber-physical and smart systems
Group 1
- CSC 462 - Distributed Computing
- ECE/ELEC 460 - Control Theory and Systems II
- ECE 463/CENG 461 - Design and Analysis of Computer Networks
Group 2
- CSC 454 - Fault Tolerant Computing
- ECE/ELEC 403 - Optimization for Machine Learning
- ECE 470/CENG 420 - Artificial Intelligence, OR CSC 421 - Introduction to Artificial Intelligence
- ECE 485/ELEC 485 - Data Analysis and Pattern Recognition
- SENG 422 - Advanced Software Architecture
Cybersecurity and privacy
Group 1
- CSC 429 - Cryptography
- ECE 448/CENG 448 - Cyber-System Security
- SENG 460 - Practice of Information Security and Privacy
- SENG 461 - Network Security
Group 2
- CSC 463 - Wireless and Mobile Networks
- CSC 466 - Overlay and Peer-to-Peer Networking
- CSC 467 - Switching, Network Traffic and Quality of Service
- ECE 463/CENG 461 - Design and Analysis of Computer Networks
Performance and scalability
Group 1
Group 2
- CSC 454 - Fault Tolerant Computing
Interaction design and data visualization
Group 1
- CSC 411 - Information Visualization
- ECE 440/CENG 412 - Human Factors in Engineering
- ECE 470/CENG 420 - Artificial Intelligence, OR CSC 421 - Introduction to Artificial Intelligence
- SENG 411 - Advanced Methods for Human Computer Interaction
- SENG 435 - Computer-Supported Cooperative Work
Group 2
- There are no courses in this group at this time. However, topics courses, directed studies, and technical projects might qualify for this group. Please contact the BSEng advisor for preapproval.
Visual computing (vision/graphics)
Group 1
- CSC 305 - Introduction to Computer Graphics
- CSC 471 - Fundamentals of Computer Rendering
- CSC 472 - Fundamentals of Computer Modelling
- CSC 473 - Fundamentals of Computer Animation
- ECE 471/CENG 421 - Computer Vision
Group 2
- CSC 426 - Computational Geometry
- CSC 461 - Multimedia Systems
- CSC 475 - Music Retrieval Techniques
- ECE 470/CENG 420 - Artificial Intelligence, OR CSC 421 - Introduction to Artificial Intelligence
- ECE 483/ELEC 483 - Digital Video Processing
- ECE 484/ELEC 484 - Audio Signal Processing
- ECE 486/ELEC 486 - Multiresolution Signal and Geometry Processing With C++
- SENG 475 - Advanced Programming Techniques for Robust Efficient Computing
Disclaimer
Not all elective courses are offered every year, and some courses may require additional prerequisites outside of the software engineering core. Check the UVic Calendar for current course schedules and prerequisites. If you need help planning your electives, make an appointment to see the BSEng advisor.
Software engineering specializations and the courses that qualify may be changed without notice.
Last updated March 12, 2021
CSC411 added to Interaction Design and Data Visualization specialization