Students and teaching assistants (TAs) in programming courses spend a large amount of time asking and answering questions that require the understanding of code. Models that understand code can help them reduce the time and effort required to answer the questions by identifying relevant snippets in code. I introduce CodeQA, a dataset for machine-in-the-loop question answering (QA) for the programming education domain. CodeQA's tasks, question type classification and code line selection, are designed to aid code-based question answering by providing outputs useful for answering the question, and challenge models to understand both the question and code, a fundamentally different type of text from documents in other QA datasets. CodeQA contains 9,237 question-answer-code triples gathered from chat logs in an introductory programming course in the original language, mostly Korean and the rest in English, and in English translation of the Korean texts. I provide detailed analysis of CodeQA dataset and illustrate the baseline models' behavior through qualitative studies. The relatively low scores of baseline models for CodeQA tasks suggest that the tasks are challenging even for well-performing models for natural language QA.
프로그래밍 과목에서 학생과 조교는 코드에 대한 이해가 필요한 질문을 하고 답하는데 많은 시간을 쓴다. 코드를 이해하는 모델은 질문과 관련 있는 코드의 일부분을 식별하여 질문에 답하는 데 필요한 시간과 노력을 줄이는 데 도움을 줄 수 있다. 본 논문에서는 프로그래밍 교육 분야의 machine-in-the-loop 질의응답 데이터셋인 CodeQA를 소개한다. CodeQA의 질문 유형 분류 및 코드 줄 선택 작업은 질문에 답하는데 유용한 출력을 제공하여 코드 기반 질의응답을 돕도록 설계되었으며, 모델에게 질문뿐만이 아니라 타 질의응답 데이터셋에서 쓰이는 문서와는 다른 코드를 이해하도록 요구한다. CodeQA는 기초 프로그래밍 수업의 채팅 기록에서 수집된 9,237개의 질문, 답변, 코드로 이루어져 있다. 데이터는 대부분 한국어이고 나머지는 영어이며 원문과 한국어의 영어 번역본을 포함한다. 본 논문에서는 CodeQA 데이터셋에 대한 자세한 분석을 제공하고 질적 분석을 통해 기준 모델의 작동 방식을 설명한다. CodeQA 작업에 대한 기준 모델의 상대적으로 낮은 점수는 자연어 질의응답에 대한 성능이 좋은 모델도 CodeQA 작업은 어렵다는 것을 보여준다.