分享自:

基于历史文献的卡塔兰数算法项目教学研究

期刊:SIGCSE '06

本文是David Pengelley, Inna Pivkina, Desh Ranjan和Karen Villaverde(均来自新墨西哥州立大学,New Mexico State University)联合撰写的一篇教学实践论文。它于2006年3月发表在ACM SIGCSE(计算机科学教育特别兴趣小组)会议上,收录在会议论文集《SIGCSE’06》中。文章的主题是探讨如何利用历史原始文献(即法国数学家加布里埃尔·拉梅于1838年发表的论文)在计算机科学本科高年级的“算法与数据结构”课程中教授动态规划(Dynamic Programming),并详细介绍了基于该文献设计的教学项目及其成效。

这篇论文并非报告一项单一的原始科学研究,而是介绍了一项创新的教学方法和一个具体的教学项目。它属于对一种教学方法的设计、实施、评估的经验总结。因此,下文将按照其自身逻辑结构,提炼并详细阐述其主要观点和内容。

论文主要观点一:利用原始历史文献进行教学,对计算机科学和数学教育具有显著优势。

作者团队隶属于新墨西哥州立大学一个跨数学与计算机科学系的合作小组,他们长期致力于在教学中引入基于原始历史文献的学生项目。其核心观点是,阅读历史上伟大思想家的原始工作,能为学习带来多方面的益处。这些益处包括:1) 提供背景与动机:帮助学生理解概念和方法的起源问题及驱动力量,从而提升学习动力。2) 培养更广阔的视野:揭示数学的社会与历史背景。3) 锻炼语言与演绎技能:研读原始文本需要精细的阅读和理解能力。4) 体现学科本质与研究的实践性:让学生体验探索的冒险与兴奋感,展示过去天才的原始创造力,阐明学科从过去到现在的发展脉络。5) 深化技术理解:理论最初的简单形式往往是理解其复杂形态的强大助力。

在计算机科学教育这一特定情境下,这种教学方法还有一个特殊价值:它重新发现了计算机科学与离散数学共享的概念根源。通常,计算机科学的历史被认为非常短暂。这种方法将计算机科学与更悠久的历史联系起来,表明计算机科学并非凭空出现,其根源在数个世纪以来的其他学科中就已开始发展。此外,学生通过这种练习,能够实践将问题的口头描述(verbal descriptions)转化为精确数学公式的技能,并常常需要为一个详细过程识别组织概念。这种能力对于软件工程师至关重要,因为他们必须将客户的口头需求转化为精确的代码修改,并理解这些修改对大型程序结构的影响。将现代编程技术应用于历史上的挑战,并看到过去困难的问题在今天可以轻松解决,能有效激发学生的兴趣、动力和对科学的普遍欣赏。

论文主要观点二:作者团队设计了一个具体教学项目,以拉梅关于多边形三角划分计数(即卡特兰数)的1838年论文为核心,来教授动态规划等核心概念。

该项目的目标是用于“算法与数据结构”这门大三/大四课程。动态规划是算法开发中的重要范式。通常教学中,如最优多边形三角剖分(optimal polygon triangulation)等问题会引出卡特兰数(Catalan numbers)。学生通常被告知卡特兰数的公式,但缺少对其来源的深入理解。这个项目通过拉梅的原始论文,让学生以一种更有趣的方式学习卡特兰数及其闭式公式的一个优雅证明。拉梅的证明通过比较计算多边形三角划分数量的两种不同方法,巧妙地推导出了卡特兰数的递推关系和闭式解。

项目要求学生仔细阅读拉梅论文的翻译节选,并完成一系列交织的数学和编程练习。任务设计涵盖多个方面:1) 理解与可视化:绘制多边形三角划分,理解相关定义。2) 数学推导与证明:使用数学归纳法证明多边形三角划分的性质;理解并推导拉梅论文中的递推公式(公式1)和计数公式(公式2),并最终组合两者得出简化递推式(公式3)和卡特兰数的闭式解。3) 编程实践与算法分析:编写简单的递归函数直接实现拉梅的递推公式;观察该朴素递归算法的低效率;通过数学归纳法证明卡特兰数至少以指数增长,从而论证暴力枚举(brute-force)算法的不切实际;随后,应用动态规划思想,通过存储已计算值(即“存储与重用”)来编写更高效的算法。4) 性能比较与评估:运行不同实现(朴素递归、基于简化递推的递归、动态规划),记录计算不同规模问题的耗时,并绘制图表进行比较分析。5) 概念整合:讨论选择不同的递推公式(公式1与公式3)以及使用动态规划与朴素递归编程对计算效率的影响。

通过这些任务,学生得以学习和实践计算机科学与离散数学中的许多重要概念,包括递归思维、归纳法、计数与枚举结构、高效编程、算法运行时间比较、高效算法设计的重要性等。

论文主要观点三:该项目在两届课程中进行了教学实践,并根据学生反馈进行了迭代改进,取得了积极的教学效果。

项目首次于2004年秋季学期使用。其时,项目占课程总成绩的15%,分为四个部分,包含约8个问题,涉及证明、编程、枚举、绘图、定量分析和算法速度比较等。学生在实验课上单独完成,每部分耗时一周。学生反馈显示,完成项目后他们真正体会到了动态规划的益处。但也有一部分学生认为项目太难(尤其是证明部分),且相对于其工作量,15%的占比偏低。

针对学生的担忧,作者在2005年春季学期使用了修改版本。修订版显著减少了需要证明的问题和编程任务的数量。项目分为两部分,分别包含10个和8个问题,学生有一周时间完成每个部分。在此期间没有布置其他作业,学生可以以1-2人小组形式合作完成。项目仍占总成绩的15%。尽管仍有学生觉得项目困难,但所有学生在项目上的表现均优于课程中的其他作业。作者将此归因于使用历史文献带来的学生动机和兴趣的提升。

通过课程前后的问卷调查对项目效果进行了评估。在19名学生中,有17人认为从历史文献中学习数学是有益的。学生列举的益处包括:“背景为信息提供了挂钩点”、“有助于理解其他数学概念的来源”、“通过例子学习”、“让内容更有趣”、“理解在必要时如何重新发现某些思想”、“了解现在解决起来是多么容易”。此外,课程结束后,学生对自己数学技能的信心有所增加(“非常有信心”的比例从26%升至32%)。课程也帮助学生认识到数学对计算机科学的重要性:在课前问卷中,47%的学生认为数学非常重要,47%认为有些重要,6%认为不重要;在课后问卷中,58%认为非常重要,42%认为有些重要,没有人认为不重要。有学生写道,使用历史项目“真正扩展了一个人的视野,你离开时会更有知识、更见多识广”。

论文的主要价值与意义在于,它为一个具体的、可复用的跨学科教学案例提供了详尽的蓝图和效果评估。

该论文不仅仅是一篇理念倡导文章,它附上了完整的项目任务书(包括拉梅原始论文的节选翻译和详细的练习题),使得其他教育工作者可以直接借鉴或改编使用。它展示了如何将数学史、离散数学、算法设计与分析以及编程实践有机地融合在一个连贯的项目中。通过将历史文本作为学习的核心材料,该项目成功地将算法概念(动态规划)置于一个真实的历史和问题解决情境中,从而促进了更深层次的理解和更强的学习动机。

论文的结论是,这种基于历史原始文献的项目可以成为一种有效且有趣的教学动态规划的方法,并且增强了学生对数学与计算机科学之间联系的认识。这项工作得到了美国国家科学基金会本科生教育部门的资助,是其更广泛的“在数学教学中使用原始历史资料”项目的一部分,为在科学、技术、工程和数学教育中融入人文历史视角提供了成功的范例。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com