This course provides students with a broad familiarity with security concepts pertaining to secure software development. Students gain hands-on skills and theoretical knowledge by applying these concepts to actual software development. Students learn how to use existing software security APIs when writing software. A number of database security issues are also discussed. Students learn about malware threats that malicious software or hackers can inject into vulnerable software and become familiar with testing and analysis tools used by software developers to close vulnerabilities.The course also provides a brief overview of cryptography and network security. Enrollment Requirements: Prerequisite: CS 301.