Frequently asked questions
What is software engineering?
Software engineering isn't just about writing code: it is a disciplined and systematic approach to solving problems with software-based solutions. Software engineering focuses on building usable, reliable, maintainable, secure, scalable and efficient systems that people use and trust everyday. Software engineers graduate from an accredited engineering program and use engineering principles to design and build the software systems that modern societies rely on.
How is software engineering different from computer science or computer engineering?
The three programs offered at UVic are similar because they all deal with digital hardware and software. However, they have different aims.
- Computer engineering (CENG) is focused on the workings of computer systems: digital hardware and computers and the built-in software to make them run. Its problem-solving applications are centered around hardware and firmware (the hardware-software interface). Computer engineers design, develop and maintain computer systems.
- Computer science (CSC) is the least structured of the three programs; students can stay broad or specialize within the field. It concentrates on understanding computers and computer programs using data transformation (making data into useful information) and algorithms (a set of programmed instructions).
- Software engineering (SENG) deals with software systems. It is more applied than computer science and stresses the entire development process, but also applies discipline through systematic practices and design to ensure safety and reliability. Software engineering deals with large software systems, and (as the name suggests) is more software oriented than computer engineering.
What are potential careers in the field?
Software engineering is one of the fastest growing occupations. More than a million new jobs will be created in the next decade for which software engineers are perfectly suited. Software engineers also face a wide range of career choice; due to the replacement of mechanical or electronic devices in transportation, communication, industry and entertainment (to name a few), software engineers are in demand in many fields. Software engineers can work in software development to solve problems in a variety of industries, or can hold a decision-making position (such as Project Manager or Systems Analyst) because of their skills with large-scale software management. The BSEng program is accredited and graduates will be able to register both as Professional Engineers and Information System Professionals, which opens up many more career choices.
Career examples by sector
An undergraduate degree in software engineering offers a multitude of career opportunities that can benefit people in all walks of life. You will be able to excel at a variety of jobs in these industries and more:
- Autonomous and networked vehicles (self-driving cars, drones, AUVs, etc.)
- Cloud computing
- Cyber-physical systems (smart cities, grids, buildings, critical infrastructure, etc.)
- Cybersecurity and privacy
- Medicine, eHealth, and bioinformatics
- Green tech and energy efficiency
- Interactive entertainment (online games, multiplayer games, etc.)
- Social media, social networks, collaboration
- Virtual and augmented reality
Career examples by title
When looking for jobs in an area as potentially broad as Software Engineering, you may find many titles and descriptions. Depending on the size of the organization and their philosophy, divisions of work can vary. However, here are a few sample titles and a glimpse of what might be involved.
- Software Architect: Meets with clients to determine their overall needs, and plans the high level software specifications. Once specifications are signed off by customer, leads the design team that implements the software, manages the test team, oversees quality assurance, user documentation, software rollout, directs the instructors who train the clients and their employees, and most importantly, ensures that the new software has fulfilled the needs of the customer.
- Software Developer: Works as part of a team, from a high level design specification document, to write code used in company products. May oversee the efforts of several computer programmers on large projects.
- Software Programmer: While Software Engineers are often found in the management area, they are also quite accomplished at programming.
- Software Documentation Manager: This position is responsible for ensuring that the organization provides excellent installation and user guides, for all products.
- Software LifeCycle Manager: This position is responsible for version control throughout the lifetime of a supported product, maintaining design specification updates, software patches, security updates and may play an integral part of new design discussions.
- Software Reverse Engineer: A reverse engineer develops a design specification from an older existing software system, which no longer fully meets a client’s needs and yet is a key part of a client’s infrastructure. The design spec is reworked, and the existing software is either rewritten (and properly documented) or the user interface and subsystems are updated to reflect the current needs of the customer.
- Software Instructor/Trainer: This position requires a solid understanding of the organization’s software products, and a ability to communicate well with people to achieve maximum benefits to clients in a short period of time.
- Customer Support Supervisor: Manages a technical group that provides on-line, telephone or on-site support for troubleshooting issues related to the company’s products. Must be well organized, have keen attention to detail and possess excellent interpersonal skills. This position significantly affects the image of the organization, through the quality of help that customers receive.
What opportunities for graduate studies exist?
What is the campus like?
What is undergraduate campus life like?
Does UVic have a good software engineering program?
Currently, UVic is ranked as one of the top universities in Canada for its innovation and co-op education program. In fact, Maclean’s magazine ranked UVic number two in 2015 in the comprehensive category. The Co-op program supplements academic terms with real-world experience, so by the time a student graduates, they will have already worked for a few companies in their chosen field and may even have identified an organization or area where they really enjoyed working. Employers benefit from having a role in the training of these employees, and by observing just how talented these students are. This combination of academic skills and on-the-job training is something employers can look for when hiring, and this can help students get that first big break to enter the workforce.
UVic’s approach to software engineering ensures that students are taught by professors that are experienced and well-respected in academic circles and in industry. The majority of the faculty for the BSEng program are drawn from both the Computer Science and the Electrical and Computer Engineering departments, which are mature departments with a reputation for providing quality education.
Where can I find more information on UVic?
What is the program like?
What kinds of hands-on work will there be?
In addition to the very interactive co-op work placements, students will have the opportunity to do many projects, labs, and tutorials during the BSEng program:
- Many required courses include structured laboratory/tutorial components using prescribed methods.
- Over half of required core courses have substantial project work (development assignments).
- There is a required four-month Technical project, which can be extended to eight months.
- Optionally, two projects can be taken in two fourth-year terms for full credit.
What is the curriculum?
How long will it take to graduate?
What will the first-year workload be like?
*Students targeting Software Engineering take an extra programming course in term 1B (CSC 115) and the required chemistry course (CHEM 101) in term 2A. You can read more about the BSEng courses here.
What will class sizes be like?
Do I need to own a computer?
What Faculty is BSEng offered by?
What will my degree say?
Is the BSEng program accredited?
What is the co-op schedule and how much will I do?
Is co-op mandatory for BSEng?
Why should I want to do a co-op program?
What co-op jobs are potentially available?
What marks and courses do I need to get in (from secondary school)?
Please consult UVic's Admission Requirements.
How do I apply?
Students can enter the Bachelor of Software Engineering Program in first year, or switch from computer science or other engineering disciplines. UVic also accepts transfers from other universities or colleges. See the Applying to UVic page for more details.
For those students who wish to enter the UVic BSEng program from high school, submitting an online application is the easiest and fastest way to apply. Check out the UVic 番茄社区 site and follow the links for how to apply.