计算思维视域下问题驱动式小学编程教学实践研究

2024-10-25 00:00:00徐钦
中国信息技术教育 2024年20期

摘要:本文提出,促进计算思维培养的编程教学以问题驱动式教学为中心,包括提出问题、分析问题、设计算法、验证方案和问题推广等环节,并以公开课《有趣的分支结构—if语句的嵌套》为例,介绍了少儿编程的具体实践做法。

关键词:计算思维;Python编程;问题驱动式教学

中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)14-0000-04

目前,义务教育阶段正逐渐开展以Python编程为基础的算法教学,笔者所在学校也以Python作为程序语言教学的载体,面向高年级学生开设课后服务课程“趣味Python”,旨在满足学生多样化、个性化的学习需求,发展学生的计算思维和培养科技创新精神,并为后续《义务教育信息科技课程标准(2022年版)》(以下简称“新课标”)中的“过程与控制”“小型系统模拟”模块的学习奠定基础。

概念界定

1.计算思维

新课标中对“计算思维”的定义为:个体运用计算机科学领域的思想方法,在问题解决过程中涉及的抽象、分解、建模、算法设计等思维活动。[1]笔者结合小学生的知识经验基础、Python编程基础内容及新课标要求,将高年段学生的计算思维培养目标确定为:针对简单的任务,能够分析、界定问题,识别主要特征;了解算法的特征和效率;使用自然语言或流程图的方式描述算法;初步认识顺序、分支、循环三种基本结构;掌握一门简单的编程语言实现方案并验证;对算法的正确性和执行效率进行辨析;尝试对算法进行迭代和优化,并迁移运用到相关的问题解决过程中,初步养成算法思维的习惯。

2.问题驱动式教学

问题驱动式教学是教师和学生之间,以问题为中心进行的双主体的双互动教学。[2]概括来说,教师作为知识的促进者和指导者,根据教学内容,精心创设问题情境,引导学生开展自主、协作式学习,在提出问题、分析问题、探究问题、解决问题的交互过程中,让学生对知识展开积极建构,发展高阶思维,促进深度学习的发生。

问题驱动式教学模式的构建

1.模式设计原则

(1)以Python编程为基础

笔者根据小学生的认知经验和特点,统筹规划通俗易懂且富有趣味性的Python学习内容,以顺序结构、分支结构和循环结构为单位分板块教学,在生动、具体的编程实例中穿插讲解Python的基础知识、语法规则等。学生掌握Python初级课程,奠定扎实的知识基础,有利于思维的发展。

(2)以计算思维为目标

笔者通过实施问题驱动式教学,对学生的思维进行分步式、阶梯式的引导,使其经历思考、分析、编程、调试、优化迭代等完整的学习体验。学生在自主探究的过程中得到锻炼与提升计算思维能力。

(3)以问题创设为核心

问题创设是整个教学的关键核心,具有真实性、弱构性、多要素重叠等特征。一个合适的问题情境要结合少儿的心理特征,能充分激发学习兴趣和探究欲望,促进知识的灵活提取和有意义建构。同时,学生在核心问题的驱动下,在问题链的层层牵引下,将持续地聚焦于编程学习活动,最终实现思维深度与广度的拓展。

(4)以合作学习为方法

笔者重构教学组织方式和学习方式,从“学会操作”的价值诉求向“形成学科核心素养”转变。无论是问题驱动的教学模式还是计算思维视角下的教学模式,都鼓励采取协作探究、合作学习的方式,引导学生在同伴交流互助中,拓宽解决问题的思路,激活思维想象力,培养合作意识。

2.教学模式操作流程

笔者结合问题驱动式教学的一般模式、计算思维的概念以及Python编程教学的特点,构建了问题驱动下计算思维培养的Python教学模式操作流程,具体包括提出问题、分析问题、设计算法、验证方案、问题推广五个步骤,如图1所示。

教学案例的应用

下面,笔者以《有趣的分支结构—if语句嵌套》一课为例,说明问题驱动式教学模式下少小学Python编程教学的实践过程。

1.教学内容分析

本课选自笔者所在学校校本课程“趣味Python”中的第9课,教学目标为:理解if语句的嵌套原理及语法结构,能够综合分析,编写程序代码实现“火车站进站系统”的案例。“火车站进站系统”包括验票和安检两个小系统,且存在一定的关联性。旅客在有火车票的前提下,通过验票系统后才能进行安检。在旅客安检时,机器根据是否携带违禁品做出不同的反馈信息。本课属于校本课程中的“分支结构”单元的最后一课,是在单分支、双分支、多分支内容基础上安排新知部分,既是对前期知识的巩固,也是对编程结构的综合性应用,旨在帮助学生建立清晰的逻辑关系,体验生活中无处不在的控制系统。笔者基于大概念的分析单元概念、课时概念,进一步厘清教学内容,明确教学目标,建立知识关系图(如图2)。

2.学情分析

教学对象是五年级学生,他们通过前期的学习,具备一定的数理逻辑和程序思维,且有探究热情和创新意识。大部分学生能较好地理解并掌握Python分支结构的语法格式,熟练编写简单的代码,但对机器系统背后的逻辑原理仍难以理解。

3.教学过程

(1)提出问题

本节课的问题情境来自学生熟悉的生活,即让学生说一说乘坐公共交通出行时进站的经历。教师播放新闻视频,视频中的旅客携带活体宠物狗,在安检时被查出来,因而不能进站候车。

核心问题:如何运用编程知识,编写模拟“火车站进站系统”小程序?功能描述如下:首先,检查旅客是否有火车票,如果有则通过继续接受安检,否则,提示要先购买车票。接着,在安检时,要检查旅客是否携带违禁品,如果有违禁品则提示不允许上车,如无,则顺利通过安检,安心候车。

(2)分析问题

核心问题复杂且宏观,因此,师生需要共同协作,尝试将其分解、拆分、转化为一系列能解决的小问题。教师借助课件、学习单等逐一呈现子问题,在互动式问答中进一步梳理思路、规划方案。基础型问题链如下:

子问题1:“火车站进站系统”分别检测什么?可分为哪两个小的系统?

子问题2:“验票系统”和“安检系统”分别用什么结构实现?它们之间存在怎样的关系?

通过分析问题,有效训练学生的算法思想,激发主动参与学习意识,点燃思维的火花。

(3)设计算法

根据前期的讨论和交流,学生逐渐明晰思路,但还需要从计算机解决问题的角度理解和设计方案。教师及时进行层层设问,问题由现实问题向计算机能解决的问题转变。应用型问题链如下:

子问题3:根据学习单上的自然语言描述,如何补全流程图?

子问题4:要获取哪些数据信息?定义哪些类型的变量?

子问题5:if语句嵌套结构的格式是什么?

教师提供流程图框架,学生尝试填写流程图表示算法设计(如图3)。针对本节课的重点—if嵌套结构的语法格式,教师仍需要适当地予以讲解与演示。师生之间相互研讨交流,展示算法设计方案,进一步补充完善设计思路。

(4)验证方案

学生开展实践活动,逐一解决问题,在软件中编写Python代码,调试运行,实施并验证方案。应用型问题链如下:

子问题6:如何用Python编程实现算法方案?

子问题7:调试程序,观察能否正常运行,如何修改BUG?

子问题8:两段不同的程序代码,结果有何异同?

在此过程中,教师提供参考性的微视频、技术文档、学习单、半成品等资源作为辅助性学习资料,并及时巡视指导,反馈共性问题。最终,学生展示案例作品,开展成果交流评价,深入理解程序的正确性、简洁性、可读性。

(5)问题推广

教师组织学生进行学习评价与总结,鼓励学生从工程设计思维的角度,调用跨学科知识开展创新设计。同时,在课后作业“实践园”中,提供相似的情境,如校园晨午检系统等,供学生在课后继续探索。迁移问题链如下:

子问题9:如果你是工程师,在现有“火车站进站系统”的基础上,如何优化或增加其他功能?小组展开头脑风暴,说一说想法。

子问题10:“实践园”中的两个案例情境,如何解决?

学生进行自我学习评价,并灵活、自主地将计算思维的方法迁移应用到类似的问题情境中。这也是对计算思维中模式匹配思维的强化与训练,有助于培养学生运用数字化工具改善生活的能力,形成社会责任意识。

践行问题驱动式编程教学的策略

1.抓住核心,创设问题情境,激活思维意识

建构主义强调个体在特定的环境中,进行旧知识的改造与重组、新知识的吸收与建构,最终达到平衡。新课标也提倡遴选“科”与“技”并重的内容,营造真实性学习氛围,创设出生活化的、有意义的真实情境,并以此衍生出亟待解决的核心问题。区别于非情境化且解决方案单一的良构问题,具有一定复杂性、开放性、求解方案不确定性的劣构问题更能调动学生多学科的知识储备,将零碎的知识进行系统化整合。所以,教师应以核心问题驱动,充分预设问题链,精心组织教学资源,搭建学习支架,引导学生结合生活经验,围绕核心问题参与互动式学习,积极探索用信息科技的手段解决问题的过程与方法,经历自主建构知识的全过程,激活思维螺旋上升式发展。

2.组织阶梯式问题链,发展思维能力

维果茨基的最近发展区理论提出,学生在教师或同伴的帮助下,能够激发自身的潜能,自主探究达到更高层次的发展水平。在此理论的指导下,以及核心问题的驱动下,教师可运用“问题链”的方式,将问题拆解成一系列指向明确、逻辑相关、层次递进的子问题集合,吸引学生全身心地参与到学习活动中。

例如,在本节课中,笔者在各环节中均设置了多个子问题,形成多条问题链。学生在阶梯式问题链的驱动下,不断地分析、抽象、讨论、模拟、验证方案,在潜移默化中理解并掌握if语句的嵌套结构,体验从原理认知到实践操作再到迁移应用的高阶思维发展过程。

3.创新设置“问题推广”环节,提升思维品质

在问题驱动的教学模式中,教师可设置“问题推广”环节,让学生对所学内容及科学方法进行复盘和整理,帮助其建构完整的知识体系。教师利用发散型问题链拓展学生的思维空间,调动新旧知的重组、建构以及迁移应用,实现发散思维、逻辑思维、计算思维等多维度的发展。例如,在本节课中,学生以“工程师”的角色对“火车站进站系统”进行全盘思考和优化迭代,在讨论、交流、汇报中展开思维的碰撞。最后,通过“实践园”的拓展案例,鼓励学生进行迁移运用。

参考文献:

[1]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2022.

[2]陈彬.问题驱动式教学在“人工智能”课程中的探索与应用[J].计算机工程与科学,2014,36(S2):279-282.

本文系江苏省中小学教学研究课题“基于‘1+X’问题链的小学信息技术教学实践研究”(编号:2021JY14-L74)、南京市教育科学“十四五”规划2021年度立项课题“计算思维视域下小学创客教育校本课程的建设研究”(编号:L/2021/169)阶段性研究成果。