This course introduces students to network security. Students will learn about network attacks and vulnerabilities as well as current defenses. Topics covered include cryptography, authentication protocols, firewalls, intrusion detection systems, routing and DNS security, communication privacy and anonymity, and wireless security.

This introductory course will impart a broad understanding of the underpinnings of security techniques, security best practices, and security failures. The course should help students to understand the mindsets of attackers (the bad guys and gals who do malicious things on the network) and system designers and defenders (the good guys and gals who try to stop the attackers). The course should prepare students to understand and assess security threats, become familiar with security engineering best practices, and write better software, protocols, and systems.

A detailed list of lecture by lecture contents, assignments, and due dates (subject to change as semester evolves) is available on the course schedule.


  • Lecture recordings will be made available after the fact via Panopto
  • Course announcements and online discussion will take place on Piazza
  • Assignments primarily submitted via Gradescope