Special REU Presentations
Empirically Evaluating and Quantifying the Effects of Inspections and Testing on Security Vulnerabilities
Currently developers and project managers do not have adequate empirical evidence to make informed, objective choices about the most effective and the most cost-efficient quality assurance methods for identifying security vulnerabilities. The software security engineering community is sorely in need of objective, quantitative information that will allow developers to make informed choices among available practices for vulnerability prevention and removal. Decades of software engineering research has produced evidence of the effectiveness of fault and failure prevention and removal practices, though essentially none exists for vulnerabilities.
We have learned from years of empirical study about general fault/failure detection that different approaches (i.e., testing and inspection approaches) exhibit different characteristics. Understanding which approach is more effective for identifying the type of defects that a developer expects to be present in his system provides great benefit when choosing the most appropriate quality assurance techniques for use on a project. There is a need for this type of objective, empirical evidence about the effects of various practices for vulnerability prevention and removal.
Example REU Projects on this topic include: (1) mining bug repositories to identify code segments that contain security vulnerabilities then tracing code history to determine which type of testing was applied, and (2) evaluating the effects of different testing techniques on identification of security vulnerabilities.
CUDA-Accelerated Brownian Dynamics Simulations
Brownian Dynamics is a method of conducting molecular simulations which does not explicitly model particles, such as water, in which we are not interested. While Brownian Dynamics is much less time-consuming than other molecular simulation techniques, it is still prohibitively slow for large data sets. Parallel computing involves structuring programs in order to process many computations all at the same time rather than serially (that is, one after the other). CUDA, an extension of the C programming language, exposes the GPU’s computation power to a program that would otherwise be run on a CPU, in order to process many mathematical operations in parallel. This summer, we hypothesized that it would be possible to greatly speed up Brownian Dynamics simulations by doing most of the calculations in parallel on a GPU using CUDA. In this presentation, we will discuss the theory and methods behind the parallel programming techniques we used, as well as the unique challenge we faced in applying these methods to Brownian Dynamics simulations.
An Inquiry-Based Approach to Teaching Parameterization
Within Mathematics Education, there is often a disconnect between the actions of the instructors and the students within the classroom, manifested with students passively watching the instructor “do mathematics.” A teaching approach called IBL (Inquiry-Based Learning), which encourages students to collaborate and become actively engaged in their learning, has been shown in education research to be effective for sparking students’ curiosity and helping them to develop a deeper understanding of the subject. Our project seeks to develop an activity, based on research that employs IBL to teach parameterization of curves in space to a multivariable calculus class.