0519 - Security, Database Design, and Concurrency
Course Description
Details
As criminals develop increasingly sophisticated methods of hacking web systems and databases, developers must know how to build those systems securely to prevent breaches. This course teaches the art of building reliable and secure data-intensive back-end systems. You will learn how to craft APIs for usability, apply techniques to strengthen their security, choose between database design alternatives, and unlock concurrent, scalable programming.
Throughout this course, (the second in the Back-End Development Certificate), you’ll further hone your programming skills, learning to sidestep common pitfalls. You’ll also continue to sharpen your architectural thinking and clean coding skills. The course focuses on:
- Developing web services and user-friendly APIs
- Delving deeper into reusable patterns and standard solutions
- Securing back ends
- Managing sessions and permissions
- Storing and retrieving data in document and relational databases
- Concurrent and asynchronous programming
This course allows learners to work at their own pace and features optional, live drop-in sessions.
Course Overview
This 10-week course combines synchronous and asynchronous delivery modes and includes:
- A one-hour live online orientation session
- Weekly one-hour optional live code-along sessions
- Weekly independent online learning and group coding assignments
- Regular online interaction with peers and instructor via discussion boards
- Major group project with real-world applications
Academic requirements
- Prior experience with Python, TypeScript, or JavaScript
- Basic understanding of web development
- Basic understanding of version control using Git
- It is recommended that learners complete the Back-End Framework and Architecture course before registering for this course.
System requirements
- Visual Studio or your preferred IDE
- GitHub Classroom for coding assignments
Receive a certificate and badge from the University of Waterloo
Upon successful completion of this program, you will receive a professional education certificate and badge from the University of Waterloo. To earn the certificate, students must achieve a minimum grade of 70 per cent in the course.
Who Should Enrol
This course is intended for individuals with a basic understanding of web development who want to deepen their expertise in back-end systems. Specifically, it is appropriate for:
- Early-career developers who have a primarily front-end focus or have completed a general programming bootcamp and want to level up their skills.
- Front-end developers who want to accelerate their career progression with back-end skills and knowledge.
- Programmers with experience in JavaScript, TypeScript, or Python who want to learn how to build reliable, resilient back-end systems.
What You Will Learn
Learning outcomes
- Build a secure web service backed by a well-designed database
- Evaluate alternative data storage strategies
- Describe architectural patterns and know when to use them
- Apply asynchronous programming skills to build scalable web back ends
- Identify areas and strategies for continuous improvement of coding skills
Module 1: URL And API design
Module 2: Protocols and Architectural Styles
Module 3: Encryption and Certificates
Module 4: Authentication and Session Management
Module 5: Authorization and other API Security Techniques
Module 6: Relational Database Design
Module 7: Advanced SQL and Transactional Looking
Module 8: NoSQL
Module 9: Concurrency
Module 10: Reactive Style and Review