- Software developers or engineers (at any level) who need to know how to prevent possible
security risks and vulnerabilities.
- Software development teams tasked with implementing cybersecurity awareness (e.g.,
analysts and architects).
Prerequisites
- At least two years of coding experience in Java, Python, C, C++, or JavaScript is
required.
Learn alongside your team!
WatSPEED provides custom learning experiences tailored for large groups from any single
organization. Register three or more employees from the same organization and receive
15 per cent off. Contact our team at watspeed@uwaterloo.ca for details.
- Follow software development lifecycle (SDLC) guidelines to develop safe coding habits.
- Use secure design principles to check code for security issues and implement fixes
with CodeQL.
- Understand and explain the requirements for designing secure software systems.
- Explore how code generation tools can aid in project workflow or pose security risks.
- Receive instruction from secure coding experts in a course authored by University
of Waterloo faculty.
- Participate in approximately five hours of independent, online learning each week
(including reflection and discussion tasks, exercises, and assignments.)
- Practice identifying and reporting security vulnerabilities through diagnostic exercises.
- Integrate your learning into real-world scenarios with hands-on lab simulations.
System requirements
Receive a certificate from the University of Waterloo
Upon successful completion of this program, you will receive a professional education
certificate from the University of Waterloo.
Mei Nagappan
Associate Professor, David R. Cheriton School of Computer Science, University of Waterloo
| Program Author
Mei Nagappan is an associate professor and the current Ross and Muriel Cheriton faculty
fellow in the David R. Cheriton School of Computer Science at the University of Waterloo.
His area of research and expertise is focused on deriving solutions that encompass
the various stakeholders of software systems, addressing common concerns for software
developers, engineers, operators, testers, and project managers. He is also interested
in studying big data empirical software engineering by mining ultra large repositories
of software to identify patterns and relationships in large ecosystems.
Mei was formerly an assistant professor at the software engineering department at
the Rochester Institute of Technology. Before that, he was a post-doctoral fellow
with the Software Analysis and Intelligence Lab (SAIL) in the School of Computing
at Queens University. He has a PhD in computer science from North Carolina State University.
His research interests are in 'Big Data' Empirical Software Engineering by mining
Ultra Large repositories of software to identify patterns and relationships in large
ecosystems.
Anton Mosunov
Lecturer, University of Waterloo | Program Contributor
Anton Mosunov earned his MSc in Computer Science from the University of Calgary and
a PhD in Pure Mathematics from the University of Waterloo. Having a background in
number theory, Anton is interested in learning about mathematical foundations of security.
In the past, Anton worked as a security researcher at the Waterloo-based security
solutions company ISARA Corporation. He co-authored two patents in post-quantum cryptography.