Skip to main content

Software Engineering

Software engineers address today's problems and shape the future. In this program you’ll learn to design and work with large-scale software systems. You’ll learn to:

  • develop self-driving vehicles
  • automate smart cities
  • advance healthcare
  • secure critical infrastructure
  • transform data into action

Potential careers

What can you do with a software engineering degree? Here are a few jobs that relate to the program:

  • Business intelligence developer
  • Chief technology officer
  • Cloud architect
  • Cybersecurity analyst
  • Data administrator
  • Data analyst
  • Data engineer
  • Network engineer
  • Product manager
  • Programmer
  • Project technical lead
  • Software architect
  • High-tech entrepreneur
  • Software developer
  • Software engineer
  • Systems analyst
  • Systems architect
  • Systems designer

Some of these roles may require post-graduate studies or training. 

Find a career that fits you

Experience & connections

Opportunities in the software engineering program

  • With the Co-op Program you can alternate study with paid work. 

Opportunities outside your program

  • With a work study position you can develop skills during your study term.
  • Volunteering is a great way to give back to your community while you build skills.

Networks you can connect to

Here are a few professional associations related to software engineering:

Hands-on learning opportunities

These courses in the software engineering program offer extensive hands-on learning.

Co-op 

Co-op work terms       
Alternate academic study with paid work terms to gain workplace experience

Course-based

CSC 355 - Digital Logic and Computer Organization
Use ASIC and field-programmable devices

SENG 321 - Requirements Engineering
Do a project following the life cycle methods for requirements engineering

SENG 360 - Security Engineering
Explore software applications

SENG 426 - Software Quality Engineering   
Choose quality goals and select, plan and execute quality assurance activities

Creative or physical practice

CSC 225 - Algorithms and Data Structures I 
Apply concepts and programming skills to fundamental problems

Creative/design project          

CSC 460 - Design and Analysis of Real-time Systems
Design, implement and test a real-time executive and application software

ENGR 110 - Design and Communication I
ENGR 120 - Design and Communication II   
Gain practical skills and engage with industry experts

SENG 350 - Software Architecture and Design         
Design software architectures with unified modelling language and synthesis

SENG 310 - Human Computer Interaction
Design, implement and evaluate a prototype user interface

SENG 371 - Software Evolution          
Evolve an existing project for a software system solution   

SENG 468 - Software System Scalability
Do a project related to scalability issues in modern distribution software systems

Lab      

CSC 111 - Fundamentals of Programming with Engineering Applications
Experiment with alternative solutions through real-world engineering

CSC 375 - Introduction to System Analysis  
Learn to test large-scale software systems

SENG 426 - Software Quality Engineering   
Document, review and test the code of an open-source software system

SENG 475 - Advanced Programming Techniques for Robust Efficient Computing
Learn advanced programming techniques for high-efficiency computing

Professional and technical skill development            

ENGR 110 - Design and Communication I
ENGR 120 - Design and Communication II   
Develop writing and presentation skills

ENGR 130 - Introduction to Professional Practice
Gain skills such as résumé writing and career development

Research project         

SENG 499 - Design Project II
Do a team-based project, prepare a report and present a seminar

These courses are not always offered as described.

What you'll learn

Every student at UVic builds skills all employers look for. At UVic Co-op & Career we call these  "competencies". This is what you’ll learn in the software engineering program.

Professional practice

  • focus on the safety, health and welfare of the public
  • focus on environmental protection
  • promote health and safety in the workplace
  • take on professional assignments only when qualified
  • maintain confidentiality and avoid a conflict of interest
  • keep informed to maintain competence
  • act with fairness, courtesy and good faith toward clients, colleagues and others
  • extend public knowledge and appreciation of engineering

Reliability, safety and failure analysis

  • understand quality assurance standards and testing procedures
  • ensure that systems or components perform their required function
  • maintain a current knowledge of safety standards
  • establish the mean time between failures when assessing reliability

 Design

  • gather full requirements for a project
  • understand the client’s needs
  • model a solution using the appropriate tools
  • communicate the design process to the client
  • use safe and effective designs
  • understand how a design integrates into its environment

Engineering tools

  • design equipment and systems using a variety of software packages
  • simulate mechanical and electronic systems using the appropriate tools
  • analyze systems, equipment and data using the correct tools
  • operate mechanical equipment in a lab or workshop
  • use electronics and electrical equipment
  • develop software and scripts in a variety of environments and languages
  • use computer software and systems
  • understand databases and use them effectively
  • research and recommend new tools where existing tools are inadequate
  • choose tools based on their strengths and weaknesses

 Engineering knowledge

  • understand the mathematical fundamentals of engineering
  • use the correct statistical methods to analyze and investigate data
  • understand the supporting natural sciences for their discipline of engineering
  • understand engineering fundamentals
  • understand engineering economics
  • understand how engineering specifics integrate into a larger project
  • study related subjects to aid a project’s success

Control theory and systems

  • apply control theory in the design of dynamic systems
  • understand feedback control systems
  • identify design specifications
  • assess system performance
  • identify components of a dc servo system and its use in motion control
  • use a control system using feedback circuits
  • understand processors and microcontrollers

 Networks, hardware and communications

  • understand layered network architecture
  • uses different digital communication networks to send data
  • work with LANs and WANs
  • apply different network protocols at different layers
  • protect networks from unauthorized access using the appropriate policies
  • identify mobile communications techniques and issues affecting quality of multimedia service
  • use different types of buses, interrupts, families of processors and instruction sets

Software development, practice and theory

  • work within the different software development lifecycle stages
  • take business, product and process requirements into consideration
  • apply different software development methodologies
  • use process improvement models, such as ISO 9000
  • solve software development problems using formal methods
  • consider software evolution issues during development

Computer hardware and systems

  • use the necessary tools to improve system performance
  • understand the transfer of information from one system component to another
  • compare the performance of similar systems using common metrics
  • identify the optimal system for a given problem
  • work with different CPU architectures
  • use different operating systems
  • use different memory management methods

Computer information processing and algorithms

  • design automated software test tools
  • manipulate information
  • create solutions from user specifications and known system constraints
  • improve performance using coding best practices
  • understand the practical limits of a system for problem solving

What's next?

To explore more visit the software engineering site. For degree planning contact your adviser for help.