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
- Spring 2024: Advanced Topics in Internet Computing (CS 176C)
- Spring 2024: ML for Networked Systems (CS 293N)
- Fall 2023: Machine Learning for Networking (CS 190N)
- Spring 2023: Programmable Networks (CS 176B)
- Spring 2022: ML for Networked Systems (CS 293N)
- Spring 2022: Advanced Topics in Internet Computing (CS 176C)
- Winter 2022: Programmable Networks (CS 176B)
- Spring 2021: Advanced Topics in Internet Computing (CS 176C)
- Winter 2021: Programmable Networks (CS 176B)
- Spring 2020: Advanced Topics in Internet Computing (CS 176C)
- Winter 2020: ML for Networked Systems (CS 293N)