I am a Ph.D. candidate (anticipated graduation in Spring 2017) in Computer Science at the University of Virginia, advised by Wes Weimer. My research is on non-functional properties and human factors in software engineering. I am interested in properties of both the static source code, such as readability and program understandability, and the dynamic run-time behavior of programs, including energy use and output quality. In particular, I investigate how humans perceive and interact with source code and apply program analyses, transformations, and search-based software engineering techniques to improve the acceptability of these properties.
|TSE||Jonathan Dorn, Jeremy Lacomis, Westley Weimer, Stephanie Forrest. Scalable Software Energy Reduction Transactions on Software Engineering. (Under submission)|
|Jonathan Dorn, Connelly Barnes, Jason Lawrence, Westley Weimer. Towards Automatic Band-Limited Procedural Shaders, Pacific Graphics. 2015. [PDF] [video (160 MB)] [supplemental material] [slides (17 MB)]|
Ermira Daka, Jose Campos, Gordon Fraser, Jonathan Dorn, Westley Weimer.
Modeling Readability to Improve Unit Tests,
Foundations of Software Engineering (ESEC/FSE). 2015.
ACM SIGSOFT Distinguished Paper Award
|SSBSE||Ermira Daka, Jose Campos, Jonathan Dorn, Gordon Fraser, Westley Weimer. Generating Readable Unit Tests for Guava, Symposium on Search Based Software Engineering (SSBSE). 2015. [PDF]|
|Eric Schulte, Jonathan Dorn, Stephen Harding, Stephanie Forrest, Westley Weimer. Post-compiler Software Optimization for Reducing Energy, Architectural Support for Programming Languages and Operating Systems (ASPLOS). 2014. [PDF]|
|HotPar||Chris Gregg, Jonathan Dorn, Kim Hazelwood, Kevin Skadron. Fine-Grained Resource Sharing for Concurrent GPGPU Kernels, 4th USENIX Workshop on Hot Topics in Parallelism (HotPar'12). 2012. [PDF]|
I taught a compilers practicum to 9 students in the spring semester of 2014. [lecture slides]
This course was an optional companion to CS 4610 Programming Languages, for advanced students to apply PL concepts to implement an optimizing compiler for a small object-oriented language. The assignments were designed by the CS 4610 instructor to reduce redundancy between assignments in both classes, while I was responsible for the content and presentation of the lectures, answering questions, and providing guidance to the student teams. The lectures covered basic code generation for a byte code virtual machine and x86_64, object layout, calling conventions, boxing and unboxing of primitives, peephole optimizations, register allocation, and dataflow analysis.
I received a B.S. in Computer Science from the University of Texas at Austin in May 2004. My thesis was titled "The Development of a General Purpose Raytracer for Acoustical and Visual Rendering of Virtual Environments," advised by Bruce Naylor.
I also received a B.A. in Plan II from the University of Texas at Austin in May 2004.