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.

This website stores cookies on your computer. These cookies are used to collect information about how you interact with our website and allow us to remember your browser. We use this information to improve and customize your browsing experience, for analytics and metrics about our visitors both on this website and other media, and for marketing purposes. By using this website, you accept and agree to be bound by UVic’s Terms of Use and Protection of Privacy Policy. If you do not agree to the above, you must not use this website.