曾翰颖
摘要:计算思维的核心在于问题求解。本文首先介绍了二进制的有关概念,指出二进制思维的实质与问题求解之间的关系,然后探讨了问题在计算思维培养中的作用,最后以“狼羊菜”为例详细描述了计算思维培养的教学实施过程。
关键词:大学计算机基础;计算思维;二进制;问题求解;教学案例
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2019128-0122-03
计算思维目前是大学信息教育的重要内容。按照周以真教授的定义,计算思维是指运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动,尽管对此还存在着不同的看法,但计算思维的核心是问题求解却已是普遍的共识嘲。
1二进制思维
二进制是计算机科学中的一个重要概念,现代计算机所采用的冯·诺依曼体系结构,其要点之一就是使用二进制来表示数据和指令,因此对二进制的学习不仅有助于更好地掌握计算机工作原理,同时还能提升对于信息世界及其运作机制的理解。二进制有0和1两种状态,这个特点保障了计算机系统设计和实现的可行性、简易性和可靠性,如物理的高低电平、校验码纠错等;同时,0和1的二元状态又对应着逻辑上“对与错、真与假”,这成为二进制描述现实和问题求解的关键。
对立和统一是矛盾的根本属性,它们相互依存,但彼此间的作用又促使着事物的发展演变,因此通过挖掘事物中存在的矛盾对立点及其关联,经过不断的筛选、重组,从而让问题的答案逐渐显现出来,在这个过程中,新的矛盾会不断出现,所以上述步骤在问题求解的过程中会往复出现。在二进制中,0和1可以用来表示矛盾中的对立点,而0和1的组合(二进制序列)则可以表示矛盾之间的关联,然后通过约简、仿真、递归等多种手段来模拟演变的过程,最后获取问题的解答,因而二进制思维本质上就是一种“矛盾”思维,利用存在于事物内部的对立与统一,为问题求解提供了一条潜在的路径,同时由于矛盾存在的普遍性,使得二进制的问题求解方式具有较强的普适特点。
2问题的选择
思维能力培养的关键是知识迁移嘲,即通过探寻事物之间的联系,实现将现有经验投射到新的应用情境中,从而获得新问题的求解,在这个过程当中,事物间的要素匹配是关键,因此在进行思维能力培养时,问题选择显得非常重要,一方面,合适的问题能降低学生对于新知识的畏难情绪,避免陷入概念的泥沼而削弱学习的动机和信心;另一方面,问题能促进已有的经验与新的内容之间更好的形成联结,为实现知识的迁移奠定基础,计算思维与问题求解之间的关系可以参见图1。
有关使用二进制来求解的问题,如小白鼠试毒、背包问题等,其中小白鼠试毒在教学中使用较多,其描述如下:1000个外观一样的瓶子,其中一瓶有毒,任何生物喝下毒液后会在一个星期后死亡。现在给你10个小白鼠和一个星期时间,请问如何检验才能确定哪一瓶有毒?这个问题有一些变体,但其中矛盾对立点却是相同的,例如“生和死”“投喂和不投喂”等,但笔者在教学中选择的是“狼羊菜”问题。
“狼羊菜”的问题描述如下:农夫带一狼、一羊、一菜过河,小船每次只能载一物,但农夫离开时,狼会吃羊、羊会吃菜,那农夫该怎么做,才能将所有货物完好无损的载过河?之所以选择“狼羊菜”作为教学的导人问题,是因为这种不需要借助计算机知识就能求得答案的问题,能更好地激发学生的学习动机,促使其将已有的知识经验与新内容联结起来,符合建构主义的学习情境设置,同时这种在问题探究中所形成的学习期望,也能有效地促进智慧型知识技能的习得,相比而言,虽然小白鼠试毒的问题虽然更具有创造性,但学生往往无从下手,反而会对教学内容的展开造成了阻碍;此外,“狼羊菜”问题还能与其他计算机知识关联起来,如数据结构、程序设计等,从而为学生后续课程的学习奠定基础。
3二进制的问题求解
计算思维的本质之一是抽象,即找出事物的一般规律,然后借助计算机概念来进行描述并获得问题求解,有关二进制的问题求解过程见图2。在引入题前先要对相关计算机知识进行铺垫,如二进制概念及数的表示;思考非计算机方式的解是必要且重要的,为的是触动学生现有的知识结构,无论是否能得到答案,都会对后面理解计算机的解带来帮助;在挖掘矛盾对立点时,要注意问题中隐含的约束条件,起点(假定为左岸)和终点(假定为右岸)是显而易见的对立点,那么对于狼吃羊、羊吃羊,它们的对立点是“狼不吃羊、羊不吃菜”吗?这显然不合逻辑,也是思考时容易犯的错误,结合约束条件就能发现,狼只有和农夫在一起时才不吃羊,所以在本題中“狼吃羊”的矛盾对立点应该是“和农夫在一起”,这时候狼就吃不了羊,类似的还有“羊吃菜”。
接下来的矛盾及其关联的二进制描述是求解的关键步骤,在本题中假定起点用0表示,终点用1表示,然后将农夫、狼、羊、菜按此顺序用二进制序列表示,如0000表示全部在左岸,1101表示农夫、狼、菜在右岸,羊在左岸等,那么原来的问题就转换为一个从0000出发,在约束条件的限定下,最终到达1111(全部去了右岸)的路径选择问题,然后将这个二进制的演变过程转换为相应的现实描述,就能得到该问题的解,如表1就是该问题其中的一个解,在授课中可以让学生参照着求出问题的其他解。
实际的教学中由于使用了PPT的动画演示,使得这个过程更加形象生动,同时还能按照教师的意图来逐步展开,引导学生在思考中逼近答案,促进教学目标的达成,图3左就是授课课件中的一张截图。当问题求解完成之后及时进行总结,重点包括两个方面:第一,通过回顾来强化新方法求解问题的思路、步骤和要点;第二,让学生将自身原有经验与新的知识进行对比,找出异同优劣,促进知识重构的形成。
4深入与反思
如果仅仅作为一种新方法的讲授,课程到这里已经达到目的,但计算思维是包括系统设计实现在内的一系列使用计算机进行自动求解的全过程,因此课程在小结之后应当继续深入。以“狼羊菜”问题为例,问题求解的表格形式更贴近人们的日常习惯,但却不是计算机描述与求解问题的方式,于是就此引入了“树”的概念,将表格转换为树形状态图(图3右),问题于是进一步的演化为计算机中的“二叉树及其遍历”,对于部分层次较高的学生,不仅可以展示相关代码及其运行结果,还可以在算法选择上进行介绍,尤其对于理工科而言,通常还有后续的程序设计类课程,而这部分先修内容对他们未来的学习将起到一定铺垫的作用。至此才是一个较为完整的计算思维教学过程,即:完成对于问题的抽象及其符号描述,并使用计算机技术来进行自动化的求解。
为了达到教学评价和知识巩固的目的,可以通过布置课外的习题,如小白鼠试毒等,并简要讲解其中的要点。由于每种方式都有它的局限性,因此最后还要引导学生反思不足,如二进制思维因为立足于矛盾的对立统一,因而在分析时更多是定性而非定量的,同时也无法很好地描述处于离散状态的对象等,而这种深入与反思的过程对于着眼于问题求解的思维能力培养是非常重要的。
5结论
与技能培养不同,思维能力培养更关注原因和意义,不仅要知道“怎么做”,更要知道“为什么这样做”,因此思维能力培养的重点在于判断和选择,即对问题进行识别并选择恰当的方法,而各种技能(包括思维技能)的学习则为此提供了实现的工具。以程序设计为例,掌握了计算机语言的语法规则,并不必然的带给学习者使用它来解决问题的能力,因为对于计算思维而言,问题求解包括了分解、模式识别、抽象和算法开发等多个步骤,计算机语言只不过是其中一些步骤的实现工具而已。
随着计算科学和信息技术的发展,计算思维不仅在传统工程领域,在其他领域,如社会网络分析、行为决策等方面也发挥了越来越重要的作用,因而已成了各类信息教育中不可或缺的重要组成部分,而教学的模式与设计则是当前计算思维培养所面临的主要问题之一,本文以二进制为例,详细探讨有关计算思维培养中的教学实施过程,其价值不仅在于提供了一个教学的案例,同时也可以作为其他教师在进行相关教学设计时的参考。