Since 2003, I have had the opportunity to work on multiple research teams. Each experience has shaped my overall approach to research. I think that research is an integral part of any level of education. Generally, I am interested in answering the question "What makes software development hard?" (This comes from a 1985 publication by Kotovsky, Hayes, and Simon entitled, "What makes some problems hard?". Not unrelatedly, I happen to have a short summary of the article here.)
I prefer an interdisciplinary approach to this question that incorporates cognitive psychology (e.g. research on memory, expertise, problem solving, and in general, how we think) and potentially other fields with an empirical approach to analyzing software development. My current interests and philosophy build on the experiences outlined below. Publications are detailed in a separate Publications section linked to the left.
Cognitive Factors Affecting Perspective-Based Reading
- Collaborator(s): Jeff Carver (advisor)
- Affiliation: Department of Computer Science, Mississippi State University
- Duration: January 2007 - May 2009 (Master's Thesis)
- Description: We applied the protocol analysis method from cognitive psychology to an exploratory investigation of Perspective-Based Reading (PBR). Protocol analysis is based on the coding of verbal protocols (sometimes called "think-aloud protocols") collected concurrently during task performance. We found correlational support for three specific hypotheses from literature: 1) That critical events called "defect triggers" depend on knowledge in short-term/working memory 2) That the perspective assigned to a reviewer significantly affects the type of defects found and 3) That knowledge and experience levels of reviewers have a significant effect on the types of knowledge recalled during review. More generally, we concluded that protocol analysis has some utility for the consideration of cognitively intense tasks in software engineering.
Digital Human Modeling
- Collaborators: Daniel Carruth
- Affiliation: Center for Advanced Vehicular Systems, Mississippi State University
- Duration: December 2005-August 2009
- Description: We developed an integrated architecture for the simulation of human performance in virtual environments. This involved integrating the ACT-R cognitive architecture with the Virtools(TM) virtual environment and the Santos(TM) digital human model. We also extended the capabilities of the ACT-R visual system, as well as developing new ACT-R modules for spatial reasoning and kinesthetic/proprioceptive sensation. This work was supported by the US Army TARDEC.
Non-Functional Requirements Engineering
- Collaborators: Ray Vaughn (instructor)
- Affiliation: Department of Computer Science, Mississippi State University
- Duration: Fall 2006
- Description: As part of a split-level course on Information Security taught by Dr. Vaughn, I developed a framework for "functional security requirements engineering" by researching current practice in the development of secure software. I found that while software engineers usually treat traditionally non-functional requirements from outside of their normal requirements engineering process, the processes employed by security engineers to assure the security of a system depended on functional attributes of the system. I considered what an integrated framework for considering security (and potentially other non-functional requirements) alongside more traditional functional requirements might look like.
Hydraulic Modeling
- Collaborators: R.C. Berger, Jennifer N. Tate
- Affiliation: Coastal and Hydraulics Lab, Engineering Research and Development Center, US Army Corps of Engineers
- Duration: May 2003-August 2005 (Cooperative Education)
- Description: I was a member of an engineering team developing the ADaptive Hydraulics (ADH) Modeling Package. As one of the only pure computer scientists (i.e. non-Hydraulic Engineers) on the team, my tasks spanned a number of technical aspects of the project. I developed the vessel movement library of ADH for simulating the presence of vessels in 2D shallow water scenarios, implemented a Runge-Kutta algorithm for solving vessel sedimentation problems, and assisted with the development of wetting-and-drying support for the 2D model. I also coordinated version management as well as the development of a scripted test suite for regression testing.