Browsing by Author "Brown, Chris"
Now showing 1 - 12 of 12
Results Per Page
Sort Options
- Asynchronous Technical Interviews: Reducing the Effect of Supervised Think-Aloud on Communication AbilityBehroozi, Mahnaz; Parnin, Chris; Brown, Chris (ACM, 2022-11-07)Software engineers often face a critical test before landing a jobÐ passing a technical interview. During these sessions, candidates must write code while thinking aloud as they work toward a solution to a problem under the watchful eye of an interviewer. While thinking aloud during technical interviews gives interviewers a picture of candidates’ problem-solving ability, surprisingly, these types of interviews often prevent candidates from communicating their thought process effectively. To understand if poor performance related to interviewer presence can be reduced while preserving communication and technical skills, we introduce asynchronous technical interviewsÐwhere candidates submit recordings of think-aloud and coding.We compare this approach to traditional whiteboard interviews and find that, by eliminating interviewer supervision, asynchronicity significantly improved the clarity of think-aloud via increased informativeness and reduced stress. Moreover, we discovered asynchronous technical interviews preserved, and in some cases even enhanced, technical problem-solving strategies and code quality. This work offers insight into asynchronous technical interviews as a design for supporting communication during interviews, and discusses trade-offs and guidelines for implementing this approach in software engineering hiring practices.
- Audacity 1.3Brown, Chris (2011-05-01)This module covers the use of Audacity 1.3 hosted on an IBM Cloud Instance. Topics covered include accessing and running Audacity, and manipulating audio files such as splitting, copying, pasting, merging, and exporting.
- Demystifying regular expression bugs: A comprehensive study on regular expression bug causes, fixes, and testingWang, Peipei; Brown, Chris; Jennings, Jamie A.; Stolee, Kathryn T. (Springer, 2021-11-05)Regular expressions cause string-related bugs and open security vulnerabilities for DOS attacks. However, beyond ReDoS (Regular expression Denial of Service), little is known about the extent to which regular expression issues affect software development and how these issues are addressed in practice. We conduct an empirical study of 356 regex-related bugs from merged pull requests in Apache, Mozilla, Facebook, and Google GitHub repositories. We identify and classify the nature of the regular expression problems, the fixes, and the related changes in the test code. The most important findings in this paper are as follows: 1) incorrect regular expression semantics is the dominant root cause of regular expression bugs (165/356, 46.3%). The remaining root causes are incorrect API usage (9.3%) and other code issues that require regular expression changes in the fix (29.5%), 2) fixing regular expression bugs is nontrivial as it takes more time and more lines of code to fix them compared to the general pull requests, 3) most (51%) of the regex-related pull requests do not contain test code changes. Certain regex bug types (e.g., compile error, performance issues, regex representation) are less likely to include test code changes than others, and 4) the dominant type of test code changes in regex-related pull requests is test case addition (75%). The results of this study contribute to a broader understanding of the practical problems faced by developers when using, fixing, and testing regular expressions.
- DeSQL: Interactive Debugging of SQL in Data-Intensive Scalable ComputingHaroon, Sabaat; Brown, Chris; Gulzar, Muhammad Ali (ACM, 2024-07-12)SQL is the most commonly used front-end language for data-intensive scalable computing (DISC) applications due to its broad presence in new and legacy workflows and shallow learning curve. However, DISC-backed SQL introduces several layers of abstraction that significantly reduce the visibility and transparency of workflows, making it challenging for developers to find and fix errors in a query. When a query returns incorrect outputs, it takes a non-trivial effort to comprehend every stage of the query execution and find the root cause among the input data and complex SQL query. We aim to bring the benefits of step-through interactive debugging to DISC-powered SQL with DeSQL. Due to the declarative nature of SQL, there are no ordered atomic statements to place a breakpoint to monitor the flow of data. DeSQL’s automated query decomposition breaks a SQL query into its constituent sub-queries, offering natural locations for setting breakpoints and monitoring intermediate data. However, due to advanced query optimization and translation in DISC systems, a user query rarely matches the physical execution, making it challenging to associate subqueries with their intermediate data. DeSQL performs fine-grained taint analysis to dynamically map the subqueries to their intermediate data, while also recognizing subqueries removed by the optimizers. For such subqueries, DeSQL efficiently regenerates the intermediate data from a nearby subquery’s data. On the popular TPC-DC benchmark, DeSQL provides a complete debugging view in 13% less time than the original job time while incurring an average overhead of 10% in addition to retaining Apache Spark’s scalability. In a user study comprising 15 participants engaged in two debugging tasks, we find that participants utilizing DeSQL identify the root cause behind a wrong query output in 74% less time than the de-facto, manual debugging.
- DevCoach: Supporting Students in Learning the Software Development Life Cycle at Scale with Generative AgentsWang, Tianjia; Ramanujan, Ramaraja; Lu, Yi; Mao, Chenyu; Chen, Yan; Brown, Chris (ACM, 2024-07-09)Supporting novice computer science students in learning the software development life cycle (SDLC) at scale is vital for ensuring the quality of future software systems. However, this presents unique challenges, including the need for effective interactive collaboration and access to diverse skill sets of members in the software development team. To address these problems, we present “DevCoach”, an online system designed to support students learning the SDLC at scale by interacting with generative agents powered by large language models simulating members with different roles in a software development team. Our preliminary user study results reveal that DevCoach improves the experiences and outcomes for students, with regard to learning concepts in SDLC’s “Plan and Design” and “Develop” phases.We aim to use our findings to enhance DevCoach to support the entire SDLC workflow by incorporating additional simulated roles and enabling students to choose their project topics. Future studies will be conducted in an online Software Engineering class at our institution, aiming to explore and inspire the development of intelligent systems that provide comprehensive SDLC learning experiences to students at scale.
- An Empirical Study on Current Practices and Challenges of Core AR/VR DevelopersBose, Dibyendu Brinto; Brown, Chris (ACM, 2024-10-27)Augmented reality (AR) and virtual reality (VR) applications are increasingly integral to modern society. Core AR/VR developers, pivotal in crafting these advanced technologies, face significant challenges throughout the software development lifecycle. In this context, ‘core AR/VR developers’ refers to professionals who actively engage in developing AR/VR technologies, including researchers and developers. We surveyed such professionals to directly understand these challenges and received 48 responses. Our findings categorize the unique challenges into three major stages of SDLC - Design, Implementation, Testing that core AR/VR developers pointed out. These challenges include creating immersive experiences, complexity in 3D interaction, cross-platform compatibility, and reproducing bugs. This study highlights significant AR/VR development obstacles and provides foundational insights for future research to improve development practices and tools in this rapidly evolving field.
- An Exploratory Mixed-methods Study on General Data Protection Regulation (GDPR) Compliance in Open-Source SoftwareFranke, Lucas; Liang, Huayu; Farzanehpour, Sahar; Brantly, Aaron F.; Davis, James C.; Brown, Chris (ACM, 2024-10-24)Background: Governments worldwide are considering data privacy regulations. These laws, such as the European Union’s General Data Protection Regulation (GDPR), require software developers to meet privacy-related requirements when interacting with users’ data. Prior research describes the impact of such laws on software development, but only for commercial software. Although opensource software is commonly integrated into regulated software, and thus must be engineered or adapted for compliance, we do not know how such laws impact open-source software development. Aims: To understand how data privacy laws affect open-source software (OSS) development, we focus on the European Union’s GDPR, as it is the most prominent such law. We investigated how GDPR compliance activities influence OSS developer activity (RQ1), how OSS developers perceive fulfilling GDPR requirements (RQ2), the most challenging GDPR requirements to implement (RQ3), and how OSS developers assess GDPR compliance (RQ4). Method:We distributed an online survey to explore perceptions of GDPR implementations from open-source developers (N=56). To augment this analysis, we further conducted a repository mining study to analyze development metrics on pull requests (N=31,462) submitted to open-source GitHub repositories. Results: Our results suggest GDPR policies complicate OSS development and introduce challenges, primarily regarding the management of users’ data, implementation costs and time, and assessments of compliance. Moreover, we observed negative perceptions of the GDPR from OSS developers and significant increases in development activity, in particular metrics related to coding and reviewing, on GitHub pull requests related to GDPR compliance. Conclusions: Our findings provide future research directions and implications for improving data privacy policies, motivating the need for relevant resources and automated tools to support data privacy regulation implementation and compliance efforts in OSS.
- Exploring Disparities in Student and Practitioner Perceptions of Skill Proficiency with SE Gap AwarenessGruber, Sean; Govan, Grace; Brown, Chris (ACM, 2024-07-09)Software engineering (SE) is constantly changing and evolving, increasing the gaps in knowledge and skills that students need to become productive software engineers in industry. To address the gaps in SE education, this paper introduces SE Gap Awareness– an online platform to increase awareness of gaps from industry professionals using gamification and provide resources to help users improve on SE skills. We conducted a preliminary evaluation by engaging with practitioners to identify gaps they perceive in SE education and perform a user study to students’ self-assessment of gaps and usage of our system. Our findings show students rank their skills higher than practitioners in soft, hard, and coding skills, and found SE Gap Awareness useful for increasing awareness of gaps and exploring resources concerning deficient skills. Based on our initial tool and evaluation, we provide implications for future systems to mitigate gaps in SE education.
- A First Look at the General Data Protection Regulation (GDPR) in Open-Source SoftwareFranke, Lucas; Liang, Huayu; Brantly, Aaron F.; Davis, James C.; Brown, Chris (ACM, 2024-04-14)This poster describes work on the General Data Protection Regulation (GDPR) in open-source software. Although open-source software is commonly integrated into regulated software, and thus must be engineered or adapted for compliance, we do not know how such laws impact open-source software development. We surveyed open-source developers (N=47) to understand their experiences and perceptions of GDPR. We learned many engineering challenges, primarily regarding the management of users’ data and assessments of compliance. We call for improved policy-related resources, especially tools to support data privacy regulation implementation and compliance in open-source software.
- Nudging Developers to Participate in SE ResearchBrown, Chris (2022-05-17)Software engineering (SE) research seeks to create, investigate, and improve tools and processes for developing and maintaining software applications. To conduct such research, it is valuable for researchers to find and recruit participants representative of their target audience to complete experiments. However, participants in most SE user studies are not professional software engineers—but Computer Science students, anonymous users, or no humans. This work aims to improve the recruitment of developers to participate in research experiments by proposing a novel online system, SE Participants, that nudges software engineers to participate in studies by acknowledging their efforts and contributions to SE research.
- Pure Data ModuleScott, Conor (2011-05-06)This is the manual for the Pure Data (Pd) Module. Within this directory you will find the source for Pd and pd-l2ork (source and precompiled binary), several Pd tutorials and the patches that accompany them, as well as other pertinent information to the module.
- Securing Agile: Assessing the Impact of Security Activities on Agile DevelopmentThool, Arpit; Brown, Chris (ACM, 2024-06-18)Software systems are expected to be secure and robust. To verify and ensure software security, it is vital to include security activities, or development practices to detect and prevent security vulnerabilities, into the software development process. Agile software development is a popular software engineering (SE) process used by many organizations and development teams. However, while Agile aims to be a lightweight and responsive process, security activities are typically more cumbersome and involve more documentation and tools–violating the core principles of Agile. This work investigates the impact of security activities on various aspects of Agile development. To understand how software engineers perceive incorporating security practices into Agile methodologies, we distributed an online survey to collect data from software practitioners with experience working in Agile teams. Our results from 34 survey participants show most software practitioners believe security activities are beneficial to development overall but lack confidence in their impact on the security of software systems. Our findings provide insight into how security activities affect Agile development and provide implications to help SE teams better incorporate security activities into implementing Agile development processes.