DOI: 10.5281/zenodo.8327190
title: Replication Package for ML-EUP Conversational Agent Study

description: This is the replication package of the paper How to Support ML End-User Programmers through a Conversational Agent, published at ICSE 2024. <strong>Replication Package Files</strong> <strong>1. Forms.zip: </strong>contains the forms used to collect data for the experiment <strong>2. Experiments.zip: </strong>contains the participants’ and sandboxers’ experimental task workflow with Newton. <strong>3. Responses.zip: </strong>contains the responses collected from participants during the experiments. <strong>4. Analysis.zip:</strong> contains the data analysis scripts and results of the experiments. <strong>5. newton.zip: </strong>contains the tool we used for the WoZ experiment. <strong>Interactions.pdf: </strong>explains Figure 4 of the paper in detail by depicting the interactions of P4. <strong>TutorialStudy.pdf:</strong> script used in the experiment with and without Newton to be consistent with all participants. <strong>Woz_Script.pdf:</strong> script wizard used to maintain consistent Newton responses among the participants. <strong>1. Forms.zip</strong> The forms zip contains the following files: <strong>Demographics.pdf: </strong>a PDF form used to collect demographic information from participants before the experiments <strong>Post-Task Control (without the tool).pdf:</strong> a PDF form used to collect data from participants about challenges and interactions when performing the task without Newton <strong>Post-Task Newton (with the tool).pdf:</strong> a PDF form used to collect data from participants after the task with Newton. <strong>Post-Study Questionnaire.pdf:</strong> a PDF form used to collect data from the participant after the experiment. <strong>2. Experiments.zip</strong> The experiments zip contains two types of folders: <strong>exp[participant’s number]-c[number of dataset used for control task]e[number of dataset used for experimental task]</strong>. Example: exp1-c2e1 (experiment participant 1 - control used dataset 2, experimental used dataset 1) <strong>sandboxing[sandboxer’s number].</strong> Example: sandboxing1 (experiment with sandboxer 1) Every experiment subfolder contains: <strong>warmup.json: </strong>a JSON file with the results of Newton-Participant interactions in the chat for the warmup task. <strong>warmup.ipynb: </strong>a Jupyter notebook file with the participant’s results from the code provided by Newton in the warmup task. <strong>sample1.csv: </strong>Death Event dataset. <strong>sample2.csv: </strong>Heart Disease dataset. <strong>tool.ipynb: </strong>a Jupyter notebook file with the participant’s results from the code provided by Newton in the experimental task. <strong>python.ipynb: </strong>a Jupyter notebook file with the participant’s results from the code they tried during the control task. <strong>results.json:</strong> a JSON file with the results of Newton-Participant interactions in the chat for the task with Newton. To load an experiment chat log into Newton, add the following code to the notebook: <pre><code class="language-python">import anachat import json with open("result.json", "r") as f: anachat.comm.COMM.history = json.load(f) </code></pre> Then, click on the notebook name inside Newton chat Note 1: the subfolder for P6 is exp6-e2c1-serverdied because the experiment server died before we were able to save the logs. We reconstructed them using the notebook newton_remake.ipynb based on the video recording. Note 2: The sandboxing occurred during the development of Newton. We did not collect all the files, and the format of JSON files is different than the one supported by the attached version of Newton. <strong>3. Responses.zip</strong> The responses zip contains the following files: <strong>demographics.csv: </strong>a CSV file containing the responses collected from participants using the demographics form <strong>task_newton.csv: </strong>a CSV file containing the responses collected from participants using the post-task newton form. <strong>task_control.csv:</strong> a CSV file containing the responses collected from participants using the post-task control form. <strong>post_study.csv:</strong> a CSV file containing the responses collected from participants using the post-study control form. <strong>4. Analysis.zip</strong> The analysis zip contains the following files: <strong>1.Challenge.ipynb:</strong> a Jupyter notebook file that performs the statistical tests and creates the perceptions of challenges figure. <strong>2.Interactions.py: </strong>a Python file that creates the participants’ JSON files. <strong>3.Interactions.Graph.ipynb: </strong>a Jupyter notebook file that creates the participant’s interaction figure. <strong>4.Interactions.Count.ipynb:</strong> a Jupyter notebook file that counts participants’ interaction with each figure. <strong>config_interactions.py:</strong> this file contains the definitions of interaction colors and grouping <strong>interactions.json: </strong>a JSON file with the interactions during the Newton task of each participant based on the categorization. <strong>requirements.txt: </strong>dependencies required to run the code to generate the graphs and json analysis. To run the analyses, please follow the steps: 1- Extract Analysis.zip and cd into the directory 2- Install Python 3.10, and then the analysis dependencies with the following command: <pre><code class="language-bash">pip install -r requirements.txt</code></pre> 3- Run Jupyter Notebook/Lab and execute all cells of <strong>1.Challenge.ipynb</strong>. It will generate the challenges figure. 4- Run <strong>2.Interactions.py</strong> using the following command: <pre><code class="language-bash">python 2.Interactions.py</code></pre> This file was created manually by individually categorizing each interaction of the participants. The execution will generate the file interactions.json with the graph definitions of the interactions. 5- Run Jupyter Notebook/Lab and execute all cells of <strong>3.Interactions.Graph.ipynb</strong>. It will create the interactions graph visualization. 6- Run Jupyter Notebook/Lab and execute all cells of <strong>4.Interactions.Count.ipynb</strong>. It will create the interactions table. <strong>5. newton.zip</strong> The newton zip contains the <strong>source code of the Jupyter Lab extension</strong> we used in the experiments. Read the <strong>README.md</strong> file inside it for instructions on how to install and run it.
description: Acknowledgments: National Science Foundation under Grant Numbers 2236198, 2235601, 2247929, 2303042, and 2303043