APP下载

从构造角度突破计算思维教学的探索

2017-09-14王颖

教育教学论坛 2017年37期
关键词:构造计算思维教学

王颖

摘要:计算思维教学目前已成为大学计算机基础课程的教学热点,但其教学内容、教学模式及教学方法等教学要素都还处在探索和研究阶段。本文认为,计算思维的教学核心应该是思维,要突破思维的教学,关键是要让学生在思维过程中通过比较、分析、实践等活动理解和掌握计算思维的科学思维方法。鉴于此,本文主张计算思维教学应紧扣计算思维的构造本质,让学生由浅入深地学习和理解计算世界的经典构造样例,潜移默化地获取计算思维能力。

关键词:计算思维;教学;构造

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)37-0142-03

一、前言

目前,面向计算思维培养方向的计算机基础课程教学改革在高校计算机基础教学业界已基本达成共识,一批业内优秀的专家学者已就“计算思维”教学的内容、方法、形式等各方面做了相对深入的探讨,并针对性地推出了一批以计算思维培养为导向的计算机基础教材。其中较有影响的计算思维教学相关教材主要有《计算思维导论》(陈国良主编)、《计算思维导论》(唐培和等主编)、《大学计算机:计算思维导论》(战德臣等主编)、《大学计算机——信息计算与智能》(李波等编著)。

作为先行者,这些以培养学生计算思维为目的的教材一般都紧扣“教指委”白皮书的相关精神,改变了以前产品教学的弊病,从思维培养的角度重新组织了教学内容。纵观这些教材涉及的内容,基本可分为以下几类:

1.概念说明型。这类教材往往在原有的计算机基础教材的基础上添加一个“计算思维”的相关概念,整个教材的组织模式、表达风格、教学内容等与原来的计算机教材大同小异,只是在解释与总结过程中插入相关“计算思维”概念,给它披上了一件“计算思维”的外衣。

2.专业强化型。这类教材一般从计算思维涉及的内容出发,从一个接近专业教学的角度,将计算思维涉及的主要内容囊括其中,其架构更接近于一个精细版的计算机专业课导论。

3.嫁接拼凑型。这类教材走中间路线,将原有的基础课教学内容与专业课教学内容通过计算思维这个纽带捆绑到一起,重新组织教学内容,强化思维过程的描述,强调计算思维能力的培养。

上述三类教材组织模式,第一类偏于形式,学生最终收获的只是概念,对能力的培养收效不大;第二类对于大部分非专业的学生尤其是文科生来说难度过大,可操作空间较小;第三类虽然做了兼顾,但匠气很重,教学中跳跃幅度较大,感觉牵强,整体感不强。鉴于此,笔者认为,计算思维教材的编写一定要“打破老砂锅,另起新炉灶”,认真分析“计算思维”概念,以“计算思维”能力培养为主线,摆脱原有束缚,重新组织和编写结构与思想全新的教材。

二、计算思维概念

计算思维,周以真教授定义为:运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。根据我国《高等学校计算机科学与技术专业人才专业能力构成与培养》给出了计算思维能力的9个能力点:问题的符号表示(Symbolic Problem)、问题求解过程的符号表示(Symbolic Problem Solving Process)、逻辑思维(Logical Thinking)、抽象思维(Abstract Thinking)、形式化证明(Formal Proof)、建立模型(Modeling)、实现类计算(Implement Category Computing)、实现模型计算(Implement Modeling Computing)、利用计算机技术(Develop solutions with Computer)。

根据上述计算思维的定义与能力点的定义,似乎很难找到一个简便方法来教学计算思维,因为它涉及的内容太宽太空泛,每一个能力点可能都需要一本书才能讲清楚,直接把这些能力点融合像不可能完成的任务。但如果仔细思考一下,不追求大而全,强调直接命中,换个角度看,计算思维实质上就可看成是一种构造思维,这种思维活动的目的是为了找到一种方法,最终很好地解决问题。计算思维的目的是解决问题,学习计算思维的目的是为了能像计算机科学家一样分析和解决问题。如果能把计算科学发展历程中的经典思维方法的构造过程与学习者一起讨论和分享,让学习者在讨论和实现的过程中感受其中的科学原理、思想精华应该是个不错的选择。基于此思想,笔者构造了图1,把计算思维理解为一种基于抽象思维之上的受限的构造思维。它包括三个方面的要素,即抽象、构造与限定性。其实计算思维能力人皆有之,只是强弱不同而已,计算思维教学应该起一个总结和概括的作用,作为一门大学基础素质培养课程,只要把计算思维中涉及的抽象的方法、构造的方法和限定性的考虑等内容教授给学生,让他们在现实问题求解中能自觉不自觉地应用就行了。

三、计算思维的教学内容

既然学习计算思维的目的是应用,那么掌握计算思维的关键点就是基于计算思维的构造方法了。如图2“计算思维构造形式与原则”所示,计算思维的构造可大致分为静态构造和动态构造两种形式。静态构造主要牵涉的是结构的设计与定义。动态构造主要是一种过程的表达。在计算思维中一般把动态构造概括成两种形式:迭代与递归。如果在这两种基础构造过程中再充分考虑计算思维的独特属性——受限性,如:复杂度、可行性、确定性等基本特性,则基于计算思维的构造表达就应该被认为是成功的。如果一个人在解决问题的时候能准确运用这样的构造方法,就应该被认为具有较高计算思维能力,这也正是计算思维教学的核心目标。

四、计算思维的教学方法探讨

由于計算思维涉及的内容庞杂,牵涉的概念也很多,把这些内容和概念都讲透几乎不可能。笔者认为,计算思维只是一个概念,概念是在经历长期的成长过程后由人总结和归纳出来的,不是凭空产生的。而人的思想、思维习惯也是如此,需要经过漫长的学习理解,充分吸收知识中的营养后,在得到自身认可的情况下才能养成。死记硬背只能增加知识,潜移默化才能影响思想。既然计算思维培养的是思维能力,让学生成为思维的主角应该是教学活动中的第一个必要条件。要让学生成为计算思维教学活动中的主角,最好的办法莫过于让他们亲自以身处境,感受计算机科学家一路前进的艰辛,在一个个问题被提出并用计算思维思想解决过程中,让他们感受计算思维的成功并在内心被感染。endprint

计算思维的目的是解决问题,学习计算思维的目的是为了能像计算机科学家一样分析和解决问题。如果能把计算科学发展历程中的经典思维方法的构造过程与学习者一起讨论和分享,让学习者在讨论和实现的过程中感受其中的科学原理、思想精华,应该是个不错的选择。实际上,计算世界的一切都是构造的,只要紧扣构造这个概念,就能真正领悟计算思维并获取计算思维能力,下面,就来讨论一下从计算思维学习的角度如何看待构造问题。

1.简单静态构造教学形式。以二进制编码教学为例,所有的计算思维导向的教材都要强化介绍这部分内容。内容一般是原码、补码的编码与运算,有的再加上浮点数的编码与运算。方法一般是先抛出概念,再用几个例子验证。目的似乎是让学生明白补码就是这样一种东西,整个过程与思维无关。其实,从计算思维的角度来看,补码本身就是一个经典的构造样例。由于数有符号,因此计算机在进行加法运算时将要面临符号的表示和处理问题,定义了补码这样一个结构,符号就可以看成数据无区分运算,从而使一切代数运算可看成由基础的加法运算构造而成的。如果从这个角度让学生理解补码这种构造的由来,而不是死记补码这个权威概念,让学生通过分析、讨论感受这一构造的科学性,感受计算思维的妙处,甚至可以鼓励他们自己尝试构造类似结构,并分析讨论其是否符合计算思维思想,觉得在需要时是不是也可以构造一个类似的结构,那么,关于思维培养的目的不就达到了吗?

2.对比不同构造方法教学形式。构造从方法上分,可分为静态构造和动态构造。静态构造涉及的内容为结构和定义,动态构造体现的就是算法。结构对应的是一个构造中各独立对象之间的拓扑关系,可分为线性关系、树形关系、网状关系、二维表格型关系等,而定义则描述的是对象本身,如对象中数据的定义、存取方式、应用范围等。以线性关系为例,在计算思维教学中有三个经典的构造样例可以介绍,它们分别是数组、队列、和栈。这三个概念在《数据结构》和《程序设计》课程的教学中通常都被看成是重要内容,教师在介绍它们的时候往往是分开成三个不同的概念教学,因为传统的教学中它们被分开在不同的章节甚至是不同的教材上。但从计算思维的角度看,这三个概念确是一个最好展现构造思维经典教学样例。教学中不妨展现对比表1:

通过分析上表,可以让学生认识到,计算思维中的构造源于生活,是对生活中各种特殊现象的抽象与升华。静态的构造实际上就是设计相应的结构并定义它们的操作方式,除了上述的数据结构的定义外,计算思维中协议的定义也堪称静态构造的精华,如IP协议中5类IP地址的构造就很有思想价值。

3.动态构造教学原则。动态构造在教学上往往体现于算法,算法是多态的,但其构造的实质却是迭代和递归两种方法。可以說,从计算思维角度看,算法只有两种,就是迭代和递归。介绍算法应该紧扣迭代与递归之间的本质差别,让学生能准确分辨出算法中的迭代和递归的表达模式,并尝试用这两种方式去构造一个个动态过程。在这种教学模式下,程序的语言被弱化成表达构造思想的工具,完全可以根据需要随时摘取相关有用内容用以将构造思想表达为程序,仅作为思想的验证工具,如果在教学过程中再加上一些算法的分析与比较,让学生认识到可行性、可靠性、效率、可移植性等计算思维相关指标,动态构造的教学就相对完美了。

五、结论

从构造角度教学计算思维,可以发现,以构造为线索,计算思维中所需要掌握的能力点被分散在了不同层次的构造用例中,整个教学过程顺理成章,不会存在割裂现象,也不会出现刻意的灌输概念的情况,让学生在不断深入的构造学习中潜移默化地感受计算思维的构造本质,从而获取计算思维能力。

基于上述思想,笔者认为,计算思维的教材编写与教学应该以构造为主线,通过由前到后、由浅到深不同层次的构造来阐述计算思维中的核心思想,甚至从宏观上可以直接以计算科学的发展脉络来组织这些构造用例,让学习者以一种旁观者或亲历者的身份感受计算思维思想从萌芽到不断壮大的过程。让他们从内心感受计算思维的强大并不自觉地成为计算思维的践行者。具体的教材组织可从硬件和软件两个方面同时出发,选择其发展过程中的关键构造思想节点,如硬件可从半加器的构造、加法器构造、运算器构造、计算机系统构造一直讲到互联网的构造,软件从二进制的构造、数据类型构造、算法构造、过程构造、类的构造一直可以讲到软件系统的构造。围绕这些构造用例,结合计算思维中所关注的简约、冗余、纠错、嵌入等相关概念,丰富对这些构造用例的描述,强化对计算思维的理解。这,或许是突破计算思维教学难题的一个有效方法。

参考文献:

[1]周以真(Jeannette M.Wing).Computational Thinking[J].Communications of the ACM,2006,(3).

[2]教育部高等学校大学计算机课程教学指导委员会.计算思维教学改革宣言[J].中国大学教学,2013,(07):10.

[3]熊建生.结构思维:当代思想的新范式[J].江汉论坛,2007,(11):63-65.

[4]孙锡江.风险思维[J].思维与智慧,1993,(05):10.endprint

猜你喜欢

构造计算思维教学
“自我诊断表”在高中数学教学中的应用
对外汉语教学中“想”和“要”的比较
程序设计课程中计算思维和应用能力培养问题研究
跨越式跳高的教学绝招