The following is a list of courses I've taught at Northeastern.

Introduction to Security

CS 3740 is an undergraduate introduction to the principles of computer security. The goals of the course are the following:

  • Introduce the fundamental principles of designing and implementing secure programs and systems
  • Present and analyze prevalent classes of attacks against systems
  • Discuss techniques for identifying the presence of vulnerabilities in system design and implementation, preventing the introduction of or successful completion of attacks, limiting the damage incurred by attacks, and recovering from system compromises
  • Present the ethical considerations of security research and practice

This course offers opportunities for hands-on practice of real-world attack and defense in several domains, including systems administration, the Web, and mobile devices.

Network Security

CS 4740/6740 is a mixed undergraduate and graduate-level course on network security covering a diverse range of topics at all layers of the networking stack, from physical to application-level security. The course focuses on the intersection between systems security principles and networking, from abstract models to their application in systems code, the Web, and mobile platforms. There is a pronounced emphasis on practical techniques for both defending and attacking systems in support of the high-level goal to impart the “attacker’s mindset.”

Special Topics in Network and Systems Security

EECE 7398 is a special topics course on network and systems security, providing a broad overview of a diverse range of topics across these two domains. The course builds from foundational security models and principles to examine attacks and defenses in systems code, the Web, and mobile platforms. There is a pronounced emphasis on practical techniques in support of the high-level goal to impart the “attacker’s mindset.”"

Special Topics in Malware Analysis

CS 7780 is a graduate level course on malicious software, or malware. In this course, we will examine malware both through the lens of recent academic literature as well as through practical research projects. The aim is to explore how malware manifests in systems-level code, on the Web, and in mobile devices, and to discuss approaches to dealing with malware in each of these settings. Representative topics of discussion include those from the following non-exhaustive list.

  • Vulnerability discovery
  • Program analysis
  • Fuzzing
  • Malware detection using program analysis
  • Malware classification and triage
  • Intrusion detection
  • Malware containment

The format of the classes will be biased towards interactive discussion, with little emphasis on lectures. Students should come to class prepared to discuss the week’s readings and assignments.