About software engineering

Software is central to our lives and we interact with it though everything we touch or consume: the media we stream to our computers and phones, the systems used by doctors to manage our health, the water we drink, the power we use, and the embedded systems that control our vehicles. Software is being used more and more to control multiple components of large-scale systems that need to be safe, secure, reliable, usable, maintainable, and scalable. These systems of systems also need to talk to each other in a predictable and efficient manner; they need to be properly engineered.

Software engineering is a relatively new discipline that applies computer science with engineering principles and best practices to the design, implementation, testing, maintenance, and evolution of software systems. It not only covers the technical aspects of building software systems, but also critical management issues. Today, software engineering is a cornerstone of the information technology sector and a significant factor in our economy.

Software engineering isn't just about theory and writing code: it's about engineering software systems and building operational solutions that can be relied on day in and day out.

Software engineering at UVic

Software engineering has become a cornerstone and key driver of modern high tech economies across industry sectors. Early on, the University of Victoria sought to address the shift to a software system-centric economy by creating one of the first undergraduate software engineering programs in Canada. Our well-established program is also the only accredited software engineering program in BC.

UVic also understands that each student’s academically gained knowledge and skill must be complimented by direct real-world experience in industry if we are to produce high-demand graduates who can enter and contribute to the economy immediately upon graduation, and a key aspect of our BSEng program is its mandatory co-op work component.

Though the co-op program, the skills and knowledge learned at UVic are reinforced through day-to-day work in industry on practical and pragmatic problems. This approach directly exposes students to a wide variety of industries and positions while developing their resumes. It also drives deeper industry-university connections that enable real-world industry examples, issues, and needs to be brought into the classroom, while facilitating research programs that target direct industry-relevant problems. Through this approach, UVic produces extremely well-rounded BSEng graduates that are in high demand across industry sectors because they are able to immediately contribute to the companies and organizations they join.

UVic’s approach to software engineering ensures that students are taught by professors that are experienced and well-respected in academic circles as well as industry. The majority of the faculty for the BSEng program are drawn from both the Computer Science and the Electrical and Computer Engineering departments, mature groups that have a reputation for providing quality education.

Knowledge and skills

UVic’s Bachelor of Software Engineering Program has been designed to give you a thorough understanding of the creation, evolution, and management of complex, secure, and reliable software systems.

The knowledge and skills you are expected to acquire during the program include:

  • an understanding of all aspects of software development and the software development process, from the early design stages to long-term software maintenance and evolution;
  • the ability to construct and evaluate software in the context of physical systems and real-world applications;
  • the ability to apply engineering design principles to software development including trade-off analyses;
  • an understanding of software quality criteria and assurance and the ability to assess the quality of a software system;
  • the ability to plan and manage large-scale software projects;
  • the ability to work independently and collaboratively;
  • an understanding of engineering economics and entrepreneurship in software practice;
  • the ability to understand the underlying principles on which physical systems and real-world applications are built on, and the ability to integrate and participate in the design process of these systems and applications;
  • the ability to communicate effectively, both orally and in writing; and
  • a breadth of knowledge and skills in software engineering, engineering, computer science, mathematics, electrical and computer engineering, and complementary studies that will provide you with the basis for life-long learning.