Open Access. Powered by Scholars. Published by Universities.®

Computer Sciences Commons™

Open Access. Powered by Scholars. Published by Universities.®

Software Engineering

Institution
Keyword
Publication Year
Publication
Publication Type
File Type

Articles 1531 - 1560 of 4322

Full-Text Articles in Computer Sciences

Optimising The Fit Of Stack Overflow Code Snippets Into Existing Code, Brittany Reid, Christoph Treude, Markus Wagner Jul 2020

Optimising The Fit Of Stack Overflow Code Snippets Into Existing Code, Brittany Reid, Christoph Treude, Markus Wagner

Research Collection School Of Computing and Information Systems

Software developers often reuse code from online sources such as Stack Overflow within their projects. However, the process of searching for code snippets and integrating them within existing source code can be tedious. In order to improve efficiency and reduce time spent on code reuse, we present an automated code reuse tool for the Eclipse IDE (Integrated Developer Environment), NLP2TestableCode. NLP2TestableCode can not only search for Java code snippets using natural language tasks, but also evaluate code snippets based on a user’s existing code, modify snippets to improve fit and correct errors, before presenting the user with the best snippet, …


A Process Model For Designing Performance Dashboard Using Visualization Techniques, Bahar Muhammad Nasim Jul 2020

A Process Model For Designing Performance Dashboard Using Visualization Techniques, Bahar Muhammad Nasim

Student Works (2020-2029)

Data visualization is the presentation of data in a pictorial or graphical format. It enables decision-makers to see data analysis presented visually, so they can observe difficult concepts or identify new patterns. With interactive visualization, we can take the concept a step further by using technology to drill down into charts and graphs for more detail, interactively changing what data see and how it is processed. With the help of data visualization, it is expected to promote creative data exploration. A performance dashboard is one of the most common use cases for data visualization, and it enables decision-makers such as …


Enhancing The Performance Of Ir-Based Traceability Recovery Of Requirement Artifacts Using Noun Phrases, Dafaalla Abdelrahman Mashahi Khalafalla Jul 2020

Enhancing The Performance Of Ir-Based Traceability Recovery Of Requirement Artifacts Using Noun Phrases, Dafaalla Abdelrahman Mashahi Khalafalla

Student Works (2020-2029)

Requirement traceability can be considered as a measure of software quality to help achieve validation, verification, and reusability. Neglecting traceability leads to less maintainable software. Creating traceability links after-the-fact, known as traceability recovery, is a tedious and time-consuming process when it is done manually. Therefore, information retrieval (IR) methods have been used to automatically identify traceability links between the artifacts. However, as a result of limitations of the software engineer and the IR techniques, the performance of the IR methods is negatively affected. There is no IR method that is able to recover traceability links between artifacts with high precision …


Privacy-Enhanced Remote Data Integrity Checking With Updatable Timestamp, Tong Wu, Guomin Yang, Yi Mu, Rongmao Chen, Shengmin Xu Jul 2020

Privacy-Enhanced Remote Data Integrity Checking With Updatable Timestamp, Tong Wu, Guomin Yang, Yi Mu, Rongmao Chen, Shengmin Xu

Research Collection School Of Computing and Information Systems

Remote data integrity checking (RDIC) enables clients to verify whether the outsourced data is intact without keeping a copy locally or downloading it. Nevertheless, the existing RDIC schemes do not support the pay-as-you-go (PAYG) payment model, where the payment is decided by the volume and duration of the outsourced data. Specifically, none of the existing works have considered the client’s control over changes in storage duration. In this paper, we propose an RDIC scheme to simultaneously check the data content and storage duration represented by an updatable timestamp via the third-party auditor (TPA). Also, our proposed scheme achieves indistinguishable privacy …


Psc2code: Denoising Code Extraction From Programming Screencasts, Lingfeng Bao, Zhenchang Xing, Xin Xia, David Lo, Minghui Wu, Xiaohu Yang Jul 2020

Psc2code: Denoising Code Extraction From Programming Screencasts, Lingfeng Bao, Zhenchang Xing, Xin Xia, David Lo, Minghui Wu, Xiaohu Yang

Research Collection School Of Computing and Information Systems

Programming screencasts have become a pervasive resource on the Internet, which help developers learn new programming technologies or skills. The source code in programming screencasts is an important and valuable information for developers. But the streaming nature of programming screencasts (i.e., a sequence of screen-captured images) limits the ways that developers can interact with the source code in the screencasts. Many studies use the Optical Character Recognition (OCR) technique to convert screen images (also referred to as video frames) into textual content, which can then be indexed and searched easily. However, noisy screen images significantly affect the quality of source …


Mining And Predicting Micro-Process Patterns Of Issue Resolution For Open Source Software Projects, Yiran Wang, Jian Cao, David Lo Jul 2020

Mining And Predicting Micro-Process Patterns Of Issue Resolution For Open Source Software Projects, Yiran Wang, Jian Cao, David Lo

Research Collection School Of Computing and Information Systems

Addressing issue reports is an integral part of open source software (OSS) projects. Although several studies have attempted to discover the factors that affect issue resolution, few pay attention to the underlying micro-process patterns of resolution processes. Discovering these micro-patterns will help us understand the dynamics of issue resolution processes so that we can manage and improve them in better ways. Of the various types of issues, those relating to corrective maintenance account for nearly half hence resolving these issues efficiently is critical for the success of OSS projects. Therefore, we apply process mining techniques to discover the micro-patterns of …


Keen2act: Activity Recommendation In Online Social Collaborative Platforms, Roy Ka-Wei Lee, Thong Hoang, Richard J. Oentaryo, David Lo Jul 2020

Keen2act: Activity Recommendation In Online Social Collaborative Platforms, Roy Ka-Wei Lee, Thong Hoang, Richard J. Oentaryo, David Lo

Research Collection School Of Computing and Information Systems

Social collaborative platforms such as GitHub and Stack Overflow have been increasingly used to improve work productivity via collaborative efforts. To improve user experiences in these platforms, it is desirable to have a recommender system that can suggest not only items (e.g., a GitHub repository) to a user, but also activities to be performed on the suggested items (e.g., forking a repository). To this end, we propose a new approach dubbed Keen2Act, which decomposes the recommendation problem into two stages: the Keen and Act steps. The Keen step identifies, for a given user, a (sub)set of items in which he/she …


Sentiment Analysis Over Collaborative Relationships In Open Source Software Projects, Lingjia Li, Jian Cao, David Lo Jul 2020

Sentiment Analysis Over Collaborative Relationships In Open Source Software Projects, Lingjia Li, Jian Cao, David Lo

Research Collection School Of Computing and Information Systems

Sentiments and collaboration efficiency are key factors in the success of the open source software (OSS) development process. However, in the software engineering domain, no studies have been conducted to analyze the effect between collaborators' sentiments, and the role of sentiment in collaborative relationships during the development process. In this study, we apply sentiment analysis and statistical analysis on collaboration artifacts over five projects on GitHub. We use sentiment consistency to quantify the relation between sentiments in collaborative relationships. It is found that sentiment consistency is positively correlated with the closeness of collaborative relationships and collaborators' overall sentiment states. We …


Objsim: Efficient Testing Of Cyber-Physical Systems, Jun Sun, Zijiang Yang Jul 2020

Objsim: Efficient Testing Of Cyber-Physical Systems, Jun Sun, Zijiang Yang

Research Collection School Of Computing and Information Systems

Cyber-physical systems (CPSs) play a critical role in automating public infrastructure and thus attract wide range of attacks. Assessing the effectiveness of defense mechanisms is challenging as realistic sets of attacks to test them against are not always available. In this short paper, we briefly describe smart fuzzing, an automated, machine learning guided technique for systematically producing test suites of CPS network attacks. Our approach uses predictive ma- chine learning models and meta-heuristic search algorithms to guide the fuzzing of actuators so as to drive the CPS into different unsafe physical states. The approach has been proven effective on two …


Recovering Fitness Gradients For Interprocedural Boolean Flags In Search-Based Testing, Yun Lin, Jun Sun, Gordon Fraser, Ziheng Xiu, Ting Liu, Jin Song Dong Jul 2020

Recovering Fitness Gradients For Interprocedural Boolean Flags In Search-Based Testing, Yun Lin, Jun Sun, Gordon Fraser, Ziheng Xiu, Ting Liu, Jin Song Dong

Research Collection School Of Computing and Information Systems

In Search-based Software Testing (SBST), test generation is guided by fitness functions that estimate how close a test case is to reach an uncovered test goal (e.g., branch). A popular fitness function estimates how close conditional statements are to evaluating to true or false, i.e., the branch distance. However, when conditions read Boolean variables (e.g., if(x && y)), the branch distance provides no gradient for the search, since a Boolean can either be true or false. This flag problem can be addressed by transforming individual procedures such that Boolean flags are replaced with numeric comparisons that provide better guidance for …


Functional Programming For Systems Software: Implementing Baremetal Programs In Habit, Donovan Ellison Jul 2020

Functional Programming For Systems Software: Implementing Baremetal Programs In Habit, Donovan Ellison

University Honors Theses

Programming in a baremetal environment, directly on top of hardware with very little to help manage memory or ensure safety, can be dangerous even for experienced programmers. Programming languages can ease the burden on developers and sometimes take care of entire sets of errors. This is not the case for a language like C that will do almost anything you want, for better or worse. To operate in a baremetal environment often requires direct control over memory, but it would be nice to have that capability without sacrificing safety guarantees. Rust is a new language that aims to fit this …


Active Fuzzing For Testing And Securing Cyber-Physical Systems, Yuqi Chen, Bohan Xuan, Christopher M. Poskitt, Jun Sun, Fan Zhang Jul 2020

Active Fuzzing For Testing And Securing Cyber-Physical Systems, Yuqi Chen, Bohan Xuan, Christopher M. Poskitt, Jun Sun, Fan Zhang

Research Collection School Of Computing and Information Systems

Cyber-physical systems (CPSs) in critical infrastructure face a pervasive threat from attackers, motivating research into a variety of countermeasures for securing them. Assessing the effectiveness of these countermeasures is challenging, however, as realistic benchmarks of attacks are difficult to manually construct, blindly testing is ineffective due to the enormous search spaces and resource requirements, and intelligent fuzzing approaches require impractical amounts of data and network access. In this work, we propose active fuzzing, an automatic approach for finding test suites of packet-level CPS network attacks, targeting scenarios in which attackers can observe sensors and manipulate packets, but have no existing …


Automated Synthesis Of Local Time Requirement For Service Composition, Étienne André, Tian Huat Tan, Manman Chen, Shuang Liu, Jun Sun, Yang Liu, Jin Song Dong Jul 2020

Automated Synthesis Of Local Time Requirement For Service Composition, Étienne André, Tian Huat Tan, Manman Chen, Shuang Liu, Jun Sun, Yang Liu, Jin Song Dong

Research Collection School Of Computing and Information Systems

Service composition aims at achieving a business goal by composing existing service-based applications or components. The response time of a service is crucial, especially in time-critical business environments, which is often stated as a clause in service-level agreements between service providers and service users. To meet the guaranteed response time requirement of a composite service, it is important to select a feasible set of component services such that their response time will collectively satisfy the response time requirement of the composite service. In this work, we use the BPEL modeling language that aims at specifying Web services. We extend it …


Spinfer: Inferring Semantic Patches For The Linux Kernel, Lucas Serrano, Van-Anh Nguyen, Ferdian Thung, Lingxiao Jiang, David Lo, Julia Lawall, Gilles Muller Jul 2020

Spinfer: Inferring Semantic Patches For The Linux Kernel, Lucas Serrano, Van-Anh Nguyen, Ferdian Thung, Lingxiao Jiang, David Lo, Julia Lawall, Gilles Muller

Research Collection School Of Computing and Information Systems

In a large software system such as the Linux kernel, there is a continual need for large-scale changes across many source files, triggered by new needs or refined design decisions. In this paper, we propose to ease such changes by suggesting transformation rules to developers, inferred automatically from a collection of examples. Our approach can help automate large-scale changes as well as help understand existing large-scale changes, by highlighting the various cases that the developer who performed the changes has taken into account. We have implemented our approach as a tool, Spinfer. We evaluate Spinfer on a range of challenging …


Global Pac Bounds For Learning Discrete Time Markov Chains, Hugo Bazille, Blaise Genest, Cyrille Jegourel, Jun Sun Jul 2020

Global Pac Bounds For Learning Discrete Time Markov Chains, Hugo Bazille, Blaise Genest, Cyrille Jegourel, Jun Sun

Research Collection School Of Computing and Information Systems

Learning models from observations of a system is a powerful tool with many applications. In this paper, we consider learning Discrete Time Markov Chains (DTMC), with different methods such as frequency estimation or Laplace smoothing. While models learnt with such methods converge asymptotically towards the exact system, a more practical question in the realm of trusted machine learning is how accurate a model learnt with a limited time budget is. Existing approaches provide bounds on how close the model is to the original system, in terms of bounds on local (transition) probabilities, which has unclear implication on the global behavior. …


Automatic Android Deprecated-Api Usage Update By Learning From Single Updated Example, Stefanus A. Haryono, Ferdian Thung, Hong Jin Kang, Lucas Serrano, Gilles Muller, Julia Lawall, David Lo, Lingxiao Jiang Jul 2020

Automatic Android Deprecated-Api Usage Update By Learning From Single Updated Example, Stefanus A. Haryono, Ferdian Thung, Hong Jin Kang, Lucas Serrano, Gilles Muller, Julia Lawall, David Lo, Lingxiao Jiang

Research Collection School Of Computing and Information Systems

Due to the deprecation of APIs in the Android operating system, developers have to update usages of the APIs to ensure that their applications work for both the past and current versions of Android. Such updates may be widespread, non-trivial, and time-consuming. Therefore, automation of such updates will be of great benefit to developers. AppEvolve, which is the state-of-the-art tool for automating such updates, relies on having before- and after-update examples to learn from. In this work, we propose an approach named CocciEvolve that performs such updates using only a single after-update example. CocciEvolve learns edits by extracting the relevant …


Spring 2020 Jun 2020

Spring 2020

In The Loop

Letter from the Dean: Advancing Past Adversity; Look Who's Talking: Expert Talk Series; Seen and Heard; Keeping It Real: Client Web Projects for Students; OMG, It's DIBS, LOL!; X-ray Vision: Brian Andrews bones up on anthropomorphic entities and virtual realty in an audacious Project Bluelight film; Nothing But Net: Shannon Linares scores a win for female and first-generation college students in network engineering and cybersecurity careers; Mix Master: Claire Rosas blends disciplines and social synergy in her designs, from egg-ceptional typography to adaptive ergs


Integrating Finance Dictionary In Lexicon-Based Approach With Machine Learning Algorithm To Analyse The Impact Of Opec News Sentiment On Financial Market, Ling Wu Jun 2020

Integrating Finance Dictionary In Lexicon-Based Approach With Machine Learning Algorithm To Analyse The Impact Of Opec News Sentiment On Financial Market, Ling Wu

Student Works (2020-2029)

Since last few decades, machine learning algorithm which trains computers to learn from experience, is one of the most rapidly developing techniques which settles in the intersection research field of statistics and computer science. This research aims to build a properly trained machine learning classifier to study the impact of Organization of Petroleum Exporting Countries (OPEC) news sentiment on stock prices of six Malaysian public listed companies (energy sector) in the main board of Bursa Malaysia. The data used in this research are collected during the period 2012-2017. To carry out the research, firstly, lexicon-based approach is used to analyze …


Increasing The Trust In Refactoring Through Visualization, Alex Bogart, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni Jun 2020

Increasing The Trust In Refactoring Through Visualization, Alex Bogart, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni

Articles

In software development, maintaining good design is essential. The process of refactoring enables developers to improve this design during development without altering the program’s existing behavior. However, this process can be time-consuming, introduce semantic errors, and be difficult for developers inexperienced with refactoring or unfamiliar with a given code base. Automated refactoring tools can help not only by applying these changes, but by identifying opportunities for refactoring. Yet, developers have not been quick to adopt these tools due to a lack of trust between the developer and the tool. We propose an approach in the form of a visualization to …


A Virtualization Based System Infrastructure For Dynamic Program Analysis, Jiaqi Hong Jun 2020

A Virtualization Based System Infrastructure For Dynamic Program Analysis, Jiaqi Hong

Dissertations and Theses Collection (Open Access)

Dynamic malware analysis schemes either run the target program as is in an isolated environment assisted by additional hardware facilities or modify it with instrumentation code statically or dynamically. The hardware-assisted schemes usually trap the target during its execution to a more privileged environment based on the available hardware events. The more privileged environment is not accessible by the untrusted kernel, thus this approach is often applied for transparent and secure kernel analysis. Nevertheless, the isolated environment induces a virtual address gap between the analyzer and the target, which hinders effective and efficient memory introspection and undermines the correctness of …


On The Relationship Between Developer Experience And Refactoring: An Exploratory Study And Preliminary Results, Eman Abdullah Alomar, Anthony Peruma, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni Jun 2020

On The Relationship Between Developer Experience And Refactoring: An Exploratory Study And Preliminary Results, Eman Abdullah Alomar, Anthony Peruma, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni

Articles

Refactoring is one of the means of managing technical debt and maintaining a healthy software structure through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that these code restructurings are mainly executed by developers who have sufficient knowledge of the system’s design, and disposing of leadership roles in their development teams. However, these surveys were mainly limited to specific projects and companies. In this paper, we explore the generalizability of the previous results though analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an expertise …


A Machine Learning Approach For Vulnerability Curation, Yang Chen, Andrew E. Santosa, Ming Yi Ang, Abhishek Sharma, Asankhaya Sharma, David Lo Jun 2020

A Machine Learning Approach For Vulnerability Curation, Yang Chen, Andrew E. Santosa, Ming Yi Ang, Abhishek Sharma, Asankhaya Sharma, David Lo

Research Collection School Of Computing and Information Systems

Software composition analysis depends on database of open-source library vulerabilities, curated by security researchers using various sources, such as bug tracking systems, commits, and mailing lists. We report the design and implementation of a machine learning system to help the curation by by automatically predicting the vulnerability-relatedness of each data item. It supports a complete pipeline from data collection, model training and prediction, to the validation of new models before deployment. It is executed iteratively to generate better models as new input data become available. We use self-training to significantly and automatically increase the size of the training dataset, opportunistically …


Mutation Testing Of Smart Contracts At Scale, Pieter Hartel, Richard Schumi Jun 2020

Mutation Testing Of Smart Contracts At Scale, Pieter Hartel, Richard Schumi

Research Collection School Of Computing and Information Systems

It is crucial that smart contracts are tested thoroughly due to their immutable nature. Even small bugs in smart contracts can lead to huge monetary losses. However, testing is not enough; it is also important to ensure the quality and completeness of the tests. There are already several approaches that tackle this challenge with mutation testing, but their effectiveness is questionable since they only considered small contract samples. Hence, we evaluate the quality of smart contract mutation testing at scale. We choose the most promising of the existing (smart contract specific) mutation operators, analyse their effectiveness in terms of killability …


Bubble-In Digital Testing System, Chaz Hampton Jun 2020

Bubble-In Digital Testing System, Chaz Hampton

Electronic Theses, Projects, and Dissertations

Bubble-In is a cloud-based test-taking system build for students and teachers. The Bubble-In system is a test-taking application that interfaces with a cloud server. The mobile applications have been built for Android and Apple devices and the webserver is hosted on Digital Ocean VPS run with Nginx. The Bubble-In application is equipped with anti-cheating mechanisms such as question-answer key scrambling, not allowing screenshots, screen recording, or leaving the application. The tests students take are sent to the webserver to be graded and have statistics calculated and displayed in easy to use format for the test creator. Instructors can use the …


Is Using Deep Learning Frameworks Free?: Characterizing Technical Debt In Deep Learning Frameworks, Jiakun Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, Shanping Li Jun 2020

Is Using Deep Learning Frameworks Free?: Characterizing Technical Debt In Deep Learning Frameworks, Jiakun Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, Shanping Li

Research Collection School Of Computing and Information Systems

Developers of deep learning applications (shortened as application developers) commonly use deep learning frameworks in their projects. However, due to time pressure, market competition, and cost reduction, developers of deep learning frameworks (shortened as framework developers) often have to sacrifice software quality to satisfy a shorter completion time. This practice leads to technical debt in deep learning frameworks, which results in the increasing burden to both the application developers and the framework developers in future development.In this paper, we analyze the comments indicating technical debt (self-admitted technical debt) in 7 of the most popular open-source deep learning frameworks. Although framework …


Revisiting Supervised And Unsupervised Methods For Effort-Aware Cross-Project Defect Prediction, Chao Ni, Xin Xia, David Lo, Xiang Chen, Qing Gu Jun 2020

Revisiting Supervised And Unsupervised Methods For Effort-Aware Cross-Project Defect Prediction, Chao Ni, Xin Xia, David Lo, Xiang Chen, Qing Gu

Research Collection School Of Computing and Information Systems

Cross-project defect prediction (CPDP), aiming to apply defect prediction models built on source projects to a target project, has been an active research topic. A variety of supervised CPDP methods and some simple unsupervised CPDP methods have been proposed. In a recent study, Zhou et al. found that simple unsupervised CPDP methods (i.e., ManualDown and ManualUp) have a prediction performance comparable or even superior to complex supervised CPDP methods. Therefore, they suggested that the ManualDown should be treated as the baseline when considering non-effort-aware performance measures (NPMs) and the ManualUp should be treated as the baseline when considering effort-aware performance …


Cc2vec: Distributed Representations Of Code Changes, Thong Hoang, Hong Jin Kang, Julia Lawall, David Lo Jun 2020

Cc2vec: Distributed Representations Of Code Changes, Thong Hoang, Hong Jin Kang, Julia Lawall, David Lo

Research Collection School Of Computing and Information Systems

Existing work on software patches often use features specific to a single task. These works often rely on manually identified features, and human effort is required to identify these features for each task. In this work, we propose CC2Vec, a neural network model that learns a representation of code changes guided by their accompanying log messages, which represent the semantic intent of the code changes. CC2Vec models the hierarchical structure of a code change with the help of the attention mechanism and usesmultiple comparison functions to identify the differences between the removed and added code. To evaluate if CC2Vec can …


The Prom Problem: Fair And Privacy-Enhanced Matchmaking With Identity Linked Wishes, Dwight Horne May 2020

The Prom Problem: Fair And Privacy-Enhanced Matchmaking With Identity Linked Wishes, Dwight Horne

Computer Science and Engineering Theses and Dissertations

In the Prom Problem (TPP), Alice wishes to attend a school dance with Bob and needs a risk-free, privacy preserving way to find out whether Bob shares that same wish. If not, no one should know that she inquired about it, not even Bob. TPP represents a special class of matchmaking challenges, augmenting the properties of privacy-enhanced matchmaking, further requiring fairness and support for identity linked wishes (ILW) – wishes involving specific identities that are only valid if all involved parties have those same wishes.

The Horne-Nair (HN) protocol was proposed as a solution to TPP along with a …


Reproducible Application Platforms For Distributed Computing Systems, John Q. Wofford Iii May 2020

Reproducible Application Platforms For Distributed Computing Systems, John Q. Wofford Iii

Computer Science ETDs

A scientific conclusion requires falsifiable evidence. Results from distributed systems research are often difficult to reproduce because these systems consist of multiple nodes, each running independent system software and communicating across inter-node devices. This work motivates, describes, and demonstrates a reproducible application platform for distributed computing systems based on a layered, container-based software stack. This system effectively moves all application software dependencies from the host to a portable container. Each layer represents a particular functionality of the software stack. The layers are modular and extensible so that results are not only repeatable, but they can also be built on to …


Exploring Usage Of Web Resources Through A Model Of Api Learning, Finn Voichick May 2020

Exploring Usage Of Web Resources Through A Model Of Api Learning, Finn Voichick

McKelvey School of Engineering Graduate Student Theses & Dissertations

Application programming interfaces (APIs) are essential to modern software development, and new APIs are frequently being produced. Consequently, software developers must regularly learn new APIs, which they typically do on the job from online resources rather than in a formal educational context. The Kelleher–Ichinco COIL model, an acronym for “Collection and Organization of Information for Learning,” was recently developed to model the entire API learning process, drawing from information foraging theory, cognitive load theory, and external memory research. We ran an exploratory empirical user study in which participants performed a programming task using the React API with the goal of …