您好, 访客   登录/注册

浅析中学视域下计算思维培养

来源:用户上传      作者:

  中学信息技术教育面临这样一个困境———知识的更新换代日新月异,而教材的更新需要一个周期性。同时,作为一门中学学科,“工具论”的教学目标并不属于计算机学科能力的范畴。所以,计算思维的出现是破解这样一个困局的很好抓手。计算思维的着眼点并不是对软件工具的学习,软件工具的学习只是一种技能培训,缺乏相关的学科思维,计算思维的着眼点是培养解决问题的方法和能力。
  一、思维教学的可行性
  思维是一种在大脑中流动的意识,而它究竟是什么,则有一种不可名状的感觉。那么,思维可不可教呢?举例,知道矩形是平行四边形、平行四边形对边相等,那么可以根据三段论的演绎方法推断出“矩形的对边相等”,这是一个逻辑判断的过程。这样的逻辑思维过程并不是每个人与生俱来的,而是在不断的数学学习过程中养成的,所以思维是可以被教授、被学习、被掌握的。但单纯的计算思维教学又是不存在的,计算思维的培养必须在相应的学科教学中。计算思维的概念最早是由计算机科学家提出的,虽然计算思维不只是计算机学科特有的,但更多的教学活动是依托计算机学科开展的。
  二、计算思维的学科载体
  思维的培养与内容分不开,内容决定了思维的深度和宽度。计算思维的教学离不开学科内容,那么这部分载体是什么呢?是不是所有的课程内容都可以用来培养计算思维呢?计算思维的“计算”是什么?计算是对信息的加工和转换。计算思维本质上是解决问题的思维。从广义层面讲,很多问题的解决都可以应用计算思维。但是,计算思维不是一个框,什么都能往里面装,这样的话就不能体现它的学科特点。尤其在中学阶段的信息技术教学中,计算思维的培养一定要有清晰的结构,这样才有利于任课教师的操作,学生也能更好地掌握其中的一些规律和方法。纵观中学信息技术课程内容,算法是最好的教学素材,因为算法本就是解决问题的方法和步骤。
  三、计算思维的方法
  思维是认知的高级阶段,思维的过程是复杂的、抽象的,这一过程很难用语言去表述。数学思维、物理思维都有其独特的方法,计算思维的过程必须也要有个方法,否则在教学过程中不好操作。董荣胜教授认为:计算思维是运用计算机科学的思想与方法进行问题求解、系统设计以及人类行为理解等,涵盖计算机科学之广度的一系列思维活动。计算思维的本质是什么?周以真教授提出,计算思维的本质是抽象与自动化。抽象是很多学科共有的特点。数学、物理中常见的是将问题抽象成图形或符号,然后再通过概括、判断、推理、归纳得出结果。计算机学科本质上源于数学学科,所以抽象的方法可以借鉴。“自动化”符合计算机解决问题的特点。冯·诺依曼体系结构的特点就是自动化地去处理数据得出结果。但是,“自动化”指的不是计算机的行为,而是人机协同,人是主导,计算机是协助,这个过程主要通过算法实现,自动化是结果。当然,也并不是所有计算思维解决的问题都要计算机协助,人力所及的简单问题处理则不需要。
  根据上面的分析,我们就可以将计算思维的过程具体化、步骤化。抽象是分析问题的开始,自动化是结果,但是抽象不可能直接到自动化,中间过程可以通过数学科学中的概括、计算机学科中的算法来进行连接。王荣良教授提出的“抽象—形式化表达—构造—自动化”的计算机思维方法路径,很适合中学阶段开展计算思维的教学。“形式化表达”的目的是将抽象的内容进行概括,概括的方法有数学表达式、伪代码、图形等。“构造”运用的主要是数学方法———化归,化归的目的是将类似的问题引到解决此类问题的一般常见算法上,“构造”实际上是要建立一个解决问题的有效操作步骤,流程图是图形化了的算法,这一过程可以通过流程图来实现。同时,流程图也具备“自动化”的属性,也可作为计算思维解决问题的最终结果的展现。
  四、常用算法
  算法是计算机学科的核心内容。中学阶段以算法为载体进行计算思维教学有两大优势,一是算法能体现计算思维的特点,有学科特色,且算法过程能局部反映思维过程;二是部分算法可以零基础学习,对计算机学科知识的要求不高。
  (一)穷举算法
  穷举,也叫枚举,在一定的数据范围内,如果根据问题的要求不能直接找出某个或某些数据,那么只有将这些数据一一列举出来,根据问题的“约束条件”进行验证,从而得出问题的解。穷举算法的优点是比较直观,容易理解;缺点是当数据范围较大时,效率较低。
  (二)分治算法
  分治,是将一个难以解决的大问题分解成一些规模较小、相互独立的若干相同子问题,分而治之后,再合成得到原问题的解。二分查找(折半查找或对分查找)是一个典型的分治算法,优点是比较次数少,查找速度快。分治算法一般和递归一起使用。
  (三)回溯算法
  回溯,从问题的某一个状态出发,按照某一个“方向”前进一步,如果走到道路的“尽头”还没有找到问题的解,那么后退(回溯)一步或若干步,从另一个“方向”前进一步,直到找到问题的解。如果回溯到问题的初始状态还要后退,则问题无解。回溯算法一般和递归一起使用。
  (四)递归算法
  递归,将原问题分解为若干个规模较小,与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解決。这些问题的演化过程是一个从大到小,由近及远的过程,在这个过程中会遇到一个明确的终点(递归边界),遇到递归边界原路返回,直至原点,最后解决原问题。
  (五)递推算法
  递推,关键是找到相邻项之间的递推式(递推关系)。从问题的初始状态,利用递推关系从前往后依次得出中间结果,直至最终问题的解,称为“顺推”。从问题的最终解(或某个中间状态)推导出初始状态,称为“逆推”。递推算法一般和循环一起使用。
  (六)贪心算法
  贪心,从局部的最优解扩展得到全局的最优解(或近似解)。贪心算法与递推类似,都是从问题的某一个状态出发向目标递进,但不同的是,递推依据的是递推关系,贪心依据的是一个局部的最优选择,所以合适的贪心策略是解决贪心问题的关键。
  (七)模拟算法
  模拟,顾名思义就是按照问题所描述的运行方式逐步操作,不需要自己去想解决方案,只需要“按部就班”,看似“简单”,但也是一种方法。模拟算法解题的关键是审题要仔细,分析要全面。
  五、教学案例
  案例:全班同学进行猜数游戏,教师在纸上写一个范围在1~100之间的数,全班同学猜,教师提示大了或小了,看哪个同学用了最少的次数猜到这个数。
  根据以上描述,当前问题可使用分治算法里的二分法查找来解决。
  【参考文献】
  [1]王荣良.中小学计算思维教育实践[M].上海.上海科技教育出版社,2019
  [2]董荣胜.计算思维的结构[M].北京.人民邮电出版社,2017
  [3]江涛,宋新波,朱全民.CCF中学生计算机程序设计(基础篇)[M].北京.科学出版社,2016
  (江苏省南通田家炳中学,江苏南通226001)
转载注明来源:https://www.xzbu.com/9/view-15250727.htm