Teaching

CS 426: Computer Security (Undergraduate) [Syllabus] [Spring 23]

This introductory undergraduate course focuses on the principles and foundations of building secure computer systems, security best practices, and security failures in existing and emerging computer networks and systems. The course covers four key topic areas: basics of cryptography and crypto protocols, network security, systems security, and privacy. Students successfully completing this class will be able to understand and assess security threats, become familiar with security engineering best practices, write better software, protocols, and systems, and have rudimentary skills in security research.

CS 390: Great Issues In Computer Science [Syllabus] [Fall 23]

In this interdisciplinary undergraduate course, I teach the evolving landscape of professional and ethical challenges in computing, with a particular focus on its societal implications. I cover established topics such as algorithmic bias, fairness, and accountability, but also the ethical frontiers of emerging technologies, e.g., artificial intelligence and the increasingly intertwined digital-physical world with cyber-physical systems. Through in-depth discussions of real-world examples and critical readings, students learn about algorithmic design choices, data collection and use ethics in AI, societal inequalities that autonomous systems exacerbate, and the legal frameworks struggling to keep pace with such technological advancements. In this way, students are equipped with the critical thinking skills and contextual knowledge necessary to navigate the dynamic landscape of emerging computing platforms and become responsible citizens of the digital age.

CS 529: Security Analytics (Graduate) [Syllabus] [Fall 22] [Fall 21] [Fall 20] [Fall 19]

This graduate-level course will provide students with materials to discuss the intersection of two ubiquitous concepts: Security and Machine Learning. The course is structured in two parts: (1) Machine Learning for Security and (2) Security of Machine Learning Systems. The focus of the first part will be on building a principled understanding of key learning algorithms and techniques, and their applications within the security domain, as well as general questions related to analyzing and handling datasets. The first part will provide students with the necessary background to understand the second half of the course. The second part covers recently discovered security implications of deploying machine learning algorithms in the physical realm. Students will learn about attacks against computer systems leveraging machine learning algorithms, as well as defense techniques to mitigate such attacks during learning and inference.

CS 590: IoT/CPS Security (Graduate) [Syllabus] [Spring 22] [Spring 20]

In this course, we will study the latest research in the design of Internet of Things (IoT) and Cyber-Physical Systems (CPS) and methods for securing them. The course will provide foundations of safety and security of IoT/CPS and covers the topics of policy verification, approaches for designing safe and secure systems, techniques for detecting problems in conventional IoT/CPS design and repairing such problems. Example topics include the security of voice-controlled devices, IoT applications, edge computing, industrial control systems, and autonomous vehicles.