[논문 리뷰] C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignments
이 논문은 C90에서 초보자 프로그래머의 학습 과제를 대상으로 하여 의미적으로 올바르고, 의미적으로 잘못되었으며, 문법적으로 잘못된 학생 제출물을 포함하는 공개 벤치마크인 C-Pack-IPAs를 소개한다. 이 데이터셋은 초보자 프로그래머를 대상으로 하는 자동 프로그램 수리 프레임워크의 평가를 가능하게 하며, 각 과제마다 다양한 올바른 구현 방식과 포괄적인 테스트 셋을 제공하여, 의미적 및 문법적 오류를 모두 포함하는 C에 대한 소수의 벤치마크 중 하나이다.
Due to the vast number of students enrolled in Massive Open Online Courses (MOOCs), there has been an increasing number of automated program repair techniques focused on introductory programming assignments (IPAs). Such techniques take advantage of previous correct student implementations in order to provide automated, comprehensive, and personalized feedback to students. This paper presents C-Pack-IPAs, a publicly available benchmark of students' programs submitted for 25 different IPAs. C-Pack-IPAs contains semantically correct, semantically incorrect, and syntactically incorrect programs plus a test suite for each IPA. Hence, C-Pack-IPAs can be used to help evaluate the development of novel semantic, as well as syntactic, automated program repair frameworks, focused on providing feedback to novice programmers.
연구 동기 및 목표
- 초보자 프로그래밍 과정의 높은 학생 등록 수로 인해 MOOC에서 자동 개인화 피드백의 필요성이 증가하고 있음을 고려하여.
- 초보자 C 프로그래머를 대상으로 하는 자동 프로그램 수리 도구 평가를 위한 종합적인 벤치마크를 제공하기 위해.
- 실제 학생 제출물을 활용하여 의미적 및 문법적 수리 프레임워크의 개발을 지원하기 위해.
- 각 과제에 대해 테스트 셋이 포함된 공개 접근이 가능한 익명화된 데이터셋을 제공하여 재현 가능한 평가를 가능하게 하기 위해.
- 각 과제마다 다수의 올바른 구현 방식과 함께 의미적 및 문법적 오류를 포함하는 공개 가능한 C 언어 벤치마크의 격차를 메우기 위해.
제안 방법
- 벤치마크는 이노스티투이 수르 테크니쿠(IST)의 초보자 C 프로그래밍 과정에서 진행된 세 개의 실습 수업에서 학생 제출물을 수집한다.
- 제출물은 모두 테스트 케이스를 통과하는 의미적으로 올바른, 컴iles는 하지만 테스트에 실패하는 의미적으로 잘못된, 컴파일에 실패하는 문법적으로 잘못된 것으로 분류된다.
- 각 IPA에는 정확도 평가를 위해 사용되는 테스트 셋이 포함되어 있으며, 수리 프레임워크 호환성을 위해 기준 구현체도 제공된다.
- 모든 학생 프로그램은 익명화되었고, 주석이 제거되었으며, 학술적 목적을 위한 사용 허가가 확보되었다.
- 데이터셋은 GitHub에 호스팅되어 있으며, 연도 및 과제별 제출 분포에 대한 상세한 메타데이터를 포함한다.
- 실제 학생 코드를 활용하여 의미적 및 문법적 수리 기법의 평가를 지원한다.
실험 결과
연구 질문
- RQ1초보자 프로그래머가 제출한 의미적으로 잘못된 C90 프로그램을 자동 프로그램 수리 프레임워크가 얼마나 효과적으로 수정할 수 있는가?
- RQ2수리 프레임워크는 다수의 올바른 구현 방식을 얼마나 효과적으로 활용하여 IPAs의 수리 정확도를 향상시킬 수 있는가?
- RQ3문법적 수리 도구는 초보자 C 코드에서 실제로 발생하는 컴파일 오류를 효과적으로 처리할 수 있는가?
- RQ4올바른, 의미적으로 잘못된, 문법적으로 잘못된 제출물의 분포가 수리 도구 평가에 어떤 영향을 미치는가?
- RQ525개의 서로 다른 IPA와 다수의 올바른 및 잘못된 구현 방식을 포함하는 벤치마크의 확장성과 다양성은 어떠한가?
주요 결과
- C-Pack-IPAs는 25개의 서로 다른 초보자 프로그래밍 과제에 걸쳐 총 653개의 의미적으로 올바른, 513개의 의미적으로 잘못된, 98개의 문법적으로 잘못된 C90 프로그램을 포함한다.
- 각 IPA에 대해 테스트 셋과 기준 구현체가 포함되어 있어 수리 프레임워크의 종합적 평가가 가능하다.
- 벤치마크는 익명화된 학생 제출물과 제거된 주석을 포함하여 GitHub에서 공개적으로 이용 가능하다.
- C-Pack-IPAs는 각 과제마다 다수의 올바른 구현 방식과 함께 의미적 및 문법적 오류 사례를 포함하는 C90에 대한 소수의 벤치마크 중 하나이다.
- 데이터셋은 두 학년도와 세 개의 실습 수업을 포함하여 시간적 및 교육적 다양성을 제공한다.
- 벤치마크는 의미적 및 문법적 자동 수리 기법의 평가를 지원하여 기존 C 언어 프로그램 수리 데이터셋에서 나타나는 핵심 격차를 메운다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.