GitHub Copilot AI pair programmer: Asset or Liability?

Authors: Arghavan Moradi Dakhel (Jack), Vahid Majdinasab (Jack), Amin Nikanjam (Jack), Foutse Khomh (Jack), Michel C. Desmarais (Jack), Zhen Ming (Jack), Jiang

20 pages, 6 figures
AI-generated keywords: Software Engineering Copilot Deep Learning Algorithmic Problems Programming Tasks

AI-generated Key Points

⚠The license of the paper does not allow us to build upon its content and the key points are generated using the paper metadata rather than the full article.

  • Open AI and Microsoft proposed a Deep Learning (DL) based solution called Copilot for automatic program synthesis in software engineering.
  • More empirical evaluations are necessary to understand how developers can effectively benefit from Copilot.
  • The study assessed the capabilities of Copilot in two different programming tasks: generating correct and efficient solutions for fundamental algorithmic problems, and comparing its proposed solutions with those generated by human programmers on a set of programming tasks.
  • Copilot is capable of providing solutions for almost all fundamental algorithmic problems, but some solutions were buggy and non-reproducible. Additionally, it had difficulties combining multiple methods to generate a solution.
  • While the correct ratio of human solutions was greater than Copilot's correct ratio, buggy solutions generated by Copilot required less effort to repair.
  • Further research is necessary to improve the accuracy and effectiveness of Copilot as an industrial product.
Also access our AI generated: Comprehensive summary, Lay summary, Blog-like article; or ask questions about this paper to our AI assistant.

Abstract: 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.

Submitted to arXiv on 30 Jun. 2022

Tools for this paper

Explain it differently 3 free rewrites left today
Export BibTeX · RIS (Zotero, Mendeley, EndNote) · Markdown (Notion, Obsidian) · Premium
Citation alerts Premium
Journal club Slides to present it Premium
For journalists Press kit and hype check Premium

Ask questions about this paper to our AI assistant

You can also chat with multiple papers at once here.

⚠The license of the paper does not allow us to build upon its content and the AI assistant only knows about the paper metadata rather than the full article.

AI assistant instructions?

Results of the summarizing process for the arXiv paper: 2206.15331v1

⚠This paper's license doesn't allow us to build upon its content and the summarizing process is here made with the paper's metadata rather than the article.

  • Comprehensive Summary
  • Key points
  • Layman's Summary
  • Blog article
The field of software engineering has long sought an automatic program synthesis solution, and recently, Open AI and Microsoft proposed a promising Deep Learning (DL) based solution called Copilot. Studies have evaluated the correctness of Copilot solutions and reported issues; however, more empirical evaluations are necessary to understand how developers can effectively benefit from it. This paper presents a study that assesses the capabilities of Copilot in two different programming tasks: generating correct and efficient solutions for fundamental algorithmic problems, and comparing its proposed solutions with those generated by human programmers on a set of programming tasks. For the first task, the researchers assessed the performance and functionality of Copilot in solving selected fundamental problems in computer science such as sorting and implementing basic data structures. The results showed that Copilot is capable of providing solutions for almost all fundamental algorithmic problems; however, some solutions were buggy and non-reproducible. Additionally, Copilot had difficulties combining multiple methods to generate a solution. In the second task, the researchers used a dataset of programming problems with human-provided solutions to compare Copilot's proposed solutions with those generated by humans. The results showed that while the correct ratio of human solutions was greater than Copilot's correct ratio, buggy solutions generated by Copilot required less effort to repair. Overall, 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. Therefore, further research is necessary to improve its accuracy and effectiveness as an industrial product.

Assess the quality of the AI-generated content by voting

Score: 0

Why do we need votes?

Votes are used to determine whether we need to re-run our summarizing tools. If the count reaches -10, our tools can be restarted.

The previous summary was created more than a year ago and can be re-run (if necessary) by clicking on the Run button below.

⚠The license of this specific paper does not allow us to build upon its content and the summarizing tools will be run using the paper metadata rather than the full article. However, it still does a good job, and you can also try our tools on papers with more open licenses.

Similar papers summarized with our AI tools

Navigate through even more similar papers through a

tree representation

Disclaimer: The AI-based summarization tool and virtual assistant provided on this website may not always provide accurate and complete summaries or responses. We encourage you to carefully review and evaluate the generated content to ensure its quality and relevance to your needs.