CMPSC 311: Introduction to 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 to the basics of systems administration on UNIX virtual machines. (~350 students).
CMPSC 443: Introduction to Computer Security
CMPSC 443 focuses on computer security. Students will learn fundamentals of computer security, formal models of security, aspects of information systems security such as access control, hacks/attacks, systems and programs security, intrusion detection, cryptography, networks and distributed systems security, as well as the emergent security topics such as web security, malware (e.g., worms, viruses, ransomware), IoT security, and cryptocurrencies (e.g., Bitcoin and Ethereum, blockchain and smart contract). Students will develop the skills necessary to formulate and address the security needs of enterprise and personal environments. (~40 students).
CSE 543: Computer Security
This course provides a graduate-level introduction to computer 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. (~50 students).
CSE 597: Security and Privacy of Machine Learning
Today we see applications of machine learning almost everywhere we look - in the domains of autonomous driving, medical diagnosis, fraud detection, etc. While the use of machine learning is increasing in our day-to-day lives, these techniques also pose significant threats to security and data privacy. This course will explore recent academic research at the intersection of machine learning, security, and data privacy that demonstrates the risks adversaries pose to machine learning systems. The research papers explored in this course would cover attacks on machine learning systems as well as defense techniques to mitigate such attacks. At the end of this course, students will (1) acquire a solid background on recent developments in the area of security and privacy of machine learning, (2) be able to identify the security and privacy threats by rigorously analyzing systems that leverage machine learning, and finally, (3) be motivated to conduct research in this emerging area. (~20 students).
This course provides an introduction to the theory and application of computer security and privacy. Students will develop the skills necessary to formulate and address the security needs of enterprise and personal environments. The course will begin by describing the goals and mechanisms of security as motivated by recent incidents in the real world. The topics will cover cryptography, authentication, authorization, software security, software vulnerabilities, access control, malware/intrusion detection, web security, database security, privacy, AI security, and other emerging topics. A detailed list of lecture contents, assignments, and due dates (subject to change as semester evolves) will be available on the course website.
COSC 89.27/189: Security and Privacy of Machine Learning
Today we see applications of machine learning almost everywhere we look - in the domains of autonomous driving, medical diagnosis, fraud detection, etc. While the use of machine learning is increasing in our day-to-day lives, these techniques also pose significant threats to security and data privacy. This course will explore recent academic research at the intersection of machine learning, security, and data privacy that demonstrates the risks adversaries pose to machine learning systems. The research papers explored in this course would cover attacks on machine learning systems as well as defense techniques to mitigate such attacks. At the end of this course, students will (1) acquire a solid background on recent developments in the area of security and privacy of machine learning, (2) be able to identify the security and privacy threats by rigorously analyzing systems that leverage machine learning, and finally, (3) be motivated to conduct research in this emerging area.
COSC 89.27/189: Security and Privacy of Machine Learning
Today we see applications of machine learning almost everywhere we look - in the domains of autonomous driving, medical diagnosis, fraud detection, etc. While the use of machine learning is increasing in our day-to-day lives, these techniques also pose significant threats to security and data privacy. This course will explore recent academic research at the intersection of machine learning, security, and data privacy that demonstrates the risks adversaries pose to machine learning systems. The research papers explored in this course would cover attacks on machine learning systems as well as defense techniques to mitigate such attacks. At the end of this course, students will (1) acquire a solid background on recent developments in the area of security and privacy of machine learning, (2) be able to identify the security and privacy threats by rigorously analyzing systems that leverage machine learning, and finally, (3) be motivated to conduct research in this emerging area.
Problem Solving and Object-Oriented Programming (CS 18000)
Teaching Assistant
Problem Solving and Object-Oriented Programming (CS 18000)
Teaching Assistant
Taught ~100 students in lab sessions and held weekly office hours. Designed homework problems, set exam questions, graded assignments, and supervised group projects with 3-4 students in each group.
Assembly Language Programming (CSE 214)
Lecturer
Structured Programming Language Sessional (CSE 106)
Lecturer
Digital Systems Design Sessional (CSE 404)
Lecturer
Compiler Sessional (CSE 310)
Lecturer
Taught ~120 students in weekly lab sessions. Designed lab problems, set quiz and final exam questions, and supervised group projects.
Computer Fundamentals (ARC 1130)
Lecturer
Taught ~80 students in weekly lab sessions. Designed lab problems, set quiz and final exam questions, and supervised group projects.