[论文解读] Expanding the scope of statistical computing: Training statisticians to be software engineers
本文提出了一门面向研究生的统计计算课程,通过实践代码审查、代码修改以及一个学期的软件项目,系统性地训练统计学家掌握软件工程实践——包括编程实践、软件设计、算法与数据结构,以及关键工具。该课程成功地使学生具备构建和维护复杂统计软件(如R包和生产级系统)的能力,弥补了传统统计学课程体系中的关键短板。
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.
研究动机与目标
- 为应对统计学家在开发和维护复杂统计软件方面日益增长的需求,而不仅限于一次性分析。
- 弥合传统统计计算课程与现代数据科学和统计研究中软件工程要求之间的差距。
- 通过基于项目、反馈丰富的课程体系,使统计学研究生掌握版本控制、测试和可扩展设计等关键软件工程技能。
- 创建一个将软件工程原则融入统计学与数据科学教育的示范性课程体系,以满足未来从业者和研究者的需求。
提出的方法
- 课程围绕四个核心主题展开:编程实践、软件设计、算法与数据结构,以及关键工具与方法。
- 学生通过定期的代码审查与修改,内化软件开发的最佳实践。
- 一个为期一学期的软件项目使学生能够综合运用课程中所学概念,构建复杂且可维护的统计软件系统。
- 课程采用灵活的、基于掌握程度的评分体系,无固定截止日期,允许学生根据兴趣和难度自主选择作业。
- 采用主动学习方法和课堂活动,以增强参与度,并深化对抽象概念的理解。
- 具有扎实编程经验的教学助理提供针对性反馈,课程材料对公众开放,可供复制。
实验结果
研究问题
- RQ1统计学研究生项目如何能更好地培养学生开发和维护复杂统计软件系统的能力?
- RQ2针对软件开发经验有限的统计学家,哪些教学策略在教授软件工程技能方面最为有效?
- RQ3将软件工程原则融入统计计算教育,如何影响学生的学习效果、参与度以及项目成果?
- RQ4在统计学研究生项目中实施灵活的、基于项目的软件工程课程时,会面临哪些挑战?
主要发现
- 学生报告每周平均投入11小时在该课程上,超过预期的9小时,表明课程工作量大且具有高度概念性挑战。
- 尽管工作量繁重,学生仍高度认可课程的互动性与灵活性,尤其是可根据兴趣和能力水平自主选择作业的机制。
- 灵活的作业系统导致时间管理挑战,部分学生拖延,临近学期末才匆忙完成作业。
- 使用Git进行版本控制构成重大挑战,学生常因随意修复导致提交历史错乱,需教师和助教介入解决。
- 课程对真实世界软件工程实践的强调,显著提升了学生构建可维护、可扩展统计软件的能力。
- 该课程已成为卡内基梅隆大学统计实践理学硕士和统计学与数据科学哲学博士项目的核心组成部分,学生参与度高,反馈积极。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。