Teaching

Classes, Workshops, Outreach, and Mentoring

Information Security

CS 47205/57205

Instructor - Fall 2023

This course explores the fundamental theories and practices involved in securing data and processes within information systems. We cover security in the basic areas of the security triad - confidentiality, integrity, and availability, covering the risks, principles, policies, and technologies prevalent in each of these areas of information security.

Guest Lecturer

CS 643, CS 250

Cloud Security (CS 643) [Spring 2021, Fall 2022], Discrete Structures (CS 250) [Spring 2019]

Topic 1 - Trustworthy Cloud Forensics, Securing E-Discovery, and the Chain of Custody for Digital Evidence.
Topic 2 - Digital Forensics.
Topic 3 - The Foundations, Logic and Proofs.
Topic 4 - Tree Traversal and Applications of Trees.

Cloud Computing

CS 433

Summer 2021, Summer 2020 - Teaching Assistant

CS 433 is an upper-division introduction to cloud computing taught by Prof. Ragib Hasan. This course also covers CS 633 (Masters Students) and CS 733 (Ph.D. Students) sections. I taught lab part with another TA throughout the course, covered concepts ranging from C/C++/Java libraries to communicate with the cloud, manage virtual machines, Elastic MapReduce, IoT Core, containers, and identities management. I held regular office hours, graded homeworks, project, and exams.

Algorithms and Data Structures

CS 303

Fall 2020 - Lab Instructor

Undergraduate level introduction course to Algorithms and Data Structures taught by Prof. Purushotham Bangalore. Students learn about techniques for design and analysis of algorithms; efficient algorithms for sorting, searching, graphs, and string matching; and design techniques such as divide-and-conquer, recursive backtracking, dynamic programming, and greedy algorithms. As a student lab instructor, I helmed one lab section, held regular office hours, and designed and graded homework.

Discrete Structures

CS 250

Fall 2019, Spring 2020, Spring 2021 - Teaching Assistant

CS 205 is an undergraduate level course taught by Prof. Nitesh Saxena (Fall 2019 at UAB) and Prof. Ragib Hasan (Spring 2020, Spring 2021). Students learn discrete mathematics for computer science, including elementary propositional and predicate logic, sets, relations, functions, counting, elementary graph theory, proof techniques including proof by induction, proof by contradiction, and proof by construction. I held regular office hours, graded homeworks and exams.