徐伟东
摘要:程序设计教学是当前中小学信息技术教育的主轴内容。程序设计教学不是为了培养“码农”,而应着眼于培养学生的计算思维、创新能力等数字时代新素养和新品质。作者提出,从“代码中心”走向“学习者中心”,程序设计教学必然要有与以往不同的教学策略,如①循序渐进:降低程序设计学习难度;②针对个性:提供多样化学习支架;③项目学习:驱动学生全身心投入;④基于探究:发挥学生的主体积极性等。但教学有法,教无定法,真正好的程序设计教学一定会有一个基于学科特点并切合学情的教学设计。
关键词:程序设计;学习者中心;教学策略
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2022)05-0033-03
随着时代的不断发展,中小学信息技术课程的理念、内容与方法也在不断地发生着迭代与发展。信息技术课程对学生的培养目标也从以往使其成为信息社会的合格公民发展到使其成为数字社会的计算思维者。程序设计教学作为计算思维培养和发展的最有效载体,已成为中小学信息技术课程内容的主轴,而“人人会编程”又成为时代发展的潮流和趋势。但程序设计教学不是要以培养“码农”为目标,而是要在程序设计教学中真正地发展学生的计算思维,让他们能够适应数字化社会创新趋势。因此,以计算思维为导向的程序设计教学不能再使用传统的讲练结合方式,而应以学习者为中心进行教学设计。下面,笔者结合具体教学实践案例谈一谈如何以学习者为中心进行程序设计教学。
● 循序渐进:降低程序设计学习难度
由于程序设计比较抽象,程序设计教学并不是特别受学生喜欢,不是所有的学生都够轻松地掌握和“入门”。因此,程序设计教学需要解决学生“入门难”的问题,首先要降低学生的畏难情绪,唤起学生对程序设计学习的兴趣,其次要降低学生学习程序设计的初识难度。那么,教师可改变直接让学生编写代码的传统教学方式,先从阅读代码和修改代码入手,让学生通过对典型代码的阅读和解释增强编写代码的能力。程序设计教学要基于学生认知规律而不是基于学科内容,要让学生在不断的体验、尝试和反思中循序渐进地得到成长和发展。
例如,在高中信息技术《计算机解决问题的过程》一课的教学中,由于学生存在水平及个性差异,会有部分学生对算法感到疑惑和不解,知识内化有着一定的障碍,这时,教师就可以通过循序渐进的方式展开指导。在编写代码环节,大多数学生能够听懂教师讲授的内容,但是一到实践操作时就感觉无从下手。这时教师可引导学生学会阅读信息技术教材上的简单程序,先从字面上感受代码;接着,在程序的运行中,让学生结合流程图研读程序要解决什么问题,边读边做好备注,可以反复阅读,读出精髓;然后保存代码,多次阅读,随时修改,交互编程。再如,在《Python编程基础》一课的知识点讲解之后,教师提供了以下两个练习任务:一是长方形面积计算,通过键盘输入长方形的长和宽,经过运算输出长方形的面积;二是温度换算程序,输入摄氏温度可以计算出对应的华氏温度。给出这两个任务不是要学生从零开始自己编写代码,而是让学生对不完善的代码进行编辑和改写,这是考虑到学生处在程序学习初期,帮助其降低代码学习难度。
● 针对个性:提供多样化学习支架
在程序设计教学中,不同的学生基础不同,自然也会出现不同的学习困难和错误。以学习者为中心就要承认学习者的个性差异,而且要尊重个性差异,通过提供多样化学习支架有针对性地支持和帮助。学生学习程序都是从简单输出开始的,但即使是最简单的程序,学生在编写代码时仍然会出现很多不同类型的书写错误,如符号错误、括号错误、拼写错误等,学生会非常依赖教师帮忙揪出错误,但教师无法兼顾全体学生,总会有学生因为没有得到教师的指导而感到沮丧、煩躁,教师也会因为过于忙乱而失去对课堂的把控。因此,教师在进行程序设计教学时,必须先研究学生的实际情况,然后根据学情有针对性地提供多样化支架。学习支架不仅要善于搭建和利用,还要适时拆除。在学生对某种学习方法已经基本掌握以后,教师就要放手让学生“单飞”。学习支架可以由任务、资源或知识更丰富的个人提供。
例如,在程序设计学习中,“克隆”概念是比较容易混淆和难以理解的,在教学中,笔者发现大部分学生在自主进行程序设计操作时,总会出现各种各样的错误理解。当对学生所出现的程序设计错误进行深度剖析和探讨时,会发现归根到底还是学生不能很好地认识“克隆”积木的意义及使用。为了更好地解决“克隆”这一迷思概念,教师就要针对不同学生的个性差异,提供不同的学习支架,如可以使用微课录制“克隆”概念的讲解和调用案例。通过微课,学生就可以在课前、课中和课后随时进行自主学习。用好学习支架,程序设计教学中的问题和难点就能迎刃而解。
● 项目学习:驱动学生全身心投入
以往的程序设计教学备受质疑,原因就是枯燥的代码学习及脱离真实世界导致的学习兴趣不足。图形化编程等新一代程序设计语言采用模块化形式,降低了学习代码的难度,但这只是解决了原有程序设计教学中的部分问题。要想让学生真正全身心地投入学习,必须让学生沉浸在一个理解、设计和建造新系统的创造性过程之中。因此,项目学习就成了程序设计教学不可或缺的学习形态。项目学习就是围绕项目进行组织和开展的新型学习方式,学生在项目开展和实施过程中能全程参与,并进行体验、感悟、论证、探究、实践、展示、交流。项目学习的过程就是学生主动建构的过程,项目主题贯穿整个项目学习过程,好的项目主题对于承载学习的价值,与学生是否有效达成素养目标关系密切。项目学习之所以受到欢迎,重要的一点就是将自主选择权植入了课堂。因此,教师在确定程序设计学习项目主题时一定要充分发挥学生的主动性并提高参与度,让学生选择自己感兴趣的问题和任务,从而更加专注地钻研下去。项目说到底是学生的项目,教师只是引导者和辅助者,教师不能替代学生去学习、去经历、去感悟、去实践。项目主题选择要充分考虑不同年龄阶段学生的兴趣点、学生所面临的实际问题,以及学生的认知基础。
例如,在“循环结构——while循环”这一项目中,教师设置了难度较高的任务,从头开始编写程序“密码输入登录系统”,若密码输入正确显示“成功登录”,若密码输入错误即提示“密码错误”且需再一次输入密码。学生通过自主尝试、相互协作方式进行程序项目的搭建。在自主探索和试误过程中,因为属于开放式的编写,每位学生解决问题的思路并不一致。在项目完成过程中,学生会主动探究,全身心投入到项目完成的过程之中,学会自己寻求解决问题的办法,在此过程中也实现了自身知识与能力的进阶。
● 基于探究:促成程序设计深度理解
任何知识都不是单单依靠教师讲授就可以达到深度理解的。要想真正实现学生对程序设计概念的深度理解、能力迁移外延,教师就必须让学生完整地经历程序设计探究全过程。程序设计教学要在探究上下功夫,要在创设探究支持环境上下功夫,让学习者真正成为程序设计学习的核心。基于探究的程序设计教学要让学习者在过程中拥有主动性、自主权,能够自己确定学习目标,自己监控学习进程,自己进行评价,这样,基于探究的程序设计教学策略自然会使深度理解成为现实,学习者也就能够将计算思维和创新能力内化为自身素养,并能够在解决实际问题时得以外显。
例如,教師在设计“图书馆信息系统的安全风险防范”项目内容时,根据对单元课时、学情、知识内容、素养目标等因素的考虑,把课程模块内容设计为“寻找信息安全风险”“用好技术保障安全”“合理使用信息系统”这三个微项目内容,以此开展项目学习,以便较好地达成目标。根据项目开展的实际需要,学生还可以组成小组,学生或小组按照计划指导,在项目开展过程中进行活动探究;教师在每个阶段、环节及时参与,进行协助、辅导,指导各个部分的有序进行,及时反馈和纠偏,发挥主导作用。
● 反思展望
信息技术课程正在不断地呈现崭新形态,程序设计教学也不能再走从前的老路了,而是要塑造“以学习者为中心”的新样态。当然,以上列出的以学习者为中心的程序设计教学策略并不是简单的线性形式,并不意味着一定要遵循某种特定的顺序,笔者也不建议一定要采用任何特定的策略,期待教师们能够发挥自身主动性创造出程序设计教学新天地,从而让程序设计教学获得新发展。
参考文献:
[1]刘桂辉.论以学习者为中心的教学策略转换研究[J].教育与职业,2013(24):103-105.
[2]王晶心.以学习者为中心的混合式学习环境:理论基础与教学策略[J].中国教育信息化,2019(21):1-6.
[3]王广秋.以学习者为中心的网络教学策略探究[J].中国信息技术教育,2015(18):139-140.
3537500589250