Conversing with Copilot: Exploring Prompt Engineering for Solving CS1 Problems Using Natural Language

By Paul Denny, Viraj Kumar, Nasser Giacaman. 2022

328 citations recorded by the source corpus.

GitHub Copilot is an artificial intelligence tool for automatically generating source code from natural language problem descriptions. Since June 2022, Copilot has officially been available for free to all students as a plug-in to development environments like Visual Studio Code. Prior work exploring OpenAI Codex, the underlying model that powers Copilot, has shown it performs well on typical CS1 problems thus raising concerns about its potential impact on how introductory programming courses are taught. However, little is known about the types of problems for which Copilot does not perform well, or about the natural language interactions that a student might have with Copilot when resolving errors. We explore these questions by evaluating the performance of Copilot on a publicly available dataset of 166 programming problems. We find that it successfully solves around half of these problems on its very first attempt, and that it solves 60% of the remaining problems using only natural language changes to the problem description. We argue that this type of prompt engineering, which we believe will become a standard interaction between human and Copilot when it initially fails, is a potentially useful learning activity that promotes computational thinking skills, and is likely to change the nature of code writing skill development.

Subfields: Computer Science Applications, Information Systems, Software, Prompting & Reasoning, Code Generation & Program Synthesis

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Computer Science Applications

  1. Paul Denny
  2. Juho Leinonen
  3. Sami Sarsa
  4. Arto Hellas
  5. Stephen MacNeil
  6. Seth Bernstein
  7. Andrew Tran
  8. Joanne Kim

In Information Systems

  1. Paul Denny
  2. Juho Leinonen
  3. Sami Sarsa
  4. Arto Hellas
  5. Shin Yoo
  6. Mark Harman
  7. Stephen MacNeil
  8. Seth Bernstein

In Software

  1. Shin Yoo
  2. Mark Harman
  3. Paul Denny
  4. Juho Leinonen
  5. Arto Hellas
  6. Sami Sarsa
  7. Noah D. Goodman
  8. Shubho Sengupta

In Prompting & Reasoning

  1. Nick Haber
  2. Eric Zelikman
  3. Noah D. Goodman
  4. Antonia Creswell

In Code Generation & Program Synthesis

  1. Paul Denny
  2. Juho Leinonen
  3. Sami Sarsa
  4. Arto Hellas
  5. Stephen MacNeil
  6. Seth Bernstein
  7. Andrew Tran
  8. Joanne Kim

Citations in the corpus