3 Credit hours (3 h lectures): Theory and practice of software security, focusing in particular on
some common software security risks, including buffer overflows, race conditions, and on
identification of potential threats and vulnerabilities early in design cycle. Emphasizes
methodologies and tools for identifying and eliminating security vulnerabilities, techniques to prove
absence of vulnerabilities, ways to avoid security holes in new software, and essential guidelines for
building secure software: how to design software with security in mind from the ground up and to
integrate analysis and risk management throughout the software life cycle.