Shaohua Xie

Learn More
Programs that use multi-threaded concurrency are known to be difficult to design. Moreover, research in computer-science education suggests that concurrency and synchronization concepts are generally difficult to master. It stands to reason that comprehension tasks may be more complex for programs that employ con-currency than for sequential programs. We(More)
UNLABELLED We present a new tool for finding local sequence patterns in long DNA sequences. The program, Pattern Locator, uses an intuitive syntax for pattern description, and provides more flexibility than existing programs by allowing combinations of specific nucleotide sequences, direct and inverted repeats, variable length tandem repeats of subpatterns,(More)
is generally accepted that concurrency can be difficult for students to reason about. While some studies provide insight into the nature of these difficulties [6], work remains to be done in understanding the aspects of learning about concurrency that are most difficult, and in developing approaches to dealing with this problem. We have conducted instructor(More)
Graduates of computer science degree programs are increasingly being asked to maintain large, multi-threaded software systems; however, the maintenance of such systems is typically not well-covered by software engineering texts or curricula. We conducted a think-aloud study with 15 students in a graduate-level computer science class to discover the(More)
While the sources of complexity in the initial design and verification of multi-threaded software systems are well-documented, less is known of the issues specific to the maintenance of these systems. The literature contains a number of observational studies of programmers performing maintenance , conducted in the context of sequential software and designed(More)
MOTIVATION Genomes contain biologically significant information that extends beyond that encoded in genes. Some of this information relates to various short dispersed repeats distributed throughout the genome. The goal of this work was to combine tools for detection of statistically significant dispersed repeats in DNA sequences with tools to aid(More)
Learning about concurrency and synchronization is difficult for novices. In prior work, we developed <i>saUML</i>, a refinement of UML sequence diagrams, to address these difficulties and found them to be beneficial when compared to text-only presentations. This paper compares saUML to standard UML sequence diagrams to judge their relative effectiveness in(More)
Empirical studies are important for understanding how well current design methods and notations support development of multi-threaded programs. Unfortunately, concurrency exacerbates an already difficult problem in drawing conclusions from such studies: How to objectively measure the quality of candidate solutions produced by participants in the studies.(More)
  • 1