I am interested in applying geometric tools and intuition to develop algorithms for, and the theory behind, dealing with large, highly structured data sets. I have significant research experience and I am confident that I will make meaningful research contributions in the Computer Science department at the University of North Carolina at Chapel Hill. Since my arrival in North Carolina with my wife Teresa, who is a Ph.D. student in the University Program for Genetics and Genomics at Duke University, I have been working on two research projects at the UNC with Jack Snoeyink and Brian Kuhlman.
Since September 2007 I have worked with Jack Snoeyink on a planar coloring problem originally proposed by Matthew Katz at Ben-Gurion University of the Negev in Israel. This planar coloring problem is as follows. Consider a rectangle subdivided into non-uniform rectangles so that no four rectangles meet at a single vertex. Then a coloring is an assignment of colors to the vertices such that each rectangle has distinct colors on its corners. Then the question is: what is the minimal number of distinct colors needed to color any rectangular subdivision? This problem is interesting because through rectangular dualization a large class of planar graphs can be efficiently represented as rectangular subdivisions. Through this dualization, understanding the structure of rectangular subdivisions has immediate algorithmic applications in graphical information systems and electronic chip design. Previous research on the problem has shown a few special cases are four colorable. Our approach to extending these results has been to transform rectangular subdivisions into a canonical form, then describe the intrinsic structure and identify obstructions and global invariants. To attack the problem I have developed a library of routines to visualize and analyze the structure we have found.
Since September, I have also been working in Brian Kuhlman's Biochemistry lab at UNC to develop a graphical interface to Rosetta, a multi-university, protein prediction and design program. The goal of Rosetta is to combinatorially search the space of protein conformations for desired characteristics, such as proteins with low energy or specific binding sites. For this project I am writing a Python plug-in for PyMol, an open source protein visualization program that interfaces with the Rosetta C++ code base. The plug-in allows researchers to graphically specify and constrain their searches and presents the score and relevant differences between output protein structures.
I have been interested in research for several years. During the Summer of 2005, I participated in the Chicago-Chile Materials Collaboration by working at the University of Chile in Santiago to create oscillons in Hamiltonian fluids. My project was to design an apparatus and protocol to observe and measure a particular type of dissipative, nonlinear, localized wave. The phenomenon is induced solely through an interference pattern of vibrations, so an understanding of the phenomenon is inherently applicable to a wide variety of physical systems that experience waves. Since the waves are localized in space they could potentially play a fundamental role in optical computers. The challenge in studying the phenomenon is that it is histeretic; not only does its existence depend upon the particular point in vibrational phase space but it also depends on the direction from which it is arrived. I constructed the experimental apparatus and wrote software in LabView and Matlab for controlling the setup and gathering and processing the data.
In the summer of 2006 I participated in the NSF-VIGRE Research Experience for Undergraduates in the Math department at the University of Chicago. I studied under Benson Farb to understand rotations in convex triangulations. A rotation of a triangulation is the local replacement of an internal edge with its perpendicular. Sleeter, Tarjan and Thurston used a technique from hyperbolic geometry to give a tight lower bound for the diameter of the graph where the vertices are all the convex triangulations with a fixed number of vertices and the edges consisting all valid rotations. Our project was to improve the best known constructive lower bound by exhibiting a sequence of pairs of convex triangulations with large rotation distances. For the REU I wrote a paper enumerating the class of all convex triangulations on n points under the dihedral symmetry. In order to continue our investigation and fully explore the ideas we had over the summer, I arranged a pro-seminar with two other students and an L.E. Dickenson Instructor, Nathan Broddus, in the winter quarter of 2007. As part of the project I implemented several algorithms to explore the space of convex triangulations.
I recognize that my computer science background is not as strong as my mathematical background, but I am already working to change this. Following the Background Preparation Worksheet and Professor Snoeyink's advice, this spring I will audit COMP 550 Analysis of Algorithms with Professor Plaisted and also Intro to Operating Systems with Professor Cox at Duke University. Then next fall I will take COMP 720 Compilers with Professor Prins. With these classes, my work in the Kuhlman Lab and my research experience, I will have strong programming skills to effectively research geometric data.
I feel I will be a good fit for the UNC Computer Science program due to my distinctive mathematical and geometric background and extensive research experience. I am excited to continue my work with Jack Snoeyink; he has proposed several research projects with triangulations and geometric data-compression that fascinate me. The emphasis in the department on graphics, visualization and user-interface is a very natural way to approach my central interest: how to explore large quantities of geometric data.