I generally teach courses in the area of systems, including courses in computer networks, operating systems, and distributed computing. At the graduate level, I also teach courses in artificial life and biologically-inspired computing. My primary goal in teaching is to prepare our undergraduate and graduate students for careers in the rapidly changing fields of computing and communications.
I strongly believe that one learns by doing, and therefore my courses usually involve laboratory experiments in addition to lectures and homework. For example, in recent terms my Computer Networks (CSE 422) students have conducted lab experiments in streaming audio and video, data compression and encryption, and coordinated operation of nodes in wireless sensor networks.