1. 논문 정보

  • 제목: CodeAid: Evaluating a Classroom Deployment of an LLM-based Programming Assistant that Balances Student and Educator
  • 저자: Majeed Kazemitabaar et al
  • doi: https://doi.org/10.48550/arXiv.2401.11314
  • 키워드: programming education, code review, LLM

2. 요약

이 논문에서는 코드 솔루션을 직접 제공하지 않으면서 유용하고 기술적으로 정확한 응답을 제공하는 보조 도구인 ChatGPT 기반 CodeAid를 개발했습니다.

[CodeAid의 인터페이스– 메인화면]

인터페이스는 사용자의 요청과 응답 결과를 나타내는 입력창과 출력창으로 구성되어 잇습니다. 입력 부분(Figure 1 참조)에는 텍스트를 입력할 수 있는 상자, 구문을 강조하는 기능이 포함된 코드 입력창, 그리고 네 가지 주요 기능을 선택할 수 있는 라디오 버튼이 포함되어 있습니다. 사용자는 원하는 기능을 선택한 후 내용을 입력하고 ‘제출’ 버튼을 클릭하여 피드백을 받을 수있습니다. 또한, AI 모델이 생성한 응답의 정확성에 대한 주의사항을 인터페이스 하단에 명시하여 사용자가 이를 인지할 수 있도록 했습니다.

그림입니다. 원본 그림의 이름: CLP00004ae43ef4.bmp 원본 그림의 크기: 가로 1059pixel, 세로 313pixel

[CodeAid의 인터페이스 – 네 종류의 기능 중 Help Fix Code(Figure 4a 참조)]

학생은 코드 에디터에 문제가 있는 코드를 입력하고, ‘Intened Behavior’라는 질문 입력창이 나타나면, LLM이 코드의 원하는 동작이나 의도, 문제를 이해할 수 있도록 해당 입력창에 설명을 작성합니다. 제출하면, 응답 결과에서 수정, 삭제, 또는 추가가 필요한 특정 라인들이 강조되어 나타납니다. 이러한 강조 기능을 구현하기 위해 다음과 같은 절차를 따랐습니다.

그림입니다. 원본 그림의 이름: CLP00004ae40001.bmp 원본 그림의 크기: 가로 538pixel, 세로 336pixel

(1) 전처리: 버그가 있는 코드에서 모든 주석을 제거

(2) 수정된 코드 생성: LLM 함수를 사용하여 수정된 코드 생성

(3) 라인 매칭: 버그가 있는 코드와 수정된 코드의 각 라인을 매칭

(4) 버그가 있는 코드 주석 달기: 변경됨, 제거됨, 추가됨의 라벨로 주석 달기

(5) 주석 설명: 주석이 달린 코드가 클라이언트에 전송되며, 마우스 호버시 주석의 설명 표시

[프롬프트 디자인]

그림입니다. 원본 그림의 이름: CLP00004ae40002.bmp 원본 그림의 크기: 가로 340pixel, 세로 448pixel

프롬프트에는 다음 원칙들을 포함하고 있으며, 주요 기능을 위한 프롬프트의 구조는 Figure 3b에서 확인할 수 있습니다.

(1) 적어도 하나의 입력/출력 예시 포함

(2) 디스플레이 표시를 위한 마크업과 구분자를 포함한 응답의 구조화

(3) 기술적인 정확성 확보

(4) 학생들에게 부담이 되지 않는 스타일과 톤 사용


3. 결론

학생들은 대부분 CodeAid를 개념적 이해와 디버깅 목적으로 사용했으며, 교육자들은 CodeAid의 교육적 접근법을 긍적적으로 평가했습니다. 다만, 가끔 부정확한 피드백이 제공되거나 학생들이 ChatGPT에 지나치게 의존하는 경향에 대해 우려를 나타냈습니다.


4. 느낀점

프로그래밍 학습 과정에서, 특히 수업 규모가 커지는 상황에서 시기적절하고 개인화된 피드백의 중요성을 제 연구 배경에 인용하는 것이 유익할 것으로 생각됩니다. 이전의 문헌 조사에서도 언급되었듯이, 코드를 직접 제시하는 행위를 제한하는 것이 학습의 질을 높이는 데 중요함을 이 논문에서도 다루고 있습니다. AI를 프로그래밍 수업에 통합하는 과정에서 AI 보조를 통한 부정행위를 방지하는 전략이 필수적이라는 점을 강조합니다. 이에 따라, 제 연구에서는 이 논문에서 소개된 기능(Help Fix Code)를 참조하여 부정행위를 방지하는 전략을 모색했습니다.

또한, 시스템 구현 시 사용자 인터페이스에 적용할 기능을 결정할 때, 이 논문에서 제시된 전처리, 수정된 코드 생성, 라인 매칭, 버그가 있는 코드에 주석 달기, 주석 설명 등의 전략을 포함한 프롬프트 설계 방법에서 중요한 아이디어를 얻었습니다.

마지막으로, 컴퓨터 과학 분야에서 AI의 도입에 대한 교육자들 사이의 의견이 분분한 것을 확인하며, 혁신적인 AI 기술이 전통적인 교육 현장에 도입되는 과정에서 다양한 견해가 존재한다는 사실을 발견하여 흥미로웠습니다.

댓글남기기