[논문 리뷰] Expanding the scope of statistical computing: Training statisticians to be software engineers
이 논문은 통계학자들이 소프트웨어 공학 실무—프로그래밍 관행, 소프트웨어 설계, 알고리즘 및 자료구조, 핵심 도구—를 훈련하는 대학원 수준의 통계 계산 과정을 제안한다. 이 과정은 실습 기반의 코드 리뷰, 개선, 그리고 학기 전반에 걸친 소프트웨어 프로젝트를 통해 이뤄지며, 복잡한 통계 소프트웨어를 구축하고 유지보수할 수 있는 능력을 학생들에게 성공적으로 제공한다. 이는 전통적인 통계 커리큘럼에서 간과하는 핵심 격차를 메운다.
Traditionally, statistical computing courses have taught the syntax of a particular programming language or specific statistical computation methods. Since the publication of Nolan and Temple Lang (2010), we have seen a greater emphasis on data wrangling, reproducible research, and visualization. This shift better prepares students for careers working with complex datasets and producing analyses for multiple audiences. But, we argue, statisticians are now often called upon to develop statistical software, not just analyses, such as R packages implementing new analysis methods or machine learning systems integrated into commercial products. This demands different skills. We describe a graduate course that we developed to meet this need by focusing on four themes: programming practices; software design; important algorithms and data structures; and essential tools and methods. Through code review and revision, and a semester-long software project, students practice all the skills of software engineering. The course allows students to expand their understanding of computing as applied to statistical problems while building expertise in the kind of software development that is increasingly the province of the working statistician. We see this as a model for the future evolution of the computing curriculum in statistics and data science.
연구 동기 및 목표
- 통계학자들이 단순히 일회성 분석을 수행하는 것 외에도 복잡한 통계 소프트웨어를 개발하고 유지보수할 수 있도록 하는 데 필요한 능력을 기르는 데 목적이 있다.
- 전통적인 통계 계산 과정과 현대 데이터 과학 및 통계 연구에서 요구하는 소프트웨어 공학 요구사항 사이의 격차를 메우는 데 목적이 있다.
- 학생들이 프로젝트 기반의 피드백이 풍부한 커리큘럼을 통해 버전 관리, 테스팅, 확장 가능한 설계와 같은 핵심 소프트웨어 공학 기술을 습득하도록 하는 데 목적이 있다.
- 미래의 전문가 및 연구자들이 필요로 하는 요구사항에 맞게 소프트웨어 공학 원칙을 통계학 및 데이터 과학 교육에 통합한 모델 커리큘럼을 만드는 데 목적이 있다.
제안 방법
- 과정은 프로그래밍 관행, 소프트웨어 설계, 알고리즘 및 자료구조, 핵심 도구 및 방법이라는 네 가지 핵심 주제로 구성되어 있다.
- 학생들은 소프트웨어 개발의 최선의 관행을 내재화하기 위해 정기적인 코드 리뷰와 개선 활동에 참여한다.
- 학기 전반에 걸친 소프트웨어 프로젝트를 통해 학생들은 모든 과정의 개념을 복잡하고 유지보수 가능한 통계 소프트웨어 시스템을 구축하는 데 적용한다.
- 고정된 마감일이 없는 탄력적이고 숙달 기반의 성적 평가 시스템을 사용하여, 학생들이 관심과 난이도에 따라 과제를 선택할 수 있도록 한다.
- 활동 중심의 학습 기법과 수업 내 활동을 통해 추상적 개념에 대한 이해를 심화하고 참여도를 높인다.
- 강력한 프로그래밍 경험을 가진 TA가 정확한 피드백을 제공하며, 교육 자료는 복제 가능하도록 공개되어 있다.
실험 결과
연구 질문
- RQ1통계 대학원 과정은 어떻게 학생들이 복잡한 통계 소프트웨어 시스템을 개발하고 유지보수할 수 있도록 더 잘 준비시킬 수 있는가?
- RQ2프로그래밍 경험 부족한 통계학자들에게 소프트웨어 공학 기술을 가르치는 데 가장 효과적인 교육 전략은 무엇인가?
- RQ3통계 계산 교육에 소프트웨어 공학 원칙을 통합할 경우 학생들의 학습, 참여도, 프로젝트 성과에 어떤 영향을 미치는가?
- RQ4통계 대학원 과정 내에서 탄력적이고 프로젝트 기반의 소프트웨어 공학 커리큘럼을 구현할 때 발생하는 과제는 무엇인가?
주요 결과
- 학생들은 과정에 평균 11시간을 매주 할애했으며, 계획된 9시간을 초과하여, 이는 엄격하고 개념적으로 도전적인 과제 부담을 의미한다.
- 높은 과제 부담에도 불구하고, 학생들은 과정의 상호작용적이고 탄력적인 성격을 높이 평가했으며, 특히 관심과 능력 수준에 따라 과제를 선택할 수 있는 점을 선호했다.
- 과정의 탄력적인 과제 시스템으로 인해 시간 관리 문제 발생했으며, 일부 학생들은 마감일에 가까워지자 급하게 과제를 완료하는 경향이 있었다.
- Git을 이용한 버전 관리는 큰 도전 과제였으며, 학생들이 즉각적인 수정을 반복하면서 복잡한 기록 기록을 만들었고, 이를 해결하기 위해 인structor와 TA의 개입이 빈번히 필요했다.
- 실제 소프트웨어 공학 관행에 중점을 둔 과정은 학생들이 유지보수 가능하고 확장 가능한 통계 소프트웨어를 구축할 수 있는 능력을 크게 향상시켰다.
- 이 과정은 캐너기 멜론 대학교의 석사 통계 실천 전공 및 박사 통계학 및 데이터 과학 전공의 핵심 구성 요소로 자리매김했으며, 높은 학생 참여도와 긍정적인 피드백을 얻고 있다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.