面向计算思维培养的算法教学案例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

111
计算机教育
Computer Education
第 7 期2018 年 7 月 10 日
中图分类号:G642
文章编号:1672-5913(2018)07-0111-03面向计算思维培养的算法教学案例
李 旭,赵秀岩,康 丽,沈 岚,姚春龙
(大连工业大学 信息科学与工程学院,辽宁 大连 116034)摘 要:针对非计算机专业学生学习计算机基础课程后不能学以致用的问题,提出以思维培养为切入点进行教学改革,精心设计以问题为驱动的教学案例,引导学生对现实问题进行建模、分析、比较、抽象,利用流程图描述解决问题的步骤,通过改革教学方法,变知识的传授为思维的训练,激发学生对计算机科学的兴趣,使学生热爱计算机科学并积极探索,真正将计算思维融入后续的专业学习和一切活动中。

关键词:思维培养;问题解决;思维过程;计算机基础课程
0 引 言
计算机基础课程是高等院校非计算机专业学生的计算机入门课程,旨在培养学生利用计算机去获取、分析、加工、处理、传递信息,解决实际问题的思路和能力,为将来使用计算机解决各自专业问题打下良好的基础。

然而,根据多年的授课情况看,学生在学完整门课程后虽然能够了解和掌握大学计算机基础课程的基本知识和技能,但是往往不能系统、全面地认识和应用这些知识,在后续的专业学习中遇到问题时,想不到用计算机知识去解决,或者想使用计算机却不知道如何应用学过的知识。

因此,为了更好发挥计算机基础课程在高校人才培养课程体系中的基础支撑作用,培养出适合时代需要的具有创新思维和综合应用能力的各领域专业人才,开展从“基于知识的技能传授”向“基于应用的思维能力培养”转变的计算机基础课程教学改革是必要且迫切的。

2006年3月,美国卡耐基·梅隆大学计算机科学系主任周以真首次提出并定义计算思维的概念,周教授认为计算思维是运用计算机科学的基础概念进行问题求解、系统设计、人类行为理解等涵盖计算机科学广度的一系列思维活动[1]。


基金项目:大连工业大学教育教学改革研究项目(JGLX16084、JGLX16037、JGLX16043)。

第一作者简介:李旭,女,副教授,研究方向为自然语言处理、机器学习,lixu102@。

算思维代表着一种普遍的认识和一类普适的技能,在科学技术日新月异的信息时代,我们每一个人都应该热心于它的学习和运用。

然而目前对于计算思维能力培养的认识,一定程度上还停留在对国外思想的吸收和消化阶段。

如何让计算思维能力培养在课程教学中真正落地是需要深入探讨和解决的问题。

1 传统算法教学中存在的问题
独立思考和解决问题的能力是高校人才培养的目标之一。

美国著名心理学和计算机专家西蒙指出:当一个人接受一项任务,但又不知道如何去完成它时,他面临的就是一个问题。

西蒙将问题解决看做人类认知的三类信息加工过程之一。

为解决某一特定问题而设计的确定的有限的步骤称为算法。

算法设计与分析在培养学生独立思考、分析问题和解决问题能力方面具有重要作用。

然而在传统的算法教学中,教师往往将教学重点放在算法的解释上,教学方法通常采用“介绍—举例—演示”三部曲教学法。

算法解释生涩乏味、案例选取不接地气没有吸引力,学生感觉没有实际应用价值。

这种授课方式下往往是老师讲、学生听,留给学生主动思考的空间少,久而
2018
112
计算机教育
Computer Education
路还要不要铺设?
(4)如果添加一条道路,使设计方案中产生了一个“循环路线”,即从一条路离开一栋房子后还能走另外一条路回到这栋房子,这条道路还要不要添加?
(5)铺设方法是唯一的么?你能想到的使用最少石砖数的铺法有几种?
(6)请用自然语言把你铺设最少石砖的方法描述出来。

(7)如果用圆圈表示地图中的房子,用线条和数字表示地图中的道路,计算机科学家们称这种结构为图。

在图中,圆圈代表的房子称为节点,节点之间的线条代表泥泞的道路,每条道路的长度用线条旁的数字标明。

请画出与上述地图相对应的图结构。

这种将房子缩写成节点、道路表示为线条和数字的过程称为问题建模。

(8)在图中,如果从一个顶点到另一个顶点有路径相连,我们称这两个顶点是连通的。

如果图中任意两点都是连通的,该图被称为连通图。

那么上述求地图中连接所有房子的最少石砖数是不是已经转化为求连通图的总长最短的路径问题?在计算机科学中该类问题被定义为最小生成树问题。

该问题之所以被称为“最小”是因为它要求拥有最小的石砖总数,“生成”代表了每一栋房子都和另外一栋连接起来,最终得到的正确方案的形状看起来则像一棵“树”——如果你从任一栋房子出发,都会有一条或多条道路从这里“分叉”出去,而这每一条分支稍后又会有其他的分支,但是两条分支永远无法回指或相交,如果你让他们相交了,说明将有两条道路能通往同一栋房子,则其中的一条必是浪费石砖的选择。

(9)如图2所示的大一点城市的布局图,请画出与布局图相对应的图结构。

久之使学生思维退化,导致懒学甚至厌学。

在面向思维培养的计算机基础教学改革实施以来,我们充分认识到算法教学对培养学生解决问题能力的重要性,认识到传统的算法教学之所以效果不佳其根本原因在于没有掌握算法的本质——问题的建模、分解、抽象和自动化,在问题求解过程中没有充分调动学生的主观能动性、激发学生的求知欲。

2 面向思维培养的算法教学改革与实践
在实际生活中,图的最小花费生成树问题在城市水管、天然气管道规划、最少通信线路铺设以及物流公司的最小成本分析等领域有着广泛的应用,它也是算法设计中贪婪法的一个典型问题。

以最小花费问题为例说明面向思维培养的算法教学改革与实践。

2.1 通俗易懂的案例选取
泥泞城市[2]案例描述如下:假设有一座城市还未铺上道路,下雨之后要在这座城市中行走是一件非常困难的事情,地面被雨水浸湿,满是泥泞,车辆纷纷陷入泥沼之中,人们的鞋子上沾满了污泥。

于是市长痛下决心,一定要在一些道路砌上石砖,但是钱必须用在刀刃上,他不想浪费经费,因此他下达了以下两个要求:
(1)必须铺设足够的道路,让每个人都能从家里沿着铺好的道路到达别人的房子。

(2)所花费的经费越少越好。

在两栋房子之间的道路上铺上的石砖数代表了铺路所需要的费用。

2.2 以问题为驱动引导学生主动思考、自主解决问题
通过设计一连串问题,问题之间有层次渐进关系,逐步引导学生深入思考、归纳总结,进而找出并描述解决问题的步骤。

对于泥泞城市案例,设计的问题如下:
(1)设想这座小城仅有5栋房子和7条路(图1)。

为了连接所有的房子,且要使用最少的石砖,房子之间的每个方块代表需在此铺上一块石砖,哪些道路必须铺上石砖?
(2)将这5栋房子连接起来,至少需要铺几条路?
(3)如果已经选择在房子A 、B 和B 、C
之间分别铺设石砖,直接从房子A 到房子C 的道
图1 泥泞城市
第 7 期
113
教育与教学研究
增加石砖直到全部房子都被连接起来,注意增加路径时不能产生循环线路。

问题(7)引导学生通过抽象、简化建立能刻画该类实际问题的一般模型,如图3所示,使学生水到渠成地得出问题(8)的结论:该问题即为求解连通图的总长最短的路径问题。

图2
大一点的泥泞城市
(10)是否能应用刚才设计出的最少石砖数算法,找出大一点城市的石砖铺设方法?这个算法对于更大规模的相同问题是否依然有效?
(11)请用流程图描述铺设最少石砖数的算法,即用流程图描述最小生成树算法。

(12)你是否还能找出其他方法解决该问题?请用流程图把解决步骤描述出来。

(13)解决最小花费问题,上述算法的执行步骤一样吗?哪种方法更优,请说明原因。

对于问题(1)这样小规模的最小花费问题,学生通常很快就能得出最少需铺设7块石砖的最优方案,也会回答出连接5栋房子,至少需要铺设4条路。

问题(3)和问题(4)能够让学生充分思考并明确设计方案中一定不能存在循环线路。

通过问题(5)和(6)的引导和提问,学生通常能自主归纳总结出以下两种铺设最少石砖的方法:①从一张空白地图开始,按照路径长度从小到大添加道路,逐步增加石砖直到全部房子都被连接起来,注意增加路径时不能将两个已经连接的房子再用其他道路连接起来,产生“循环”线路。

当路径长度相同时,改变添加路径的顺序,会产生不同的最终布局,但是最后的结果依然能保持需要石砖的总数最少。

②从一个房子开始,遍历与该房子或已连接房子相连接的其他房子,使用连接路径中的最小长度添加道路,逐步
图3
问题建模
参考文献:
[1] Wing J M. Computational thinking [J]. Communications of the ACM, 2006, 49(3): 1-6.[2] 孙俊峰, 杨帆. 不插电的计算机科学[M]. 武汉: 华中科技大学出版社, 2010: 140-146.
[3] 朱君波, 龚沛曾, 杨志强. 以计算思维为切入点的递归算法教学改革[J]. 计算机教育, 2017 (7): 30-33.
(编辑:彭远红)
问题(9)和(10)引导学生验证算法的正确性和有效性,归纳总结出求解该类问题的普适算法。

问题(11)和(12)要求学生用流程图准确、规范地描述出算法的步骤,自主“实现”计算机中经典的Kruskal 算法或Prim 算法。

问题(13)引导学生通过比较执行步数判定算法的性能。

3 结 语
上述实例展示了面向计算思维培养的算法教学改革,在不改变教学大纲和内容的基础上,通过改进教学方法,有意识地将与思维培养相关的问题分解、抽象和自动化的方法自然地融入到教学中,培养了学生独立思考、主动参与、实际探究的能力。

精心设计的教学案例,以及学生与老师“风云际会”的互动过程大大增加了学生对知识的兴趣,开启他们探索知识的航程。

通过对我校非计算机专业开展面向思维的算法教学改革实践,学生的课堂活跃度大大提升,学习积极性、主动性高涨。

相关文档
最新文档