The importance of information security has been thoroughly highlighted in the media recently, discussing the wide and growing range of threats that challenge the integrity of our digital world. This Emory University course is premised on the notion that in cyberspace, understanding offense is the key to good defense. Accordingly, the focus of the course will be on hackers: how they think, surveying how they mount attacks against applications and how such attacks can be thwarted. In addition to covering a variety of fundamental security topics, we will do a deep-dive into memory corruption and control flow vulnerabilities in C, emphasizing how such bugs are exploited and how we try to protect against them. By the end of the course, you will have developed a hacker mindset that will enable you to both recognize and react to new cyberattacks.