He has been teaching computer science core courses from introductory level through graduate level. He has been coaching student teams for ACM programming competitions. His research interests are in data structures and algorithms and their applications in security, biology, visualization, etc. He has published over 30 peer reviewed papers and advised numerous research students. His research has been supported by NSF, HHS, and NASA.