Buffer overflow
Show on a deliberately vulnerable C program how an overflow corrupts memory, then fix it.
Developers specialising in cybersecurity.
C and Linux to understand memory and the system, RSA cryptography, secure software design and OWASP security testing.
Skill labels as listed on Coursera.
Stated prerequisites: No prior programming experience required
| Course | Level | Length | Rating (reviews) |
|---|---|---|---|
| Programming Fundamentals | Beginner | 19 h | 4.7 (7,054) |
| Writing, Running, and Fixing Code in C | Beginner | 20 h | 4.3 (837) |
| Pointers, Arrays, and Recursion | Beginner | 21 h | 4.3 (352) |
| Interacting with the System and Managing Memory | Beginner | 24 h | 4.2 (182) |
| Course | Level | Length | Rating (reviews) |
|---|---|---|---|
| C Programming: Getting Started - 1 | Beginner | 11 h | 4.6 (272) |
| C Programming: Language Foundations - 2 | Beginner | 14 h | 4.7 (110) |
| C Programming: Modular Programming and Memory Management - 3 | Beginner | 10 h | 4.8 (62) |
| C Programming: Pointers and Memory Management - 4 | Beginner | 7 h | 4.7 (67) |
| C Programming: Advanced Data Types - 5 | Beginner | 8 h | 4.4 (59) |
| Linux Basics: The Command Line Interface - 6 | Beginner | 8 h | 4.7 (36) |
| C Programming: Using Linux Tools and Libraries - 7 | Beginner | 9 h | 4.7 (36) |
Stated prerequisites: Basic math (fractions, squares), basic Python (functions, loops, recursion)
| Course | Level | Length | Rating (reviews) |
|---|---|---|---|
| Mathematical Thinking in Computer Science | Beginner | 42 h | 4.4 (2,289) |
| Combinatorics and Probability | Beginner | 23 h | 4.6 (874) |
| Introduction to Graph Theory | Beginner | 21 h | 4.5 (1,073) |
| Number Theory and Cryptography | Beginner | 17 h | 4.5 (610) |
| Delivery Problem | Beginner | 13 h | 4.7 (376) |
Stated prerequisites: Knowing how to code in some language; workplace software development experience helpful
| Course | Level | Length | Rating (reviews) |
|---|---|---|---|
| Software Design as an Element of the Software Development Lifecycle | — | 11 h | 4.6 (253) |
| Software Design as an Abstraction | Intermediate | 16 h | 4.7 (135) |
| Software Design Methods and Tools | — | 14 h | — |
| Software Design Threats and Mitigations | Intermediate | 19 h | 4.6 (94) |
| Course | Level | Length | Rating (reviews) |
|---|---|---|---|
| Introduction to Software Testing | Intermediate | 30 h | 4.3 (839) |
| Black-box and White-box Testing | Intermediate | 26 h | 3.8 (117) |
| Introduction to Automated Analysis | Intermediate | 19 h | 4.2 (87) |
| Web and Mobile Testing with Selenium | Intermediate | 20 h | 3.7 (111) |
This path takes 422 hours, about 10 months at 10 hours a week. A Coursera Plus subscription gives access to most of its courses during that time.
Show on a deliberately vulnerable C program how an overflow corrupts memory, then fix it.
Implement RSA with key generation, then show why small keys break.
Test a deliberately vulnerable app (OWASP Juice Shop) and write a vulnerability report.