Teaching

CMPSC 311

Fall 2023

Systems Programming

This course explores the art and methods of systems programming. Practically speaking, lectures and course assignments will provide students with experience programming in C within the UNIX environment. UNIX tools will be introduced, as will the general UNIX philosophy. Use of the Linux command line will be taught to proficiency. We will examine the use of shell programs, compilers, build sequences, memory management, file systems, signal processing, parallel programming, and other topics essential to computer scientists. In addition, we will introduce students the basics of systems administration on UNIX virtual machines.

CSE 543

Fall 2022
Previous: Fall 2021, Fall 2020

Computer Security

This course provides a graduate-level introduction to computer and network security. Students successfully completing this class will have a broad understanding of cybersecurity and rudimentary skills in security research. Students will also be able to evaluate works in academic and commercial security. The course begins with a tutorial of the basic elements of software security, cryptography, cryptanalysis, and systems security, and continues by covering a number of seminal papers and monographs in a wide range of security areas.

Security Reading Group

Fall 2022
Previous: Fall 2021

Security Reading Group

In this reading group/seminar, we will discuss current and interesting systems, software, and network security papers from top conferences. While discussing an individual paper, we will carefully study the threat/security model, proposed contributions, prototype implementations, and evaluation. We will compare the proposed contribution with the state-of-the-art and discuss potential shortcomings, and applications to other areas. This seminar is intended for students broadly interested in systems, software and network security research, novel and emerging security trends, or clever applications of security ideas. We will discuss one paper each week and try to learn new things about systems and network security research together.

CMPSC 443

Spring 2022

Introduction to Computer Security

This course provides an undergraduate-level introduction to computer and network security. Students successfully completing this class will have a broad understanding of cybersecurity and rudimentary skills in security research. Students will also be able to evaluate works in academic and commercial security. The course begins with a tutorial on the basic elements of software security, cryptography, cryptanalysis, and systems security, and continues by covering a number of seminal papers and monographs in a wide range of security areas.

CSE 597

Spring 2021

Security of Emerging Technologies

In this course, we primarily study the latest research and development in analyzing the security and privacy of emerging technologies. Different security analysis techniques, including formal verification, model checking, fuzzing, dynamic and static analysis have been shown to be effective for verifying the security of the design and deployment of systems. Applying these techniques for large and complex systems, however, pose additional challenges. Advances in formal verification, programming languages, and software testing over the last several years have addressed many of these challenges and enabled wide-scale adoption of these techniques for analyzing the security and privacy properties of large and industry-scale complex systems. This course aims to lay the foundations of two key aspects: (1) current security and privacy postures of these emerging technologies, including 5G cellular systems, Internet-of-Things, and cyber-physical systems (2) how to leverage different security analysis techniques, such as formal verification, model checking, cryptographic protocol verification, and program analysis to evaluate the security and privacy guarantees provided by these systems’ design and real deployments.  Students satisfactorily completing the course will be able to formulate a security model for such systems, apply formal analysis techniques to assess them, and design and evaluate both clean-slate security solutions and countermeasures for them.

CS 528 and CS 590

Spring 2019

Network Security (CS 528) and Data Security and Privacy (CS 590) – Purdue University

Guest lectured on cellular network security. Taught the basic cellular network architecture, and different sub protocols, such as, authentication and key agreement, registration, paging, and deregistration procedure. Also demonstrated different attacks and defenses in cellular networks.