□福州市仓山区第四中心小学 谢紫红
留心观察身边的事物,会发现生活中处处蕴含计算思维:小到项链大到街边的节日装饰,都蕴含排列模式的规则;出门前,会将需要的物品归置进包和口袋,这就是“预置和缓存”;出门时,路径的选择就是“在线算法”;购物结算时,选择排在哪一个队,就是“多服务器系统”的性能模型……从计算思维中引申出的方法论,对教学,尤其是信息技术学科的教学影响特别重大。用方法指导教学,将会在一定程度缓解科技飞速发展与课程内容滞后之间的矛盾,从思维和方法上重构信息技术课程的教学内容。2022年新课标中明确指出要培养学生初步具备解决问题的能力,发展计算思维。计算思维的引入,让整体的课程形态、教学内容、教学模式、评价方式、教材等方面都发生了改变。从小学基础教育阶段开始,通过编程教学可以培养和提升学生的计算思维。本文将以笔者的教学实践为基础,提出并验证了一种基于编程猫编译平台下的小学信息技术计算思维培养方式。
计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。简单来说就是指掌握一定的解决问题的思维模式。人类的大脑中蕴含极其复杂且精妙的算法,能根据所掌握的知识水平帮助人们自动进行一些快速的判断或选择。例如,当看到现在天上乌云密布,大脑就可以判断一会儿会下大雨,这个判断的结果导向是出门要带雨具。那么明天,后天、10天后出门是否需要带雨具呢?很少人能直接判断。在大数据时代,可以通过查阅天气预报信息来了解未来的天气情况,那么这些天气预报的网站是怎么预测的呢?实际上,计算机之所以能像人脑一样“预测”或“判断”某件事,是源于它在程序设计师那里习得了一些解决问题的“思维模式”。但,值得注意的是,计算机只能读懂“0”和“1”这两种机器代码。人类需通过“编译”的过程,将指令转化为计算机“听”得懂的语言,计算机才能根据接收到的指令进行工作,且它对每个接收到的指令只有两种选择——执行或不执行。因此,人们在“教”计算机完成一件事时,为了让“计算机”有效地执行指令,需将问题细化到可以让计算机对每条指令都能直接进行判断,并反馈执行结果的程度。这就让计算机形成了一种“大事化小”的解决问题的思维模式。它体现了利用计算机解决问题的一个思维过程,而在现实生活中,人们也会遇到许多复杂的问题,若能将这种思维模式应用于生活,将复杂问题细化成多个简单问题,有助于人们快速解决问题,这就是计算思维能力的魅力所在。
编程与计算思维的培养有密切关联,因此,可进行自动化、建模、仿真等操作的编程平台,在学生计算思维的培养方面有很大优势。首先,编程猫是一种可视化图块式编程工具,它能直观展示“角色”形象和指令运行结果,符合夸美纽斯的直观教育理论和学生身心发展水平,这样的运行界面能很好地调动学生的学习热情。其次,操作采用类似于“积木”堆叠,操作容易上手。再次,在创意设计过程中,学生需要去分析问题,思考问题解决方案,找到有效的方案,按步骤解决问题。最后,在运行环境上,编程猫可在手机、平板、台式机等多种操作设备上使用,为学生操作练习提供便利。信息技术学科具有很强的实践性,编程猫为学生计算思维的培养和训练提供了良好的载体,就小学生而言,是款十分合适编程学习的入门软件。它通过图文并茂的数据收集、表示和分析,使小学生能通过模式映射、模式识别和概念化,深入理解问题,引导学生关注问题的结构和问题解决方案,并按照逻辑步骤对指令进行排序。此外,它在编程中强调了感知和运动过程的关键作用。学生在脚本中编写的指令,能通过舞台上的角色直观呈现;修改参数,程序的运行结果也立即随之改变。且它可以通过触控、鼠标操控、键盘输入等多种方法操控,满足不同年龄层学生的操作需求,能很快学会程序运行环境的构建。使用编程猫平台编程是一个直接涉及知觉、本体感觉、执行控制和工作记忆要素的过程。在特定环境中显示了信息技术和计算思维的相互关联,从不同角度方改变学生的计算思维,并且这种改变是嵌套在涉及身体动作、认知过程和特定环境的联合活动中,有利于增强学生的核心竞争力。
编程猫的指令分为事件、控制、动作、外观、声音、画笔、侦测、运算、变量、列表、云变量、函数、高级这13大模块。这种模块化的指令分类,让学生对指令的选取和使用更具明确。计算思维的形成和发展是一个不断积累的过程,因此,计算思维的培养更应该从小开始。对小学生,需要通过技术平台,来激发学习兴趣,从而促进计算思维的形成和开发,而且能有效地适应计算机媒体的学习和教学,是发展小学生适当部署能力的创造性过程。此外,程序设计的过程不仅让学生在信息技术操作技能上更加熟练,同时为了程序的科学性,作品的整体美观性和完整性,也需要数学、科学、音乐、美术等学科的知识渗透,体现了学科间的融合,提升了学生的综合素质,有助于提高以计算思维为中心的小学信息技术教学质量。计算思维是高层次思维,培养小学生的计算思维需要提供四种能力:沟通能力、思考能力、解决问题的能力、运用技术的能力。因此,在课堂实践中,利用形象、直观的积木指令代替了枯燥、难记的代码指令的编程猫编程平台,开设以项目式学习为基础的程序设计课程,是理解和培养计算思维的最佳途径,将有助于小学生的计算思维发展到一个更高的水平。
计算思维最先是在数学教育的背景下使用,它指的是通过计算机编程来实现儿童的程序性思维。Jeanette Wing在此基础上,认为计算思维应该被视为一项核心技能,不仅在计算机编程过程中,而且在涉及人类分析能力的每一个行动中,例如,在复杂的任务解决期间,在选择问题的适当表示时,以及在对问题的相关方面进行建模以使其易于处理时,都可以使用。因此,计算思维是一种用于发现解决方案的启发式推理形式,以及人类思考的多层次抽象。通常,与数学和逻辑相关的关键要素是计算思维的基本连接特征。因此,一个开放的计算思维的培养框架中,具有以下阶段的问题解决过程:问题识别;数据收集分析;解决方案生成;解决方案实施;解决方案评估。这些阶段每个类别都涉及一些认知行为。因此,培养小学生计算思维的一个关键元素是允许认知者去除问题的不相关方面,从而专注于关键组成部分。这种能力与分解密切相关,它允许认知者将复杂的问题分解为更小的问题以提出合适的解决方案。所以在教学实践中可以采取以下两种措施。
受到年龄的限制和影响,学生在学习信息技术课的过程中,尤其是在学习基本编程概念时,常会出现一些困难,比如,编程构造、循环操作、结构控制和算法等概念对于学生而言遥远又抽象,很难理解,一味的概念讲授,直接就降低了课堂上与学生的互动水平,造成学生兴趣缺乏,学生容易出现畏难现象。所以,要用学生可以理解的方式来讲解这些概念,将抽象的概念转化到一个个具体的实例中,有效增加学生编程的动机,让他们主动探究,挖掘想要学习的知识。在讲解这些抽象概念时,教师可以创设故事情境,可以适当引导模仿交互性的游戏活动,让抽象的概念在计算思维的具体化和制定方法中进行情境化,并引导学生回到情境,将自己代入角色,学习与程序相一致的基本操作,在情境中推进的每一个步骤。学生将注意力高度集中在自己身上,每一次情境的调整,都将导向不同的结果。这样的学习过程可以使学生获得与原来不同的学习体验,拥有足够的活动体验,才能更好地开展程序设计。
例如,在讲解“位置”和“路径规划”时,学生对“角色方位”很容易弄错,对“路径规划”往往存在理解偏差。教师可以通过编写“带小蜜蜂到花园”这个小程序来加深学生对“位置”和“路径规划”问题的理解,设定“小蜜蜂”的行进路线于网格中,由于此时学生对方位选择、路径规划等问题并不明朗,这时候教师可以先进行一个体验游戏,使用一个由24片瓷砖(6×4)组成的大棋盘。棋盘由路径图块、目标图块(带有花朵或蜜罐的图像)和障碍图块(带有青蛙或雨云的图像)组成。让一个学生扮演“小蜜蜂”,按照要求,在棋盘上执行一系列简单的指令。其他学生需要使用指令,并按一定逻辑顺序编排指令,使“小蜜蜂”顺利到达目标位置。该活动分三个步骤实施:“细化”“执行/错误检测”和“错误修复”。首先,引导学生将指令细化到一个动作,如,向前1步、向后1步、向左转、向右转等。其次,通过编程猫平台,将指令进行排列。最后,引导学生说出路径规划和指令排列顺序,然后执行所有指令。执行指令后会发现,有的学生成功了,有的学生失败了,引导失败的学生对脚本进行修复。这种体验加程序验证的实施方法,学生可以敏锐地进行实验并分享错误,共同努力进行各种纠正。通过这些实践活动,激发学生根据明确定义的符号代码,积极使用他们以前学到的概念。
众所周知,学生总是无法抗拒游戏带来的诱惑,与其让他们一味地远离游戏,不如引导他们设计一个小游戏,更能提高学生的编程动机,促进计算思维的发展。一开始,可以选择让学生对熟悉的游戏进行模仿编程。注意,不宜选择太过复杂的游戏进行创建,要先从一个合适的新手编程环境创建简单的游戏开始,激发并保持学生的学习热情。例如,教师可以引导学生从制作剧情游戏入门,先确定故事大纲,然后规划游戏的角色和场景,分析角色和场景的出场、退出时间、角色的动作表达等。最后利用编程猫软件将故事情节演绎出来。
这个过程中,计算思维能力不仅与数字能力有关,而且与人类组织数字表示的方式有关。在上述的实例中,就在无形中引导学生进行故事情节和人物的顺序思考、逻辑思考以及抽象思考,提升“高级数字技能”。各种研究也都表明,在小学信息技术课程中,编程教学可以很好地帮助儿童更好地掌握高级数字技能。而高级数字技能可以提高他们在计算思维上的表现,表明了数字认知和计算思维之间的深层联系。在此基础上,利用编程猫进行编程教学,不仅可以增强学生的数学技能,而且能提高学生的计算思维。学生透过计算机这一媒介,一方面可以接受学习活动指导,另一方面促进学生在一系列的活动中计算思维获得极大的提升。
从理论的角度来看,最高层次的认知过程和最抽象的知识的获取是和环境密切相关的。具体来说,将认知的具体特征置于这些研究活动的中心,以展示计算思维背后的复杂过程。鉴于学生在发展方面存在巨大差异,在教学中要注意,对于同一内容的不同年龄层学生引入不同复杂程度的教学内容。以编程中的“重复执行”指令为例,对三、四年级的学生旨在使用无限循环和简单的次数循环结构的算法细化,例如,使用重复命令让足球滚动起来,或是使用重复执行画正多边形等;对五、六年级的学生旨在使用选择循环和嵌套循环结构,提升程序设计的人机交互性,精简脚本,优化算法。通过项目任务发布,引导学生学会将问题拆分,归纳总结问题解决方案,并将问题解决转化成一场指令代码序列的挑战,让学生深刻体会“明确指令”的重要性。因此,在教学实践中,教师需通过精心挑选和设计优秀示范案例、微视频等一系列教学资源,让学生感知程序设计的趣味性,鼓励学生勇于提出自己的建议,勇于改进和创新,在不断改进程序的过程中积累经验,熟练技能,成为程序的模仿者和改造者。进而引导学生观察生活,发现生活中的问题,通过设计、创建、实验、探究和分享过程中逐步发展成为一个程序的缔造者。通过多次项目开发训练,学生的编程操作水平不断提升,形成能利用所学知识经验快速理解现阶段学习任务,并通过指令集程序表达这些理解,最后通过角色展示接到指令信息后作出对应的能力。
综上所述,在小学信息技术教与学的过程中,教师要在教学过程的发展上进行创新,使学生理解信息技术的内容。通过编程猫提供的技能培训,认知管理情境和应用知识,能在小学信息技术教学中,传递知识、技能、态度和认知发展,尤其是高级计算思维的发展。基于编程猫平台下游戏化的学习和基于问题的学习,可以潜在地帮助小学生在信息技术课程入门中,表现更好的技术,进而影响他们在项目中的表现。