Skip to main content
QUICK REVIEW

[논문 리뷰] Automatic Assessment of the Design Quality of Python Programs with Personalized Feedback

J. Walker Orr, Nathaniel Russell|arXiv (Cornell University)|2021. 06. 02.
Software Engineering Research참고 문헌 11인용 수 6
한 줄 요약

이 논문은 추상 구문 트리(abstract syntax tree, AST) 기반 특징과 고품질 예제 프로그램의 특징을 비교하여, 파이썬 프로그램의 설계 품질을 자동으로 평가하고 개인화된 피드백을 생성하는 신경망 앙상블 모델을 제안한다. 이 시스템은 강사가 평가한 설계 점수를 예측하는 데 83.67%에서 94.27%의 정확도를 달성했으며, 피드백 적용 후 학생들의 프로그램 설계 점수 평균 19.58% 향상됨.

ABSTRACT

The assessment of program functionality can generally be accomplished with straight-forward unit tests. However, assessing the design quality of a program is a much more difficult and nuanced problem. Design quality is an important consideration since it affects the readability and maintainability of programs. Assessing design quality and giving personalized feedback is very time consuming task for instructors and teaching assistants. This limits the scale of giving personalized feedback to small class settings. Further, design quality is nuanced and is difficult to concisely express as a set of rules. For these reasons, we propose a neural network model to both automatically assess the design of a program and provide personalized feedback to guide students on how to make corrections. The model's effectiveness is evaluated on a corpus of student programs written in Python. The model has an accuracy rate from 83.67% to 94.27%, depending on the dataset, when predicting design scores as compared to historical instructor assessment. Finally, we present a study where students tried to improve the design of their programs based on the personalized feedback produced by the model. Students who participated in the study improved their program design scores by 19.58%.

연구 동기 및 목표

  • 교육 현장에서 수작업으로 설계 품질을 평가하는 데 드는 시간과 맥락 의존성 문제를 해결하기 위해.
  • AST 기반 특징을 활용해 높은 정확도로 설계 품질 점수를 예측하는 자동화된 시스템을 개발하기 위해.
  • 학생들이 프로그램 설계를 향상시키는 데 도움이 되는 해석 가능한 개인화된 피드백을 생성하기 위해.
  • 제어된 연구를 통해 피드백의 효과가 학생들의 학습 성과 향상에 얼마나 기여하는지 평가하기 위해.
  • 할당 과제별로 모델을 훈련시키는 것과 앙상블 학습을 활용해 안정성과 성능을 향상시키는 것의 가능성 탐색하기 위해.

제안 방법

  • 모델는 학생 프로그램의 AST 표현을 기반으로 훈련된 순방향 신경망 앙상블을 사용하여 0에서 1 사이의 설계 품질 점수를 예측한다.
  • 각 입력 특징은 AST의 통계 분석에서 유도되며, 예를 들어 함수 길이, 인수 개수, 전역 변수 사용 등으로, 가시성 확보를 위해 해석 가능성이 보장된다.
  • 개인화된 피드백은 학생 프로그램의 각 특징 값과 높은 점수를 받은 프로그램의 평균 값 간 비교를 통해 생성되며, 설계를 향상시키기 위해 증가 또는 감소를 제안한다.
  • 복잡하거나 변동성이 큰 데이터셋(예: 'Craps')에서도 예측 안정성을 향상시키기 위해 앙상블 모델을 활용한다.
  • 과제별로 모델을 훈련시어 맥락에 특화된 설계 기준을 반영함으로써 정확성과 관련성을 높인다.
  • 피드백은 인간이 읽을 수 있는 주석 형태로 제공되어, 학생이 어떤 특징을 조정해야 하는지 명확히 이해하고 실질적인 개선 조치를 취할 수 있도록 한다.

실험 결과

연구 질문

  • RQ1신경망 모델은 강사가 평가한 학생 파이썬 프로그램의 설계 품질을 정확하게 예측할 수 있는가?
  • RQ2신경망 앙상블의 성능은 단일 모델 및 전통적 회귀 모델에 비해 설계 품질 예측에서 어떻게 비교되는가?
  • RQ3특징 비교 기반 개인화된 피드백이 학생의 프로그램 설계 점수 향상에 얼마나 기여하는가?
  • RQ4과제별로 모델을 훈련시키는 것이 단일 일반 모델보다 더 높은 예측 정확도를 제공하는가?
  • RQ5다양한 프로그래밍 과제에서 설계 기대 수준이 다를 경우, 모델 예측의 안정성과 신뢰성은 어떻게 유지되는가?

주요 결과

  • 신경망 앙상블은 다양한 데이터셋에서 83.67%에서 94.27%의 예측 정확도를 기록했으며, 'Travel'과 'Budget' 과제에서 가장 높은 정확도를 보였다.
  • 앙상블 모델은 단일 신경망 모델과 선형 회귀 모두를 능가했으며, 특히 'Craps' 데이터셋에서 단일 모델 대비 오차를 5% 감소시켜 우수한 성능을 보였다.
  • 개인화된 피드백을 받은 학생들은 평균 19.58%의 설계 점수 향상을 기록했으며, 통계적으로 유의미한 p-값(0.001)을 확보했다.
  • 피드백 적용 후 전역 변수 사용과 '매직 넘버'(magic numbers)와 같은 일반적인 설계 결함이 뚜렷하게 감소하는 경향을 관찰했다.
  • 과제별로 모델을 훈련시킨 결과 단일 모델보다 더 뛰어난 성능을 보였으며, 이는 정확도 향상을 위해 맥락 기반 캘리브레이션의 중요성을 시사한다.
  • 시스템의 피드백은 효과적이며 해석 가능했으며, 학생들은 특징 수준의 제안에 기반해 타겟팅된 개선 조치를 쉽게 수행할 수 있었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.