Skip to main content
QUICK REVIEW

[논문 리뷰] Teaching Python programming with automatic assessment and feedback provision

Hans Fangohr, Neil S. O’Brien|arXiv (Cornell University)|2015. 09. 11.
Teaching and Learning Programming참고 문헌 23인용 수 7
한 줄 요약

이 논문은 단위 테스트 프레임워크를 활용하여 파이썬 프로그래밍을 가르치는 확장 가능하고 자동화된 피드백 시스템을 제시한다. 학생들은 사전 정의된 테스트 케이스와 즉각적으로 평가되는 코드를 제출하고 이메일을 통해 즉각적이고 상세한 피드백을 받는다. 이 시스템은 강사의 업무 부담을 크게 줄이고 반복 학습을 지원하며, 대규모 수강생 집단에서 학생의 참여도와 성취도를 향상시킨다. 425명의 수강생이 참여한 강의에서 높은 만족도와 효율적인 평가 처리 능력을 입증하였다.

ABSTRACT

We describe a method of automatic feedback provision for students learning programming and computational methods in Python. We have implemented, used and refined this system since 2009 for growing student numbers, and summarise the design and experience of using it. The core idea is to use a unit testing framework: the teacher creates a set of unit tests, and the student code is tested by running these tests. With our implementation, students typically submit work for assessment, and receive feedback by email within a few minutes after submission. The choice of tests and the reporting back to the student is chosen to optimise the educational value for the students. The system very significantly reduces the staff time required to establish whether a student's solution is correct, and shifts the emphasis of computing laboratory student contact time from assessing correctness to providing guidance. The self-paced nature of the automatic feedback provision supports a student-centred learning approach. Students can re-submit their work repeatedly and iteratively improve their solution, and enjoy using the system. We include an evaluation of the system and data from using it in a class of 425 students.

연구 동기 및 목표

  • 대규모 학부 및 대학원 수업에서 프로그래밍 과제 평가를 효율적이고 일관적으로 수행하는 데 도전하는 문제를 해결하기 위해.
  • 단위 테스트 프레임워크를 통해 정확성 검사를 자동화하여 강사의 수작업 채점 부담을 줄이기 위해.
  • 신속한 반복 제출 및 피드백 사이클을 가능하게 하여 학생 중심의 자율 학습을 지원하기 위해.
  • 기본적인 정확성 검사에서 벗어나 코드 품질, 가독성, 설계에 대한 고급 지도로 강사의 초점을 이동시키기 위해.
  • 실제 대학 강의에서 시스템의 영향력이 학습 성과, 만족도, 확장 가능성에 어떤가를 평가하기 위해.

제안 방법

  • 강사가 각 프로그래밍 연습 문제에 대해 테스트 케이스를 정의하는 단위 테스트 프레임워크를 사용하며, 이는 학생 제출물에 대해 자동으로 실행된다.
  • 학생 코드는 웹 인터페이스를 통해 제출되며, 시스템은 사전 정의된 단위 테스트를 실행하여 정확성, 성능, 내구성을 점검한다.
  • 피드백은 자동으로 생성되어 제출 후 몇 분 내로 이메일로 학생에게 전달되며, 실패한 테스트와 진단 정보를 강조한다.
  • 이 시스템은 느슨하게 결합된 프로세스와 파일 기반 작업 큐를 설계하여 확장성과 기존 플랫폼(Moodle 등)과의 통합을 가능하게 한다.
  • 정확성과 조기 오류 탐지에 중점을 두어 교육적 가치를 극대화하고, 고급 수준의 코드 품질은 수동으로 평가한다.
  • 반복 제출을 지원하여 학생들이 모든 테스트를 통과할 때까지 솔루션을 반복적으로 개선할 수 있다.

실험 결과

연구 질문

  • RQ1대규모 수업에서 프로그래밍 과제 평가의 강사 업무 부담을 줄이기 위해 자동 단위 테스트 시스템이 얼마나 효과적인가?
  • RQ2즉각적인 자동 피드백이 초보 프로그래밍 과정에서 학생의 학습 성과와 참여도를 어느 정도 향상시키는가?
  • RQ3이 시스템은 프로그래밍 교육에서 자율적이고 반복적인 학습 및 학생의 자율성을 어떻게 지원하는가?
  • RQ4자동 피드백이 대규모 프로그래밍 수업에서 학생의 만족도와 인지된 학습에 어떤 영향을 미치는가?
  • RQ5이 시스템은 파이썬 이외의 프로그래밍 언어와 다양한 기관에서 사용 가능하고 확장 가능한가?

주요 결과

  • 정확성 평가에 소요되는 강사의 시간이 제출당 시간에서 몇 분으로 줄었으며, 이는 한 강의에서 425명의 수강생을 효율적으로 처리할 수 있게 하였다.
  • 학생들은 평균적으로 각 연습 문제당 4.5회 제출하였으며, 즉각적인 피드백 덕분에 반복적인 개선 모델에 높은 참여도를 보였다.
  • 첫 두 주 이후로 정기적인 랩 세션에 대한 참석률이 크게 감소하여, 많은 학생들이 독립적으로 조기에 과제를 완료한 것으로 나타났다.
  • 이 시스템 덕분에 강의는 85명에서 425명으로 확장되었지만, 채점에 소요되는 강사의 시간은 변화가 없었으며, 이는 높은 확장성을 보여주었다.
  • 학생들의 시스템에 대한 피드백은 압도적으로 긍정적이었으며, 학습자들은 더 즐겁게 느끼고 프로그래밍 개념에 더 깊이 이해하게 되었다고 보고했다.
  • 시스템 아키텍처는 견고하고 확장 가능했으며, Moodle와 같은 외부 플랫폼과의 통합을 가능하게 하고, 다양한 기관에서의 재사용도 가능했다.

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

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

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

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