创新思维品质培养的信息学教学实践

    陈智敏 黄细光

    

    

    

    摘要:本文以“数字三角形”一题为例,通过在教学实践中不断地提出问题并适时点拨,从深度优先搜索到动态规划,引导学生在原有算法的基础上不断完善优化,从而发展主动思维、发散思维、求异思维、逆向思维等,形成科学稳定的知识逻辑结构,并最终培养创新思维。

    关键词:拔尖创新人才;创新思维;信息学教学;数字三角形

    中图分类号:G434 ?文献标识码:A ?论文编号:1674-2117(2021)07-0043-03

    相對于基本的逻辑思维而言,创新思维是一种高阶思维,是一种主动发现问题、提出见解并积极探索的思维。在各种思维方式中,主动思维、发散思维、求异思维、逆向思维是创新性思维结构的重要组成要素[1],创新思维就是主动对聚合和发散思维、求同和求异思维、正向和逆向思维等的交互运用。[2]因此,笔者以“数字三角形”一题为例探讨如何在信息学教学中通过引导学生在原有的基础上更好地完善算法的方式,发展主动思维、发散思维、求异思维、逆向思维等,最终培养学生的创新思维。[3]

    创新思维培养的教学实践

    创新源于对问题的解决,信息学教学中的创新思维培养离不开“一题多解”的问题情境。“数字三角形”一题的问题描述为:在一个数字三角形中,从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数(每个数不超过100)加起来可以得到一个和,请找到最大的和。注意:路径上的每一步只能从一个数走到下一层中和它最近的左边的那个数或者右边的那个数,行数不超过100,程序运行时间限制为1秒。

    1.主动思维的培养

    一题多解的问题情境有助于激发学生的主动思维,让学生想探究、能探究。结合之前的基础算法知识,包括递归与递推算法、深度优先及广度优先搜索算法等内容的学习,再通过对问题的需求情况及已知条件的分析,学生们很快都提出了算法1,即采用常见的深搜算法定义一个函数dfs(int x,int y,int sum),表示从上往下,搜索到第x行、第y列时得到和sum,每搜索一层则加上当前位置上的数a[x][y],当搜索到最后一行,采用打擂台的方式存储最大值到ans中,否则继续递归到正下方或者右下,即dfs(x+1,y,sum)与dfs(x+1,y+1,sum)。主程序中调用dfs(1,1,0),最后直接输出ans即可。算法1的核心参考程序如下页图1所示。

    2.求异思维的培养

    在信息学教学中,讲题等交流讨论活动能够充分调动学生学习的主观能动性,使其思维处于一种兴奋的状态。[4]通过鼓励学生讲述不同的思路,会有部分学生突破常规思维,产生新思路,他们在不带参数sum的情况下,定义了一个函数opt(int x,int y),表示从上往下,搜索到第x行、第y列所能够得到的最大和,直接递归求解,由下至上直到a[1][1],主程序中调用opt(1,1)并输出结果。因此,算法1可采用描述式的写法表示为图2所示的样子。

    但是,算法2和算法1在效率上没有区别,由于搜索的数据过多导致用时过长,时间超限。那么,怎么改进算法才能在时间限制范围内通过更多的数据?疑问是激发学生发散思维的源泉,因此,笔者设立数据范围这一障碍激发学生疑问,以疑问引发思考。

    3.发散思维的培养

    在讨论原有算法的可行性与不足之处的基础上,加上适当的点拨,学生通过发散思维,对之前所学过的知识进行重新组合、分析并变通,找出新的问题解决方案。例如,有学生提到,opt(x,y)表示一种状态,“opt(x,y)=a[x][y]+max(opt(x+1,y),opt(x+1,y+1))”是状态之间的转移方式,但是每个状态opt(x,y)会被调用多次,即出现冗余计算。而使用标记数组,将与状态有关且有用的信息记录下来,然后再对后面的状态进行搜索,当状态已经搜索过,则可以直接调用信息,从而减少冗余计算。这就是记忆化搜索,因此可以将opt(x,y)状态的值“a[x][y] + max(opt(x+1,y),opt(x+1,y+1))”存储到数组f[x][y]中,算法2可进一步表示为如下页图3所示的样子。

    那么,是否可以采用递推方式的做法?递推算法的基本思想是使用已有的信息推知新的信息,与递归的过程恰恰相反。追问可以加快思维节奏,促成学习发生。聚焦于问题的解决,通过进一步的讨论与交流,学生发现可以采用递推的方法逐步推进,由下往上,求解每个阶段每个状态的最优解,算法3可以进一步改写为如下页图4所示的样子。

    4.逆向思维的培养

    很多时候,学生在学习的过程中容易形成思维定势,所以,为了提高思维的灵活性,信息学教学中需要经常反其道而行之,破除正向思维定势的束缚。针对以上问题,也可以设f[i][j]为从起点到达i行j列处所能得到的最优答案,则转移方程也可改写为f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j],即当前最优答案为上一层能转移到此位置的两个位置的最优答案加上当前数字。

    5.聚合思维的培养

    聚合思维主要体现为思维的深度,任何领域的创新,都必须先对该领域已有的知识和经验进行深入的了解。上述过程中,通过组织学生交流与讨论,学生认识到了算法之间时间效率的差异性,并通过深度搜索到动态规划的演化,对“分阶段性求问题的最优解”“设置状态转移简化问题”“采用递推的方法逐步推进达到总问题最优解”等概念有了初步的认识,教师就此直接对动态规划算法的思想及简单应用进行更为详细的讲解,包括“如何分析问题划分阶段”“如何设置状态推导转移方程”等,以加深对知识的理解,并通过一系列的题目促进学生对知识的巩固及运用。

    总结

    笔者通过“数字三角形”一题,循序渐进,不断地提出问题,引导学生有序分析与思考问题,加强对问题及教学内容的思考,养成主动思维的习惯[5];不断追问点拨,从深度优先搜索到动态规划,促使学生在原有算法的基础上不断完善优化,发展主动思维、发散思维、求异思维、逆向思维等,形成科学稳定的知识逻辑结构[6],并最终培养创新思维。该实践避免了以标准程序局限学生的创新思维,全面提升了学习品质。[7]

    参考文献:

    [1]魏淑慧.研究式教学与学生创新思维能力的培养[J].山东师范大学学报:人文社会科学版,2008(05):68-72.

    [2]张义生.论创新思维的本质[J].中共中央党校学报,2004(04):28-31.

    [3]钟良锋.“以人为本”的信息学竞赛辅导教学[J].教育信息技术,2014(09):32-34.

    [4]祁进.中学生高阶思维发展的PBL教学模式探索——以信息学奥赛辅导为例[J].中小学电教,2018(12):13-14.

    [5]刘凤兰.基于学生思维发展的初中信息学课堂提问策略[J].中国教育技术装备,2017(05):84-85.

    [6]宋新波,陈智敏,黄细光.信息学课程教学中如何开展科学探究教育——以莫比乌斯反演问题为例[J].中国信息技术教育,2020(11):50-53.

    [7]陈茂贤.学习品质培养视角下信息学编程教育创新实施[J].中国信息技术教育,2019(07):42-44+67.

    作者简介:陈智敏(1988—),男,广东汕头人,中学一级教师,硕士,中山纪念中学高中信息技术教师,主要从事学科教学设计与信息学竞赛教育研究。