This course focuses on software security under two axes. First, students will be introduced to techniques used to build secure softwares (cryptography, access control mechanisms,...). Second, students will explore software vulnerabilities (web flaws, network exposure, binary exploitation,...) and their countermeasures.