skip to main content


The NSF Public Access Repository (NSF-PAR) system and access will be unavailable from 10:00 PM ET on Friday, December 8 until 2:00 AM ET on Saturday, December 9 due to maintenance. We apologize for the inconvenience.

Search for: All records

Creators/Authors contains: "Lu, Shan"

Note: When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).
What is a DOI Number?

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

  1. Free, publicly-accessible full text available June 22, 2024
  2. Free, publicly-accessible full text available May 1, 2024
  3. Free, publicly-accessible full text available May 8, 2024
  4. Trigger-action programming (TAP) empowers a wide array of users to automate Internet of Things (IoT) devices. However, it can be challenging for users to create completely correct trigger-action programs (TAPs) on the first try, necessitating debugging. While TAP has received substantial research attention, TAP debugging has not. In this paper, we present the first empirical study of users’ end-to-end TAP debugging process, focusing on obstacles users face in debugging TAPs and how well users ultimately fix incorrect automations. To enable this study, we added TAP capabilities to an existing 3-D smart home simulator. Thirty remote participants spent a total of 84 hours debugging TAPs using this simulator. Without additional support, participants were often unable to fix buggy TAPs due to a series of obstacles we document. However, we also found that two novel tools we developed helped participants overcome many of these obstacles and more successfully debug TAPs. These tools collect either implicit or explicit feedback from users about automations that should or should not have happened in the past, using a SAT-solving-based algorithm we developed to automatically modify the TAPs to account for this feedback. 
    more » « less
  5. Abstract

    Terpenoids constitute the largest class of plant primary and secondary metabolites with a broad range of biological and ecological functions. They are synthesized from isopentenyl diphosphate and dimethylallyl diphosphate, which in plastids are condensed by geranylgeranyl diphosphate synthases (GGPPSs) to produce GGPP (C20) for diterpene biosynthesis and by geranyl diphosphate synthases (GPPSs) to form GPP (C10) for monoterpene production. Depending on the plant species, unlike homomeric GGPPSs, GPPSs exist as homo- and heteromers, the latter of which contain catalytically inactive GGPPS-homologous small subunits (SSUs) that can interact with GGPPSs. By combining phylogenetic analysis with functional characterization of GGPPS homologs from a wide range of photosynthetic organisms, we investigated how different GPPS architectures have evolved within the GGPPS protein family. Our results reveal that GGPPS gene family expansion and functional divergence began early in nonvascular plants, and that independent parallel evolutionary processes gave rise to homomeric and heteromeric GPPSs. By site-directed mutagenesis and molecular dynamics simulations, we also discovered that Leu-Val/Val-Ala pairs of amino acid residues were pivotal in the functional divergence of homomeric GPPSs and GGPPSs. Overall, our study elucidated an evolutionary path for the formation of GPPSs with different architectures from GGPPSs and uncovered the molecular mechanisms involved in this differentiation.

    more » « less
  6. Exploiting the relationships among data is a classical query optimization technique. As persistent data is increasingly being created and maintained programmatically, prior work that infers data relationships from data statistics misses an important opportunity. We present Coco, the first tool that identifies data relationships by analyzing database-backed applications. Once identified, Coco leverages the constraints to optimize the application's physical design and query execution. Instead of developing a fixed set of predefined rewriting rules, Coco employs an enumerate-test-verify technique to automatically exploit the discovered data constraints to improve query execution. Each resulting rewrite is provably equivalent to the original query. Using 14 real-world web applications, our experiments show that Coco can discover numerous data constraints from code analysis and improve real-world application performance significantly. 
    more » « less
    Free, publicly-accessible full text available February 1, 2024
  7. Reinforcement learning (RL) can help agents learn complex tasks that would be hard to specify using standard imperative programming. However, end users may have trouble personalizing their technology using RL due to a lack of technical expertise. Prior work has explored means of supporting end users after a problem for the RL agent to solve has been defined. Little work, however, has explored how to support end users when defining this problem. We propose a tool to provide structured support for end users defining problems for RL agents. Through this tool, users can (i) directly and indirectly specify the problem as a Markov decision process (MDP); (ii) receive automatic suggestions on possible MDP changes that would enhance training time and accuracy; and (iii) revise the MDP after training the agent to solve it. We believe this work will help reduce barriers to using RL and contribute to the existing literature on designing human-in-the-loop systems. 
    more » « less