3.00 Credits
This class will present the basic topics in computer security and their relationship to secure programming. A broad array of topics in secure software development will be covered such as the following: Security models, threats, design principles and secure coding practices. The course will cover programming language features and semantics to evaluate and to facilitate implementation of programs that are free from vulnerabilities. Additionally, different types of systems including web-based systems and some internals of OS kernel software testing and exploitation will be explored. Moreover, the software design patterns to built-in security during the architectural phase of the lifecycle will also be covered in detail.