CS1-LLM: Integrating LLMs into CS1 Instruction
<|reference_start|>CS1-LLM: Integrating LLMs into CS1 Instruction: The recent, widespread availability of Large Language Models (LLMs) like ChatGPT and GitHub Copilot may impact introductory programming courses (CS1) both in terms of what should be taught and how to teach it. Indeed, recent research has shown that LLMs are capable of solving the majority of the assignments and exams we previously used in CS1. In addition, professional software engineers are often using these tools, raising the question of whether we should be training our students in their use as well. This experience report describes a CS1 course at a large research-intensive university that fully embraces the use of LLMs from the beginning of the course. To incorporate the LLMs, the course was intentionally altered to reduce emphasis on syntax and writing code from scratch. Instead, the course now emphasizes skills needed to successfully produce software with an LLM. This includes explaining code, testing code, and decomposing large problems into small functions that are solvable by an LLM. In addition to frequent, formative assessments of these skills, students were given three large, open-ended projects in three separate domains (data science, image processing, and game design) that allowed them to showcase their creativity in topics of their choosing. In an end-of-term survey, students reported that they appreciated learning with the assistance of the LLM and that they interacted with the LLM in a variety of ways when writing code. We provide lessons learned for instructors who may wish to incorporate LLMs into their course.<|reference_end|>
@article{vadaparty2024cs1-llm:,
    title={CS1-LLM: Integrating LLMs into CS1 Instruction},
    author={Annapurna Vadaparty and Daniel Zingaro and David H. Smith IV and
  Mounika Padala and Christine Alvarado and Jamie Gorson Benario and Leo Porter},
    journal={arXiv preprint arXiv:2406.15379},
    year={2024},
    archivePrefix={arXiv},
    eprint={2406.15379},
    primaryClass={cs.CY cs.SE}
}