[논문 리뷰] TaskTracker-tool: a Toolkit for Tracking of Code Snapshots and Activity Data During Solution of Programming Tasks
이 논문은 IntelliJ 기반 IDE에서 프로그래밍 과제 해결 과정 동안 코드 스냅샷과 IDE 상호작용 데이터를 수집하고 분석하기 위한 툴킷인 TaskTracker-tool을 제안한다. 이 툴킷은 여러 프로그래밍 언어(파이썬, 자바, 코틀린, C++)에 걸쳐 학생 활동을 세밀하게 추적할 수 있으며, 서버 기반 데이터 집계를 지원하고 분석을 위한 사후 처리 도구를 포함한다. 주요 기여는 148명의 참가자들의 해결 과정을 담은 공개된 데이터셋을 제공하여 프로그래밍 행동, 오류 패턴, 학습 역학에 대한 깊이 있는 통찰을 가능하게 한다.
The process of writing code and use of features in an integrated development environment (IDE) is a fruitful source of data in computing education research. Existing studies use records of students' actions in the IDE, consecutive code snapshots, compilation events, and others, to gain deep insight into the process of student programming. In this paper, we present a set of tools for collecting and processing data of student activity during problem-solving. The first tool is a plugin for IntelliJ-based IDEs (PyCharm, IntelliJ IDEA, CLion). By capturing snapshots of code and IDE interaction data, it allows to analyze the process of writing code in different languages -- Python, Java, Kotlin, and C++. The second tool is designed for the post-processing of data collected by the plugin and is capable of basic analysis and visualization. To validate and showcase the toolkit, we present a dataset collected by our tools. It consists of records of activity and IDE interaction events during solution of programming tasks by 148 participants of different ages and levels of programming experience. We propose several directions for further exploration of the dataset.
연구 동기 및 목표
- 교육적 환경에서 과제 해결 과정 동안 세부적인 프로그래밍 활동을 캡처하기 위한 종합적이고 다중 언어 기반 도구의 부족을 해결하기 위해.
- 연구자와 교사가 다양한 프로그래밍 언어에서 코드의 진화와 IDE 상호작용을 포함한 학생 문제 해결 과정을 전반적으로 연구할 수 있도록 하기 위해.
- 자연스러운 프로그래밍 환경을 방해하지 않으면서 데이터 수집, 원격 저장, 기본 분석을 지원하는 유연하고 확장 가능한 툴킷을 제공하기 위해.
- 향후 컴퓨팅 교육 분야 연구를 위해 고해상도의 공개 데이터셋을 생성하기 위해.
- 실제 학생의 해결 패턴을 바탕으로 상황 인식 힌트와 같은 개인화된 학습 간섭 도구의 개발을 지원하기 위해.
제안 방법
- IntelliJ 기반 IDE(예: 파이참, 인텔리제이 아이디어)용 플러그인은 실시간으로 순차적 코드 스냅샷과 저수준 IDE 상호작용 이벤트(예: 타이핑, 실행, 리팩터링)를 캡처한다.
- 플러그인은 중앙 집중식 저장 및 관리를 위해 데이터를 원격 서버로 전송하여 데이터 무결성과 확장성을 확보한다.
- 전용 사후 처리 도구를 통해 점수 변화 동적 분석, 행동 빈도, 코드 변경 패턴 등의 기본 분석이 가능하며, 시각화 기능도 지원한다.
- 툴킷은 과제별 맥락을 기반으로 추적할 수 있도록 설계되어, 행동과 특정 프로그래밍 문제 간의 관계를 유지한다.
- 플러그인, 서버, 분석 도구의 모듈식 구성 요소를 통해 확장성을 고려한 설계로, 다양한 연구 요구사항에 맞게 커스터마이징이 가능하다.
- 데이터셋은 다양한 연령대와 경험 수준의 참가자 148명으로부터 수집되었으며, 표준화된 프로그래밍 과제 해결 과정 중 활동이 기록되었다.
실험 결과
연구 질문
- RQ1학생들의 코딩 패턴과 IDE 상호작용 행동은 프로그래밍 언어와 경험 수준에 따라 어떻게 다를까?
- RQ2프로그래밍 과제에서 일반적인 오류 패턴과 해결 경로는 무엇이며, 학생의 경험 수준에 따라 어떻게 변화할까?
- RQ3정확한 해결을 달성한 후 학생들은 어떻게 코드를 수정하는가? 리팩터링 과정에서 가장 빈번한 행동은 무엇인가?
- RQ4코드 변경 동적 변화와 점수 변화는 학생의 의도와 문제 해결 전략을 추론하는 데 사용될 수 있는가?
- RQ5해결 과정 데이터는 얼마나 실시간으로 개인화된 힌트나 피드백을 생성하는 데 활용될 수 있는가?
주요 결과
- 데이터셋은 학생들이 종종 이전 해결 과정의 큰 코드 블록을 붙여넣는 경향이 있음을 드러내며, 이는 이전 작업에 의존하거나 복사-붙여넣기 패턴을 사용하는 경향을 시사한다.
- 많은 학생들이 개발 과정에서 빈번하게 코드를 실행하여, 완성되지 않은 코드를 조기에 자주 검증하는 경향을 보인다.
- 상당수의 학생들이 입력과 출력을 붙여넣어 문자 단위 비교를 위해 IDE를 디프 툴로 사용한다.
- 점수 변화와 코드 변경 동적 변화를 바탕으로 해결 과정이 세 가지 명확한 단계로 나뉘는 것으로 나타났다: 초기 구현, 수정, 리팩터링.
- 해결 이후 활동에 뚜렷한 격차가 있다: 학생들은 정확한 점수를 확보한 후에도 자주 코드를 리팩터링하여 정확성 초과의 코드 품질 향상에 초점을 맞춘다.
- 나이와 경험 수준은 기능 사용 패턴과 오류 유형에 있어 뚜렷한 차이를 보이며, 이는 프로그래밍 행동의 발달적 궤적을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.