Teaching

Cloud Computing

Undergraduate, University of Maryland, CS, 2024

The course explores several fundamental topics of cloud computing, including IaaS (e.g., Open Stack, Kubernetes), key big data platforms, and data center networking. The course combines group reading and discussion of influential publications in the field, lectures by the instructor, talks by invited speakers, and a large project. Students will be a part of an agile development team, with extensive experience with GitHub, agile tools, and various technologies. Each course project is solicited from open-source community and will be mentored by an industry leader and/or engineer, or a senior graduate student/postdoc. A project is expected to be done by teams of 3 to 5 students working with a mentor. Projects may use public clouds from our industry partners.

Advanced Topics in Cloud Networking and Computing

Graduate Seminar, University of Maryland, CS, 2023

The course aims to explore latest advances in cloud networking and computing in light of emerging workloads (e.g., machine learning and large-scale analytics), including communication platforms, compute parallelism, and datacenter networking. The class will discuss the latest developments in the entire networking stack, the interactions between networks and high-level applications, and their connections with other system components such as compute and storage. The course combines group readings and presentations of influential publications in the field, lectures by the instructor, talks by invited speakers, and a project etc.

Cloud Computing

Undergraduate and Graduate, Boston University, ECE, CS, 2022

The course aims to explore several fundamental topics of cloud computing, including IaaS (e.g., Open Stack), key big data platforms, and datacenter networking. The course combines group reading and discussion of influential publications in the field, lectures by the instructor, talks by invited speakers, and a large project. In particular, the students will be a part of an agile team, with extensive experience with GitHub, agile tools, and various technologies. The project will be done by teams of 3 to 5 students working with a mentor, depending on the project, an industry leader and/or engineer with a relevant project, or a senior graduate student or a postdoc working on a relevant research project. Projects may use the Mass Open Cloud or industry clouds (Amazon AWS, Microsoft Azure, Rackspace, etc.)

Advanced Computer Networking

PhD Seminar, Boston University, ECE, 2021

The Internet today carries a great volume and variety of data to enable new waves of innovation. This course is to explore the principles and design decisions which underly the Internet. It provides a comprehensive overview of advanced topics in network protocols and networked systems. Lectures will cover both classic papers on Internet protocols and recent research advances. The course aims to examine a wide range of topics, e.g., switching and routing, congestion control, network architectures, data center networks, network virtualization, software-defined networking, and programmable networks, with an emphasis on core networking concepts and principles. The concepts will be reinforced with paper discussions, programming assignments, and a final project.

Introduction to Computer Networking

Undergraduate course, Boston University, ECE, 2021

Topics covered in this course will include application layer protocols (e.g., HTTP, FTP, SMTP), transport layer protocols (UDP, TCP), network layer protocols (e.g., IP, ICMP), link layer protocols (e.g., Ethernet) and wireless protocols (e.g., IEEE 802.11). The course will also cover routing protocols such as link state and distance vector, multicast routing, and path vector protocols (e.g., BGP). The class will examine security issues such as firewalls and denial of service attacks. We will also study DNS, NAT, Web caching and CDNs, peer to peer, and protocol tunneling. Finally, we will explore security protocols (e.g., TLS, SSH, IPsec), as well as some basic cryptography necessary to understand these. Grading will be based on hands-on programming assignments and two exams.