Daniel A Dougherty

Graduate Student
Department of Computer Science
School of Engineering and Applied Science
University of Virginia


85 Engineer's Way, PO Box 400740
Charlottesville, VA 22904



Office:

432 Rice Hall

Email:


 
Spring '11 - Present

Workflow and Job Management on the Grid

Condor is one of the most widely used distributed computing platforms available, due to the ease with which a user can begin executing jobs. Meanwhile, standards are being developed and adopted in the Grid system community to promote interoperability. We seek to model the aspects of Condor that users need, and provide services on the Grid that reduce the learning curve for transitioning Condor users. Advisor: Dr. Andrew Grimshaw, Professor, University of Virginia

Key Topics: Distributed Systems, Grid Computing, Workflow Management, Language Translation, Condor, JSDL

Summer '10 – Spring '11

Secure Programming for E-Commerce

In many teaching environments, security is treated as an afterthought: the students learn functionality with little or no regard for the security of the product, with the expectation that security will be learned later. We adopt a new method, in which the student is taught new technologies useful for E-Commerce, and how to utilize those technologies while emphasizing security as a primary design principle. Advisor: Dr. Alfred Weaver, Professor, University of Virginia

Key Topics: Pedagogy, Security, E-Commerce Technologies, Ethical Hacking, Web Services

Spring '10

Teaching Assistant

 

CS 1110: Introduction to Programming

Advisor: Dr. Paul Reynolds, Professor, and Dr. Kevin Sullivan, Associate Professor, University of Virginia

Key Topics: Introduction to Computer Science, JAVA

Fall '08 – Summer '09

Dynamic Code Cache Management to Improve Dynamic Binary Instrumentation Performance

Some previous work uncovered an anomaly in the performance of some benchmark programs wherein a program’s performance while instrumented will improve when the size of the virtual code cache is limited. We seek to take advantage of this behavior using adaptive techniques to monitor the code cache and flush out old data when it becomes cumbersome.

Advisor: Dr. Kim Hazelwood, Assistant Professor, University of Virginia

Key Topics: Virtual Machines, Memory Management, Adaptive Execution

Summer '08 – Fall '08

Effects of Dynamic Binary Instrumentation on Hardware Branch Prediction

Dynamic Binary Instrumentation (DBI) tools often utilize a virtual code cache in their execution, in which traces of a program are extracted and recompiled, often with some instrumentation code or optimizations. This behavior is quite different from the standard execution environment that CPUs are generally designed for, which can cause a substantial impact on the performance of hardware components like the branch predictor. This project studied this impact in detail for two such DBIs, Pin and DynamoRIO.

Advisor: Dr. Kim Hazelwood, Assistant Professor, University of Virginia

Key Topics: Architecture, Virtual Machines, Workload Characterization

Spring '08

HOCA: Operating System Design on x86

A graduate-level computer science curriculum often includes a course in Operating System design, in which a student will implement a small Operating System over the course of a semester in order to learn about the more intricate details of OS design. As technology advances, so too must the design of these academic Operating Systems to reflect those advancements. In this project, we studied the current technology available for such an update, and began the transition from a Motorola 68000 simulator to an x86 virtual machine.

Advisor: Dr. Ken Mandelberg, Associate Professor, Emory University

Key Topics: Operating Systems, Architecture, Software Engineering

Summer '07 – Spring '08

EDIT: Extensible Data Identification Toolkit

 

In the medical community, there is a vast amount of unstructured data available in the reports that physicians must maintain throughout day to day activities. This data goes largely unutilized by the research community for two primary reasons: 1) the format of the data is nonstandard between institutions, and 2) the data is scattered across the globe in medical records vaults where no one but local personnel can access them. EDIT is designed to overcome these two hurdles by providing a simple interface for researchers to automatically convert data to a searchable, semi-structured format, and then share this data in a secure but accessible manner to the rest of the research community.

Advisor: Dr. James Lu, Associate Professor, Emory University

Key Topics: Natural Language Processing, Security, Software Engineering, Bio-Informatics

Summer '05

Computer Science Applications for Medicine

 

The rapid worldwide deployment of the Internet and Web is the enabler of a new generation of e-healthcare applications, but the provision of a security architecture that can ensure the privacy and security of sensitive healthcare data is still an open question. This project made use of web services and biometric (fingerprint, iris scan, signature recognition) and digital (etoken, RFID, PIN generators) approaches to security.

Advisor: Dr. Alfred Weaver, Professor, University of Virginia

Key Topics: Security, Web Services, Bio-Informatics

Spring '05

Designing an Automatic Graphics API for Introductory Computer Science Classrooms

 

Computer Science educators are constantly looking for new ways to utilize technology in the pursuit of helping students learn the concepts needed for success. Even simple ideas can be difficult for students to comprehend without some form of visual aide. To solve this problem, we designed and implemented a simple programming API whereby visualizations can be added to an educators programming examples to display control graphs, memory contents, and data structures as the program executes.

Advisor: Dr. Jeffery Peden, Associate Professor, Longwood University

Key Topics: Graphics, Computer Science Education, Human-Computer Interaction