Teaching

Teaching Philosophy

I teach undergraduate courses covering basic and advanced networking topics and a graduate course covering machine-learning for networking problems. Given the applied and ever-evolving nature of networking solutions, my approach is to focus on redundant design patterns that guide the decision-making of network designers, researchers, and operators. To this end, I help students identify the design spectrum and related tradeoffs for existing networking protocols and networked systems. I try to put students in the shoes of networking researchers, helping them appreciate how the networking community made various design choices in the past. I also try to highlight the ever-evolving nature of the networking field and how the students can contribute to making an impact of their own in the future.

I pay special attention to instilling excitement about the material and helping students discover new interests. For example, in my classes, rather than speaking exclusively in the abstract, I use real-world network data and configurations from UCSB’s production network to explain various network and application-layer protocols. To offer a better hands-on experience, I translate cutting-edge research into programming assignments. It not only exposes students to the latest developments in the area and adds a new dimension to the research itself.

Courses at UCSB