GitHub Copilot AI pair programmer: Asset or Liability?

06/30/2022
by   Arghavan Moradi Dakhel, et al.
0

Automatic program synthesis is a long-lasting dream in software engineering. Recently, a promising Deep Learning (DL) based solution, called Copilot, has been proposed by Open AI and Microsoft as an industrial product. Although some studies evaluate the correctness of Copilot solutions and report its issues, more empirical evaluations are necessary to understand how developers can benefit from it effectively. In this paper, we study the capabilities of Copilot in two different programming tasks: (1) generating (and reproducing) correct and efficient solutions for fundamental algorithmic problems, and (2) comparing Copilot's proposed solutions with those of human programmers on a set of programming tasks. For the former, we assess the performance and functionality of Copilot in solving selected fundamental problems in computer science, like sorting and implementing basic data structures. In the latter, a dataset of programming problems with human-provided solutions is used. The results show that Copilot is capable of providing solutions for almost all fundamental algorithmic problems, however, some solutions are buggy and non-reproducible. Moreover, Copilot has some difficulties in combining multiple methods to generate a solution. Comparing Copilot to humans, our results show that the correct ratio of human solutions is greater than Copilot's correct ratio, while the buggy solutions generated by Copilot require less effort to be repaired. While Copilot shows limitations as an assistant for developers especially in advanced programming tasks, as highlighted in this study and previous ones, it can generate preliminary solutions for basic programming tasks.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/30/2023

Understanding the Usability of AI Programming Assistants

The software engineering community recently has witnessed widespread dep...
research
11/15/2021

Choose Your Programming Copilot: A Comparison of the Program Synthesis Performance of GitHub Copilot and Genetic Programming

GitHub Copilot, an extension for the Visual Studio Code development envi...
research
05/19/2023

Comparing Software Developers with ChatGPT: An Empirical Investigation

The advent of automation in particular Software Engineering (SE) tasks h...
research
10/31/2019

Explicit Programming Strategies

Software developers solve a diverse and wide range of problems. While so...
research
01/28/2023

Navigating Complexity in Software Engineering: A Prototype for Comparing GPT-n Solutions

Navigating the diverse solution spaces of non-trivial software engineeri...
research
05/23/2023

ChatGPT, Can You Generate Solutions for my Coding Exercises? An Evaluation on its Effectiveness in an undergraduate Java Programming Course

In this study, we assess the efficacy of employing the ChatGPT language ...
research
03/31/2023

Pair Programming with Large Language Models for Sampling and Estimation of Copulas

Without writing a single line of code by a human, an example Monte Carlo...

Please sign up or login with your details

Forgot password? Click here to reset