In my research, I seek to develop ways to make programming tasks easier and programmers more productive. I’m particularly interested in the user interface of programming tools, such as visualization techniques for defect detection tools, or new interaction techniques for common programming tasks such as debugging.

Current Research Works


Path Projection


Path Projection is a new user interface toolkit that helps users visualize, navigate, and understand program paths such as call stacks or execution traces. It is designed to be used as a user interface for software defect detection tools, which commonly report errors as program paths.

Path Projection combines two techniques—function call inlining and path-derived code folding—to “project” the source code onto the error path. Code relevant to a path is placed close together, and makes it possible for programmers to follow a path by reading from top-to-bottom.

[ Website ] [ PASTE 2008 Paper ] [ Tech Report ]

Arrowlets


Arrowlets is a JavaScript library based on arrows that makes it easy to write event-driven programs. Using Arrowlets, asynchronous event listeners, synchronous event handlers or any standard JavaScript function can be written as modular units of code and flexibly composed in many different ways. Furthermore, Arrowlets eliminates the messiness of manual callback plumbing, making it easy for programmers to understand the control-flow of event-driven programs.

[ Website ] [ ICFP 2008 Poster Summary ] [ Tech Report ]

 

Ph.D student
Department of Computer Science
University of Maryland, College Park
<khooyp@cs.umd.edu>
Curriculum VitaeResearch StatementBlog