Software Engineering
Why Software Engineering?
Lead tomorrow’s software development. All around the world, people interact with software daily, meaning the impact that software engineers have on society is monumental.
Waterloo's Software Engineering degree program builds on the Universities' strengths in Computer Science and Engineering. Your studies will not only include a solid foundation in mathematics, science, engineering, and computer science, but will also cover fundamental concepts of the software development process, project management, and proper technical documentation. You'll apply these techniques to create and maintain complex software systems, in areas such as telecommunications, computer graphics, scientific computing, and financial systems.
Courses in Software Engineering
In first year you’ll develop a strong foundation in mathematics, programming, and computer circuits, while also studying natural sciences. In upper years, you’ll learn about user interface design, operating systems, databases, networks, compilers, and feedback control systems.
Sample first-year courses
This is a sample schedule. Courses are subject to change.
1A Term | 1B Term |
---|---|
Upper year courses
For information about courses past your first year, check out the Undergraduate Academic Calendar.
Customize your degree with options and specializations
Options
Options are a way to provide you with a path to expand your degree and get a secondary emphasis in another subject or area. Students should decide if they are interested in taking options as they enter second year. Some available options are:
Specializations
A specialization is recognition of selected elective courses within your degree. Specialization offerings are unique to your engineering program and are listed on your diploma. Specializations that are available to Software Engineering students include:
Co-op for Software Engineering students
You’ll have an unrivalled opportunity to gain paid work experience before you even graduate. We’ll help you navigate job applications, résumés, and interviews; you’ll have the added benefit of trying out different roles and/or industries to find the one that fits you while building your work experience and reinforcing your in-class learning out in the real world. It all adds up to a competitive advantage after graduation.
Starting in first year, you'll normally alternate between school and work every four months, integrating your classroom learning with real-world experience. You can return to the same employer for a couple of work terms to gain greater knowledge and responsibility or work for different employers to get a broad range of experience.
There are two options for co-op sequences. Your first work term will be at the end of first year. You will automatically be placed in sequence one, but you can request to change your sequence in your upper years.
Sequence one
Year | September to December (Fall) | January to April (Winter) | May to August (Spring) |
---|---|---|---|
First | Study | Study | Co-op |
Second | Study | Co-op | Study |
Third | Co-op | Study | Co-op |
Fourth | Study | Co-op | Study |
Fifth | Co-op | Study | - |
Sequence two
Year | September to December (Fall) | January to April (Winter) | May to August (Spring) |
---|---|---|---|
First | Study | Study | Co-op |
Second | Study | Co-op | Study |
Third | Co-op | Study | Co-op |
Fourth | Study | Co-op | Co-op |
Fifth | Study | Study | - |
Example co-op positions for Software Engineering students
- Tools and automation engineering intern
- Data scientist
- Mobile developer
- Full-stack web developer
- Software developer
- iOS developer
- Production engineering
- Algorithms engineering
Bringing people together in the digital world
Benjamin Ng, Software Engineering Student
Benjamin a second-year Software Engineering student, discusses his first work term in England, where he worked as a full-stack software developer for Syndi Health, a technology startup that facilitates digital health services for employees.
Ben shared, “From working in a startup environment, I learned that I enjoy the product creation process, from ideating to seeing fully fledged products and features. Working in a startup taught me a lot about the iterative process of software development and gave me a better understanding what it means to be work in the industry.”
His advice for students entering co-op., “you should be treating co-op terms as learning opportunities rather than stepping stones to better opportunities. At no other point in your career will you have the opportunity to switch between jobs every four months, so you shouldn't be afraid to try different things outside of your comfort zone."
Example careers for Software Engineering graduates
- Software engineer
- Software development engineer
- Innovation specialist
- Web development engineer
Capstone design projects in Software Engineering
Capstone Design is the culmination of the engineering undergraduate student experience, creating a blueprint for innovation in engineering design.
Supported by numerous awards, Capstone Design provides Waterloo Engineering students with the unique opportunity to conceptualize and design a project related to their chosen discipline.
A requirement for completion of their degrees, Capstone Design challenges students teams to push their own boundaries, and apply the knowledge and skills learned in the classroom and on co-op work terms. It reinforces the concepts of teamwork, project management, research and development.
For a full list of previous capstone design projects, see our Capstone Design website.
ATARRA (Capstone 2024)
Ryan Dancy, Taya Davison, Amir Roshankar, Aariana Singh, Alex Van De Wiele, Raymond Zhou
ATARRA is an invasive plant species identifier which leverages AI to identify invasive Phragmites australis from satellite imagery. Phragmites australis is one of Ontario's worst invasive species and a massive threat to biodiversity. Currently, conservationists are limited to manual field exploration to find and remove this invasive species. We hope our tool will optimize their workflow by allowing them to predict the locations of Phragmites patches. We developed an application as an interface through which conservationists can access our AI model and extract insights.
Audiogen (Capstone 2024)
Kyle Anderson, Russell Chan, Patrick Davies, Dylan Snelgrove, Hannah Zhu
Audiobooks are a convenient alternative to standard books, allowing listeners to enjoy a novel completely hands-free. However, with over 48.5 million books on Amazon but only 200,000 audiobooks on Audible, fewer than 1% of books have an Audiobook format. Audiogen makes audiobook creation more accessible, integrating state-of-the-art large language models and speech synthesizers to generate audiobooks on demand. We bring books to life, incorporating natural sounding narration and dialogue infused with emotion to form a compelling narrative where each character speaks in their own voice.
Student design teams
The Sedra Student Design Centre consists of over 20,000 square feet of space dedicated to design teams and student projects. There are more than two dozen design teams, all of which are student-led, and many of which represent Waterloo internationally.
Some examples include:
Blueprint
Blueprint strives to make technology accessible and useful for those who create communities and promote public welfare. We are a group of students dedicated to building and promoting technology for social good. We partner with non-profits to provide technology services such as web applications, mobile applications and analysis tools—free of charge.
WAT.ai
WAT ai, wishes to establish an environment to enable the continued growth of AI talent and suitable access to opportunities within the Waterloo community. We provide opportunities for undergraduate and graduate students to engage in impactful AI projects through collaboration with companies and internal research.
Wat Street
Wat Street is a student-run Design Team that strives to provide students with a comprehensive education in the fields of financial investment strategies and algorithm development. The team's primary goal is to create a space where students can learn the fundamentals of quantitative analysis and how to apply them in real-world situations.
Software Engineering alumni
Ahmed Hamodi
Ahmed (class of 2022), was the 2022 recipient of the Pearl Sullivan Emerging Global Leaders Award. His startup company, DecisionHub, enables organizations to collect, review and make unbiased decisions on applications.
Read more about Ahmed's time in Software Engineering.
Greta Cutulenco
Greta (class of 2014) is the CEO and co-founder of Acerta Analytics Solutions, an AI platform that uses machine learning to detect malfunctions and predict failures for vehicles coming off the assembly line.
Read more about Greta making the Forbes 30 under 30 list.
Darren Fung
Darren (class of 2014), is the CTO and co-founder of Drop Technologies Inc. He shared that "if I didn't try working at companies in different industries during coop, I wouldn't have known how exciting it'd be to build a company from the ground up".
Read more about Darren's time in Software Engineering.
Frequently Asked Questions (FAQ)
What's the difference between Computer Engineering, Software Engineering and Computer Science?
Computer engineering, software engineering, and computer science are all crucial fields in the realm of computing and technology. While they share some commonalities, each has its own distinct focus and applications.
Computer engineering integrates electrical engineering and computer science to develop computer hardware and software. It focuses on the design, development and testing of computer systems and components. The focus is on the design and development of computer hardware and the integration of hardware with software. Ideal for those interested in electronics and computer systems.
Software engineering is concerned with the design, development, testing and maintenance of software systems. Topics include software design, software development methodologies, testing, quality assurance, project management and user experience design. The focus is on applying engineering principles to software development. Best for those interested in creating reliable and efficient software solutions and managing software projects.
Computer science is primarily concerned with the theoretical foundations of information and computation. It focuses on algorithms, data structures, software development and the principles of computer operation. The focus is on the theoretical and mathematical foundations of computing. Ideal for those interested in algorithms, programming and the theoretical aspects of computer systems.