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 of 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. The course includes the study of recent research papers that expose students to the state of the art in the field of software security and malware analysis. Enrollment Requirements: Prerequisite: CS 600.