This course covers the theory and practice of software analysis and recent research in the area. Software analysis is a body of work that concerns dis- covering facts about a program. In this course, we will study the underlying principles of software analysis and these approaches and gain hands-on experience applying them to automate testing software, discovering vulnerabilities in complex programs, and dissecting malware. See the Syllabus for more info.