Recommending Comprehensive Solutions for Programming Tasks by Mining Crowd Knowledge

03/18/2019
by   Rodrigo F. G. Silva, et al.
0

Developers often search for relevant code examples on the web for their programming tasks. Unfortunately, they face two major problems. First, the search is impaired due to a lexical gap between their query (task description) and the information associated with the solution. Second, the retrieved solution may not be comprehensive, i.e., the code segment might miss a succinct explanation. These problems make the developers browse dozens of documents in order to synthesize an appropriate solution. To address these two problems, we propose CROKAGE (Crowd Knowledge Answer Generator), a tool that takes the description of a programming task (the query) and provides a comprehensive solution for the task. Our solutions contain not only relevant code examples but also their succinct explanations. Our proposed approach expands the task description with relevant API classes from Stack Overflow Q&A threads and then mitigates the lexical gap problems. Furthermore, we perform natural language processing on the top quality answers and then return such programming solutions containing code examples and code explanations unlike earlier studies. We evaluate our approach using 48 programming queries and show that it outperforms six baselines including the state-of-art by a statistically significant margin. Furthermore, our evaluation with 29 developers using 24 tasks (queries) confirms the superiority of CROKAGE over the state-of-art tool in terms of relevance of the suggested code examples, benefit of the code explanations and the overall solution quality (code + explanation).

READ FULL TEXT
research
08/05/2021

Improved Retrieval of Programming Solutions With Code Examples Using a Multi-featured Score

Developers often depend on code search engines to obtain solutions for t...
research
06/12/2020

Task-Oriented API Usage Examples Prompting Powered By Programming Task Knowledge Graph

Programming tutorials are often created to demonstrate programming tasks...
research
07/11/2023

Explaining Competitive-Level Programming Solutions using LLMs

In this paper, we approach competitive-level programming problem-solving...
research
09/15/2022

Do Cloud Developers Prefer CLIs or Web Consoles? CLIs Mostly, Though It Varies by Task

Despite the increased importance of Cloud tooling, and many large-scale ...
research
07/23/2018

Effective Reformulation of Query for Code Search using Crowdsourced Knowledge and Extra-Large Data Analytics

Software developers frequently issue generic natural language queries fo...
research
05/28/2020

Large-Scale Microtask Programming

To make microtask programming more efficient and reduce the potential fo...
research
05/03/2023

GPTutor: a ChatGPT-powered programming tool for code explanation

Learning new programming skills requires tailored guidance. With the eme...

Please sign up or login with your details

Forgot password? Click here to reset