1. 논문 정보

  • 제목: Automated feedback generation for introductory programming assignments
  • 저자: Rishabh Singh et al
  • doi: https://doi.org/10.48550/arXiv.1204.1751
  • 키워드: automated grading, computer-aided education

2. 요약

프로그래밍 문제에 대한 피드백은 주로 테스트 케이스 기반과 동료 피드백 두 가지 방식으로 제공된다. 자동화된 테스트 케이스 방식은 학생들의 프로그램을 테스트 케이스와 대조해 실행한 후 실패한 케이스를 피드백으로 제공하지만, 초보자가 오류의 원인을 이해하기 어렵다는 단점이 있다. 반면, 동료 피드백 방식은 학생들이 토론 게시판을 통해 서로 피드백을 제공하게 하지만, 질 높은 피드백을 얻기 어렵고 즉각적인 피드백 제공이 불가능할 수 있다는 문제가 있다.

이 논문에서는 기초 프로그래밍 문제에 대한 자동 피드백을 제공하는 새로운 방법을 소개한다. 이 방법을 사용하기 위해, 도구는 교수로부터 과제의 참조 구현과 학생들이 저지를 수 있는 오류에 대한 잠재적 수정을 포함하는 오류 모델에 대한 정보가 필요하다. 이 정보를 바탕으로, 시스템은 학생의 잘못된 해결책에 대해 최소한의 수정을 자동으로 파악하고, 주어진 해결책이 얼마나 잘못되었는지 정량화된 척도와 함께 무엇이 잘못되었는지에 대한 피드백을 제공한다.

그림입니다. 원본 그림의 이름: CLP000027200001.bmp 원본 그림의 크기: 가로 1448pixel, 세로 418pixel

예를 들어, Figure 2(a)의 게시판에 게시된 학생의 코드는 잘못된 동료 피드백을 받고 해결되지 않은 채로 남겨졌다. 반면 Figure 2(b)에서는 학생의 코드에 굵은 글씨로 표시된 세 가지 문제를 파악하고, 다음과 같은 네 가지 정보를 포함하는 피드백을 제공했다.

  • 오류의 위치를 줄 번호로 나타냄
  • 해당 줄에서 문제가 되는 표현
  • 수정해야 할 하위 표현
  • 하위 표현의 새로 수정된 값

    그림입니다. 원본 그림의 이름: CLP000027200003.bmp 원본 그림의 크기: 가로 931pixel, 세로 424pixel

이러한 수준의 피드백을 제공하기 위해 도구는 교수로부터 몇 가지 정보를 필요로 한다. 먼저, 도구는 학생들이 해결해야 할 문제가 무엇인지 알아야 한다. 교수는 Figure 1과 같은 참조 구현을 작성하여 이 코드의 전반적인 정보(poly_list_int: 정보 리스트)를 제공한다.

참조 구현뿐만 아니라, 도구는 학생들이 저지를 수 있는 오류 유형에 대한 설명도 필요하다. 이 논문에서 개발된 EML(Error Model Language)은 학생들이 저지를 수 있는 오류에 대한 잠재적 수정 방안을 나타내는 수정 규칙을 기술한다. 이 규칙을 학생 프로그램에 적용하여, 참조 구현과 일치하고 최소한의 수정이 필요한 후보 프로그램을 탐색하여 피드백을 제공한다.


3. 결론

동료 평가 게시판에서 수천 건의 실제 학생 제출 프로그램으로 도구를 테스트했다. 평균적으로 모든 잘못된 제출물 중 65%를 정정할 수 있다는 것을 확인할 수 있었다.


4. 느낀점

IRB 문제로 인해, 연구 주제를 학생들이 작성한 논문에서 파이썬 초보자의 자주 하는 실수 코드에 대한 피드백으로 변경했습니다. 이 논문 조사를 통해 적절한 코드 피드백의 최종 결과와 구성 요소를 이해하는 데 도움이 되었습니다.

피드백 생성 도구, 특히 EML이 복잡하여 이해하기 어려웠지만, 제 연구에서는 교수가 작성한 참조 구현 대신에, 프롬프트 및 GPT를 활용한 피드백 생성 방법을 사용할 계획입니다. 이렇게 생성된 피드백은 교육 전문가에 의해 평가되어 Likert 척도에서 4점 이상 받은 데이터를 파인튜닝에 사용할 것입니다. 3점 이하로 평가된 피드백은 교육 전문가의 도움으로 보완한 후 파인튜닝에 활용할 예정입니다.

연구 방향은 다음과 같이 계획하고 있습니다.

① 파이썬 프로그래밍 초보자 정의 → ② 파이썬 공식문서, 블로그, 기술 기고문에서 파이썬 초보자들이 자주 하는 실수 데이터 수집 → ③ 프롬프트 엔지니어링을 활용한 피드백 생성 → ④ 교육 전문가의 Likert 척도 평가 → ⑤ 높은 평가 피드백 추출 및 부족한 경우 보완하여 파인 튜닝 → ⑥ 모델을 활용한 웹 기반 구현

위 연구 방향을 실천하기 위해, 먼저 회사가 개발한 교재를 기준으로 파이썬 프로그래밍 초보자를 정의하고, GPT 파인튜닝 방법에 대해 연구할 예정입니다.

댓글남기기