[논문 리뷰] Explaining Code with a Purpose: An Integrated Approach for Developing Code Comprehension and Prompting Skills
이 논문은 LLM을 활용해 학생들의 '일상어로 설명하기'(EiPE) 응답을 자동으로 평가하는 통합 교육적 접근법을 제안한다. 학생들의 설명에서 코드를 생성함으로써 코드 이해도와 프롬프트 작성 능력을 동시에 평가한다. 대규모 CS1 과정에서 학생들은 효과적인 프롬프트를 작성해 기능적으로 동일한 코드를 생성하는 데 높은 성공률를 기록했으며, 관계 중심의 설명이 가장 효과적이었다.
Reading, understanding and explaining code have traditionally been important skills for novices learning programming. As large language models (LLMs) become prevalent, these foundational skills are more important than ever given the increasing need to understand and evaluate model-generated code. Brand new skills are also needed, such as the ability to formulate clear prompts that can elicit intended code from an LLM. Thus, there is great interest in integrating pedagogical approaches for the development of both traditional coding competencies and the novel skills required to interact with LLMs. One effective way to develop and assess code comprehension ability is with ``Explain in plain English'' (EiPE) questions, where students succinctly explain the purpose of a fragment of code. However, grading EiPE questions has always been difficult given the subjective nature of evaluating written explanations and this has stifled their uptake. In this paper, we explore a natural synergy between EiPE questions and code-generating LLMs to overcome this limitation. We propose using an LLM to generate code based on students' responses to EiPE questions -- not only enabling EiPE responses to be assessed automatically, but helping students develop essential code comprehension and prompt crafting skills in parallel. We investigate this idea in an introductory programming course and report student success in creating effective prompts for solving EiPE questions. We also examine student perceptions of this activity and how it influences their views on the use of LLMs for aiding and assessing learning.
연구 동기 및 목표
- 프로그래밍 교육에서 오랫동안 지속된 EiPE(일상어로 설명하기) 질문의 주관적이고 시간이 오래 소요되는 채점 문제를 해결하기 위해.
- 학생들의 설명에서 코드를 생성하는 LLM을 활용해 코드 이해도를 평가할 수 있는 스케일러블하고 자동화된 방법을 개발하기 위해.
- 현대 프로그래밍에서 중요한 역할을 하는 LLM에 대한 효과적인 프롬프트 작성 능력을 동시에 기르기 위해.
- EiPE 기반의 LLM 프롬프트 작업이 전통적인 코딩 연습을 넘어서 학생들의 참여도와 코드 이해도 향상에 기여하는지 조사하기 위해.
- 다국어 설명 지원을 통해 다양한 학습자, 특히 모국어가 영어가 아닌 학생들까지 평등한 평가를 지원할 수 있는 잠재력을 탐색하기 위해.
제안 방법
- 학생들에게 코드 조각을 제시하고, 그 기능을 일상어로 설명하도록 요청한다. 이는 전통적인 EiPE 질문을 모방한다.
- 학생들이 작성한 설명을 코드 생성 LLM의 프롬프트로 사용하여 해당 코드를 생성한다.
- 생성된 코드는 테스트 셋을 사용해 원본 코드와의 동일 기능 여부를 자동으로 평가함으로써 객관적인 평가가 가능해진다.
- 학생 설명의 질을 코드 요소 통합 정도에 따라 분류하기 위해 SOLO 분류 체계를 활용한다.
- 성공 여부는 LLM이 생성한 코드가 모든 테스트 케이스를 통과하는지 여부로 측정되며, 이는 정확한 이해도를 의미한다.
- 이 방법은 코드 이해도와 프롬프트 엔지니어링 능력 향상을 위한 형성적 평가 및 학습 기회를 제공한다.
실험 결과
연구 질문
- RQ1학생들이 일상어로 코드 조각의 기능을 설명할 때, 기능적으로 동일한 코드를 생성하는 데 성공하는 정도는 어느 정도인가?
- RQ2학생 설명의 질(소요된 SOLO 분류 수준으로 측정)은 LLM이 생성한 코드의 성공률에 어떤 영향을 미치는가?
- RQ3학생들은 이 LLM 지원 EiPE 과제를 전통적인 프로그래밍 연습과 비교해 어떻게 평가하는가?
- RQ4이 방법은 다국어 설명 지원을 통해 다양한 영어 수준의 학생들에게 평등한 평가를 제공할 수 있는가?
- RQ5프롬프트 길이와 구조는 LLM이 생성한 코드의 신뢰성과 정확성에 어떤 영향을 미치는가?
주요 결과
- 대규모 CS1 과정(n ≈ 900)에서 학생들은 EiPE 설명에서 기능적으로 정확한 코드를 생성하는 데 매우 높은 성공률를 기록했다.
- 다양한 코드 요소를 의미적으로 통합한 상위 수준의 관계 중심 설명은 표면적 또는 라인별 설명보다 훨씬 더 높은 코드 생성 정확도를 보였다.
- 학생들은 이 활동이 참여도가 높고 코드 이해도 향상에 효과적이라고 보고했으며, 많은 이들이 학습에 새로움과 가치를 느꼈다.
- 이 방법은 EiPE 응답에 대한 자동적이고 객관적인 평가를 가능하게 하여 오랫동안 지속된 주관적 채점의 장벽을 극복했다.
- 중국어로 작성된 6건의 성공적인 학생 설명이 제출되어, 이 방법이 다국어 학습자 지원과 언어 기반 평가 편향 감소 잠재력을 보여주었다.
- 높은 성공률에도 불구하고 프롬프트의 신뢰성이 다양하게 나타나, 동일한 프롬프트가 때로는 정확한 코드를 생성하고 때로는 잘못된 코드를 생성하는 등 일관성 향상의 필요성을 보여주었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.