An undergraduate-level course on the fundamentals of computing networking. Using the Internet as a reference, students learn how networks are designed and operated, how networking protocols are described and implemented, and how to build and deploy applications on top of networks. I teach this course every spring.
A graduate-level course that covers the technical foundations of cloud platforms, trains students to use cloud services, and explores recent advances in cloud computing research. We typically host 3-4 guest lectures from prominent cloud technologists. I teach this course every fall.
A graduate seminar on the ethical issues arising in computer science. The course covers broad range of ethical issues that arise in building and operating software systems, software as intellectual property, managing sensitive data, human subject issues, online privacy and surveillance, problems with algorithmic bias, and research misconduct. I co-taught this course in spring 2022.