EE 524 Secure Programming
Introduction to Software Security, risk assessment, buffer overflows, design for security, security testing and auditing, security issues of open source and closed source software, guiding principles of software security, selection of appropriate technologies, access control, race conditions, trust management, input validation, and database security.