Instructor: Prof. David Kohlbrenner (dkohlbre@cs)
Teaching Assistants:
Email everyone (preferred method to reach staff): csep564-staff@cs.washington.edu
We use Gradescope for all assignments.
We do not have a required textbook. In previous quarters
we've used "Foundations of Security: What Every Programmer
Needs to Know, Daswani, Kern, and Kesavan, ISBN
1-59059-784-2. If you'd like to use one, that is the one we
recommend.
Also a good option
is Security
Engineering of which the 2nd edition is freely available
on the author's webpage.
In this course, we will cover topics including: the "security mindset", threat modeling, software security, cryptography, malware, web security, web privacy, smartphone security, authentication, usable security, anonymity, physical security, and security for emerging technologies.
For more details, see the course schedule.
You should have maturity in both the mathematics of computer science and in the engineering of computer systems. This means that you should: have a good understanding of data structures and algorithms; be comfortable writing programs in an imperative language (ideally C or C++); be comfortable writing and debugging assembly code; and be comfortable in a command-line Unix development environment (gdb, gcc, etc). You should also have a good understanding of computer architecture, operating systems, and computer networks. Most importantly, you should be eager to challenge yourself and learn more!