山东省邹城市南屯煤矿学校 许红霞 贾艳霞
计算思维是由周以真教授提出的,指的是以与计算机技术有关的基本概念为基础,对有关问题进行解答、设计等与计算机技术有关的各类思维活动。随后,越来越多的专家学者投入计算思维的研究与分析。2016年,《中国学生发展核心素养》正式出台,给学生的能力培养和个人发展提出了更为明确的要求。2017年,国务院明确要求在中小学教学中增加人工智能的有关课程,加大力度推进编程教育。
尽管在十多年前周以真教授便提出了计算思维的概念,但从我国研究的整体情况来看,专门针对计算思维的研究仍然有所欠缺,整体上仍然处在初级阶段,无法与小学信息技术课程的日常教学结合起来。与此同时,其中大部分内容都属于理论研究的层次,无法为小学教学工作起到良好的指导作用。根据统计可以发现,对计算思维的理论研究占六到七成,足以说明研究者将研究重点更多地放在理论层面。由于实践研究不足,无法建构起完善的信息技术教学体系,学生的计算思维一直都难以实现有效培养。
在以往的教学活动中,教师对计算思维的了解较少。直到新课标正式颁布,教师才逐渐接触到计算思维这一概念。然而,由于教学经验不足,教师对计算思维的认识和了解并不全面,深度也有所不足。同时大部分认识都停留在理论层面,对如何将其与日常教学活动相结合的了解有所不足。教师作为信息技术课程的组织者和设计者,他们对计算思维的认知直接决定了学生的学习情况。当教师对计算思维的理论研究和实践研究都有所不足时,自然无法实现对学生计算思维的培养,图形化编程课程的教学水平提升也受到了一定影响。
在当前的小学信息技术课程教学中,教师主要采用的仍然是灌输式教学方法。由于信息技术的有关理论知识相对枯燥无趣,学生在学习时不可避免地会遇到一些障碍。而灌输式教学方法过度关注学生的理论掌握和实际操作,忽视了对学生思维方式的培养。在这一教学模式下,学生在学习时只是机械地对案例进行模仿,却不能形成自己的认识和进行独立的思考。正是由于教师的培养方式欠缺,信息技术课程无法收获预期的教学效果。
从教学实践中可以发现,构建合适的教学情境对激发学生的学习兴趣、优化教学效果具有重要意义。故而,以计算思维为导向的小学图形化编程教学,应当以调动学生的学习积极性为基础,不断优化教学情境的设计,从学生的学习感受出发,联系他们的日常生活,以便让学生发自内心地对编程学习产生兴趣。例如,在学习火柴人跳舞这一节课程时,引导学生认识不同的图形化编程软件并对其具体的使用方法有所了解,是教师的重要任务,也是图形化编程教学的前提。但传统教学方法明显难以调动学生的兴趣,无法引导学生熟练地掌握上述软件的使用方法。为此,教师可以以积木游戏为载体创设合适的教学情境,并逐渐过渡到编程软件的介绍和分析中。从搭建积木的生活经验出发,学生能进行迁移性学习,将积木类比为控件,在控件的组合之中达到一定的教学效果。
在小学图形化编程教学过程中,游戏制作也是一种经典的教学模式,是学生普遍感兴趣的一种学习途径。一个优质游戏的制作往往要求制作者具有多类功能,倘若在学生体验过游戏以后就直接要求他们进行制作,他们通常很难下手。之所以会出现这一问题,很大程度上是因为学生普遍缺少由上到下对问题进行分析的能力,而这正是计算思维中“分解”思维的重要体现。就这一问题,学生面临的难题主要体现为两方面:首先,学生无法将不同子功能间的联系梳理清楚;其次,学生无法将各子功能的自然语言转化为编程语言。为此,教师可以有针对性地处理这两个问题:第一,教师可以利用模块化的程序思维引导学生将一些复杂度较高的问题细化为不同的子问题。第二,教师还应当进一步细化子问题的表述方法,以便学生能更好地构建底层逻辑。随后,就可以要求学生根据自己的认知情况开始子模块的构建。
在课堂教学中,当学生已经完成部分脚本编写工作以后,教师应当适时打断学生,鼓励他们重新阅读脚本内容。在这一过程中,教师可以提出一些问题来加深学生对脚本的理解。例如,“你认为这段脚本的功能在于什么?”“你能否用最简单的语言概括这段脚本的作用?”通过这些问题进行引导,能让学生站在模块化的角度反复阅读脚本,对程序有更全面、系统的了解。在日积月累的训练之下,学生在阅读脚本时眼中看到的便不只是一个个底层指令,而是一些承担了不同职能的模块,这也有助于促进学生对脚本的抽象认识。例如,在学习“花朵缤纷”这一节课时,学生经常会对“重复五次”的指令有所误解,不能设计出一个完整的花朵,而是设计出一些散着的花瓣。为此,教师应当鼓励学生认真分析“重复五次”这一环节的价值,让他们认识到这一环节的主要作用就是“形成一朵完整的花”。这样一来,学生对脚本便形成了更加模块化的认识,在设计过程中也很少会出现错误。
通过以由上到下的方式分解问题,以重读脚本的方式认识程序,能引导学生以正确、科学的思维学习并实践编程知识。然而,仅依靠这两种引导模式,并不能保证学生顺利地完成编程任务。在日常教学中,倘若学生仍然存在关系混淆、程序不清等问题,教师就需要提高对交流评价的重视程度,组织全班学生将自己的编程成果展示出来,对每一个作品及其采用的子模块进行及时的评估。由于不同的子模块指向的是不同的功能,因此教师在进行评估时,也应当引导学生建立起模块化思想。当学生能熟练地以模块化视角审视子模块与其功能的关系时,也能更深入地理解脚本与功能之间的关系。同时在未来的编程活动中,他们也能养成“逐段调试”的好习惯,从而实现对计算思维的进一步塑造。例如,在学习“小猫出题”这一部分内容时,学生经常会发现在输入正确答案以后,程序仍然出现错误的显示。在展示评估以后,学生很快便能发现模块之间的混乱。这时,教师就要告诉学生出现错误在所难免,但重点是要将脚本与子功能一一对应,判断其是否正常,学生的评估能力也能在这一过程中实现发展与提升。
促进程序的模块化既有助于降低学生对脚本的理解难度,又有助于复用相关代码。对学生来说,对程序设计的学习是一个循序渐进的过程。在小学阶段,能站在模块化的立场上来分析并理解程序,有助于为学生后续的编程学习打下良好基础。在不断深入的学习之下,教师应当找机会对已经完成的脚本进行反思和重构。只有这样,才能深化学生的计算思维,帮助学生在面对类似的问题时学会应用计算思维进行处理。例如,“画城堡”这节课的难点在于如何理解积木块的作用,并熟练地进行操作。为此,教师在正式授课结束以后,可以用一课时的时间进行课例统整,反思并重构已经形成的作品,不断提高学生的熟练度,训练他们形成计算思维。
总而言之,以计算思维为导向进行小学图形化编程课教学具有重要意义。在信息技术不断发展的背景下,编程语言和编程平台都在进行革新和优化,而思维层面也应当做出相应的改变和提升。模块化程序设计的教学思维是从编程技术和计算思维两方面入手来解决小学编程课教学中出现的问题,也是适应信息社会变化的重要途径。