
Mark SherriffUniversity of Virginia | UVa · Department of Computer Science
Mark Sherriff
PhD - NC State University
About
51
Publications
5,368
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
358
Citations
Introduction
Additional affiliations
August 2007 - present
Publications
Publications (51)
Context. Computing Education Research (CER) is critical to help the computing education community and policy makers support the increasing population of students who need to learn computing skills for future careers. For a community to systematically advance knowledge about a topic, the members must be able to understand published work thoroughly e...
The computing education community endeavors to consistently move forward, improving the educational experience of our students. As new innovations in computing education practice are learned and shared, however, these papers may not exhibit the desired qualities that move simple experience reports to true Scholarship of Teaching and Learning (SoTL)...
Computing Education Research (CER) is critical for supporting the increasing number of students who need to learn computing skills. To systematically advance knowledge, publications must be clear enough to support replications, meta-analyses, and theory-building. The goal of this study is to characterize the reporting of empiricism in CER literatur...
We would like to take this opportunity to thank everyone in the community for everything that you did to support the 52nd SIGCSE Technical Symposium on Computer Science Education, our first (and hopefully only) fully-online Technical Symposium! From presenting papers and posters, to being session chairs, to simply participating, everyone engaged wi...
The 2021 Technical Symposium is quickly approaching and we could not be more excited to welcome you to the first-ever virtual Symposium! We are equally thrilled by the quality of the program that we have the honor to share with you. The schedule is available at https://sigcse2021.sigcse.org/schedule/.
The SIGCSE 2021 leadership team wants to express support for the movement in the United States and around the world decrying racial inequality. The protests and conversations calling for reform reinforce the need for dramatic change in society.
After a momentous celebration looking back at fifty years of the SIGCSE Technical Symposium in Minneapolis, we are turning our attention forward for SIGCSE 2020. The theme for next year's technical symposium is "A Vision for the Next 50 Years." What will the next big ideas in computing education be? How will they change the way we teach and learn c...
Capstone and large projects in computing education are used as a vehicle for giving students as close to a “real-world” experience in software development as possible within the constraints of a computing degree program. This special issue presents four articles that focus on empirical research on capstone or other large-scale projects. These artic...
One of the most important, and difficult, aspects of starting an education research project is identifying an interesting, answerable, repeatable, measurable, and appropriately scoped research question. The lack of a valid research question reduces the potential impact of the work and could result in wasted effort. The goal of this workshop is to h...
Many computer science departments have chosen to hire faculty to teach in a teaching-track position that parallels the standard tenure-track position, providing the possibility of promotion, longer-term contracts, and higher pay for excellence in teaching and service. This birds-of-a-feather is designed to gather educators who are currently in such...
One of the most important, and difficult, aspects of starting an education research project is identifying an interesting, answerable, repeatable, measurable, and appropriately scoped research question. The lack of a valid research question reduces the potential impact of the work and could result in wasted effort. The goal of this workshop is to h...
Many computer science departments have chosen to hire faculty to teach in a teaching-track position that parallels the standard tenure-track position. These teaching-track positions include the possibility for promotion, longer-term contracts, and greater pay as demonstrated by excellence in teaching, educational material development, and service....
The computer science education (CSEd) research community consists of a large group of passionate CS educators who often contribute to other disciplines of CS research. There has been a trend in other disciplines toward more rigorous and empirical evaluation of various hypotheses. Prior investigations of the then-current state of CSEd research showe...
Many computer science departments have chosen to hire faculty to teach in a teaching-track position that parallels the standard tenure-track position. These teaching-track positions include the possibility for promotion, longer-term contracts and greater pay as demonstrated by excellence in teaching, educational material development, and service. S...
A great CS assignment is a delight to all, but the path to one can be most roundabout. Many CS students have had their characters built up on assignments that worked better as an idea than as an actual assignment. Assignments are hard to come up with, yet they are the key to student learning. The Nifty Assignments special session is all about promo...
Over the past several years, there has been a marked increase in empirical validation in research papers presented at the SIGCSE Symposium. This birds-of-a-feather session intends to bring together faculty interested in empirical research in computer science education to share methodologies and techniques, while also continuing the conversation abo...
Intelligence gathering is a critical component of military operations. Unmanned aerial vehicles (UAVs) have become an increasingly useful tool due to their surveillance and reconnaissance capabilities. However, the use of many of these vehicles is limited to outdoor environments because of their size and reliance on Global Positioning Satellites (G...
We present the design and execution of a Service Learning Practicum (SLP) course sequence intended to be year-long capstone for computer science seniors. Students are teamed into groups of six, and develop software for local nonprofit organizations. In addition to the structure of the course, we describe the challenges faced (legal, organizational,...
The United States creates or acquires increasingly more complex intelligence, surveillance, and reconnaissance (ISR) systems to maintain a strong, leading presence within the world. As a result, ISR systems have become more costly and difficult to manage. The research team focused on continuing previous year efforts of another team to utilize comme...
During the summer of 2011, twenty-four high school students participated in an intense, three-week computer science course at the University of Virginia. The course met for twenty-one three-hour sessions, thus encompassing more contact time than a standard college-level course. The course was structured in an “Inform, Experience, Implement” active-...
The military is increasingly using sensors as part of its battlefield strategy. Sensors can be used as an alternative to placing soldiers in dangerous situations and the information that sensors collect helps leaders make better decisions. However, the cost of integrating these sensors into existing tactical networks has been a limiting factor in t...
Many computer science departments have chosen to hire faculty to teach in a teaching-track position that parallels the standard tenure-track position, providing the possibility of promotion, longer-term contracts, and higher pay for excellence in teaching and service. This birds-of-a-feather is designed to gather educators who are currently in such...
Over the past two years, second-year Java and software engineering courses have been taught at the University of Virginia and North Carolina State University utilizing the Android OS platform. Instructors taught a variety of traditional second-year topics, including abstraction, design, requirements, and testing, utilizing a variety of Android-base...
This paper compares the effectiveness of two approaches that can be used to teach concepts in introductory courses such as CS1 and CS2 - a conventional lecture-based approach and one using larger software programs (artifacts) with accompanying guided exercises. Our assessment includes measures of students' self-confidence as well as a measurement o...
Even as everyday software increasingly transitions to online software services, many educational projects in software development courses still remain on single-user PC systems. To better prepare our students for this emerging trend in software development, material on web services and service-oriented architecture should become more of a focus in...
This paper details the results of an investigation into the compatibility of partnered computer science students. The study involved approximately 290 students at the University of Virginia (UVA). This study builds on the work of researchers at North Carolina State University (NCSU). NCSU researchers have conducted a number of studies on the compat...
This paper describes the benefits of using LeJOS and the Lego Mindstorms NXT set for teaching advanced software development. While Lego Mindstorms has been used in introduction to computer science courses, it is not reported to be widely used in a simulated production environment requiring such things as threading, network communications, and the i...
In this talk, I'll explore some of the ways educators share details of their practice and of how they find out "what works" from others. This exploration will include examining some barriers and inhibitors to successful exchange and some thoughts on ...
A critical problem facing todaypsilas Internet community is the increasing number of attacks exploiting flaws found in Web applications. This paper specifically targets input validation vulnerabilities found in SQL queries that may lead to SQL Injection Attacks (SQLIAs). We introduce a tool that automatically detects and suggests fixes to SQL queri...
Verification and validation techniques often generate various forms of software development artifacts. Change records created from verification and validation efforts show how files in the system tend to change together in response to fixes for identified faults and failures. We propose a methodology for determining the impact of a new system modif...
During development and testing, changes made to a system to repair a detected fault can often inject a new fault into the code base. These injected faults may not be in the same files that were just changed, since the effects of a change in the code base can have ramifications in other parts of the system. We propose a methodology for determining t...
Static analysis tools tend to generate more alerts than a development team can reasonably examine without some form of guidance. In this paper, we propose a technique for leveraging field failures and historical change records to determine which sets of alerts are often associated with a field failure using singular value decomposition. We performe...
In this paper, we propose a technique for leveraging historical field failure records in conjunction with automated static analysis alerts to determine which alerts or sets of alerts are predictive of a field failure. Our technique uses singular value decomposition to generate groupings of static analysis alert types, which we call alert signatures...
During the course of software development, developers will employ several different verification and validation (V&V) practices with their software. However, these efforts might not be recorded or maintained in an effective manner. We have built defect estimation with V&V Certificates on Programming (DevCOP), a software certificate management syste...
In industry, information on defect density of a product tends to become available too late in the software development process to affordably guide corrective actions. Our research objective is to build a parametric model which utilizes a persistent record of the validation and verification (V&V) practices used with a program to estimate the defect...
In industry, information on defect density of a product tends to become available too late in the software development process to affordably guide corrective actions. Our research objective is to build a parametric model which utilizes a persistent record of the validation and verification (V&V) practices used with a program to estimate the defect...
In industry, information on defect density of a product tends to become available too late in the software development process to affordably guide corrective actions. Our research objective is to build a parametric model which utilizes a persistent record of the validation and verification (V&V) practices used with a program to estimate the defect...
Early estimation of defect density of a product is an important step towards the remediation of the problem associated with affordably guiding corrective actions in the software development process. This paper presents a suite of in-process metrics that leverages the software testing effort to create a defect density prediction model for use throug...
In industry, information on defect density of a product tends to become available too late in the software development process to affordably guide corrective actions. Our research objective is to build a parametric model which utilizes a persistent record of the validation and verification (V&V) practices used with a program to estimate the program...
Parametric modeling is a statistical technique whereby a dependent variable is estimated based on the values of and the relationships between the independent variable(s). The nature of the dependent variable can vary greatly based on one's domain of interest. In software engineering, parametric models are often used to help predict a system's devel...
In late-stage phases of development, action to correct defects can be cost prohibitive. Effective, efficient, and expressive measures of reliability during the development cycle could aid developers by showing early warning indications of where the system might require modification or more testing. In this paper, we present initial research in crea...
In late-stage phases of development, action to correct defects can be cost prohibitive. Effective, efficient, and expressive measures of reliability during the development cycle could aid developers by providing early warning signs of where the system might require modification or further testing. To this end, this paper presents a method for estim...
The majority of today's college students enter their first computer science course with a working knowledge of computers, primarily PC/Windows based. Their experience with PC systems as their "native language" is then reinforced in the many universities that require laptop PCs or distribute them to incoming freshmen. Teaching students the Unix envi...
In industry, information on field reliability of a product tends to become available too late in the software development process to affordably guide corrective actions. An important step towards remediation of this problem lies in the ability to provide an early estimation of software reliability. This paper presents a suite of in-process metrics...