谢坤
【摘要】 以真实的教学课例为依托,通过实践教学,发现基于真实情境的项目式学习在信息技术学科中的应用效果,基于此引发在信息技术课堂中,在python编程教学过程中应该用真实的情境吸引学生,用行之有效的方式帮助学生记忆与学习python知识的关键点,并对python所带来的编程思维的训练与拓展。
【关键词】 信息技术 真实情境 项目式学习
引言:
众所周知,信息技术既是一门知识性课程,又是一门应用性课程。在小学高年级学段开展Python编程教学,是在知识与应用的基础上,所进行的一项培养学生计算思维的探索。我们学校是山东省人工智能实验校,作为一名小学信息技术教师,我和我的同仁在平日工作中,我们一直在探索编程教学路到底该怎么走,我们组老师们认为编程教学的教学内容与教学方法一定要立足课标,基于学情,备课之前要明确传授给学生哪些方面的知识,追求课程标准中哪方面的核心素养提升,让每个学生都掌握一定的信息技术学科基础知识与基本技能。
让学生通过编程实践,提高实践能力、创新能力和计算思维能力。基于此,我在日常教学中也进行了一些探索,并从中积累了一些行之有效的方法,以python第12课循环输入数据为例。
在教学之初,在分析了学情和本节课重难点的基础上,首先制定了三维目标:
知识与技能:
1.理解input和for循环结合使用的原理。
2.掌握多个数据输入的方法,实现数据的累加、有条件运算与求和。
过程与方法:
1.鼓励学生通过自主探究、小组合作等方式解决问题,培养运用所学知识解决实际问题的能力。
2.在學习的过程中,掌握编程思维有序思考的方法。
情感态度与价值观:
1.在编程中培养对待问题严谨缜密的思维习惯。
2.以义卖为大背景,让学生在编程解决问题的同时,怀善行走,热爱 公益。
3.感受程序为生活带来的便利,激发对学习的热爱。
这节课是在学生学习了input语句、for与if基本结构以及数据类型的基础后的综合练习,要借助这些语句实现累加求和和条件求和等。
在情境的选择上以学校“嘉童义卖”这一真实情境为导入点,学生回忆了在义卖现场每个小组争先出台优惠措施现场非常热闹,每个人都陶醉在其中,学生通过回顾之前义卖的火爆场面,激发他们的学习兴趣,培养学生善于从生活中思考问题。
在任务的设置上,分为三个大板块,四个小任务,分别是:
任务一:
编写Python程序,实现从键盘输入每个小组的义卖金额,求出本班义卖金总额。
任务二:
修改小程序,求出义卖金额超过300元的小组的义卖金的总额。
任务三:
从所有小组中,找到义卖金额最高的小组和义卖额了。
任务四:
评选:
义卖优胜组(义卖金>300);
义卖良好组(100<义卖金<300);
义卖进步组(义卖金<100)。
这四个任务分别可以概括为:累加求和——有条件求和——求最大值——判断数值渝300的关系,四个任务在层层递进后,有进行了横向的扩展,帮助学生更全方位进行练习。
在任务一的处理上,先让学生共同梳理解决思路,让学生说说可能会用到之前学习的哪些知识,并出示板书,然后让学生用python语言翻译思路,在梳理思路的过程中,追问学生两个问题:
1.“he”中怎样实现累加,以及变量名的意思,帮助学生再次理解变量名设置要有意义,方便再次识读程序;
2.我们已经学过读入一个数放入a中,那要实现不断读数应该怎么做?梳理完思路后,请学生完成任务一。
在巡视的过程中,个别学生出现了无法实现金额的累加问题,主要集中在1.input输入语句下的命令开头未缩进;2.input读取的是字符串输出了一长串数字,这两个小问题以学生小助手的形式帮他们共同找到问题的出现的原因,再次夯实python中各种规定用法,同时找到解决问题的最快捷的方法,1.tab键快速入四个空格,2.input读取的是符串,不能直接参与运算,生活中因为我们现在很少使用角分,所以我们选择用int整型规定输入的数字,用input内的“he”与第一个“he”对比,强调变量一个重要特点——新值顶替旧值。在任务一中夯实编程的思路以及python的用法规则。
在这里还向学生渗透了调试程序的一些技巧,1.这组程序可以实现每输入一个数,就进行求和,同时学生可以用口算进行核对,确保数据的准确性,如果想一次性求和,那应该把print放在循环的外面。给学生介绍这种调试程序的方法,既是一种技巧,同时也是对程序“读”和“检”实际过程的清晰化。
2.学生出现了两种情况(1,1+n)或(n),这里用第一种或者第二种都可以,这是循环数值的范围,代表的是遍历了多少次,这两种写法都是循环了n次,只要规定好初值和终值即可,让学生多种方法解决问题,在这里不做统一要求。
解决完问题后学生将使用帮助级部其他班级完成统计计算,完成后,两两一组进行比对,以确保数据的准确性。在任务一中主要完成了几个关键点的夯实,最后利用自己调试好的小程序,在完成任务一的基础上,帮助其他班完成计算,培养了助人为乐的品质。
任务一累加求和解决后,教师在总结的基础上,同时提出任务二,实现有条件的求和,在这里加入了if条件语句的使用,并以提问的方式带着学生分析1. 如果(if)大于300将累加2.if要放在for循环中是因为每次都要对数值进行比较;
在完成任务二后,小结解决问题的一般思路:遇到问题——分析问题——找准算法——解决问题,这也正是我们用编程思维解决问题的过程。
接下来,带着这些思路让学生去思考完成出示了任务三和任务四,一个是找到每个级部的金牌义卖小组,并进行表彰,感谢他们为本次义卖做出的巨大贡献,感谢他们为贫困山区儿童复学做出的巨大努力。一个是义卖优胜组、良好组和进步组的评选,这两个任务殊途同归,让学生挑选自己感兴趣的任务,帮助学校完成统计。任务三是求最大值,任务四是所输数值与300进行比较,输入即所得。都是让数值进行对比的过程,但两个任务又有所不同。
其中任务三需要有两个变量,i用来记录组号,这个与循环变量有关,起始是0或1;max用来盛放最大值。
任务四评选各级别小组任务较难,所以调整为每输入一个组的金额就显示级别。练习后,分别请挑选任务三和任务四的同学来介绍自己的思路和程序,以及自己想和大家分享的编写程序中需要注意的关键点(变量喜新厌旧的特点、函数命名有意义、以及调试程序的一些小技巧),并说说自己本节课的收获,任务三和任务四的共通之处是不断实现读取数据并进行数据的处理。
在课程的最后再带领学生回顾整理本节课的收获,并提问:今天我们只是整理了一个级部的数据,后面我们还要应用我们所学的python知识整理全校更大规模的数据,当面临更大量的数据的时候,当需要进行多种计算的时候,在后面我们将要学习列表,它可以存储一组数据,并通过几个简单的函数就能求出最大值、和。
在日常的python教学中,让学生用流程图描述算法,掌握常见算法,应用该算法解决生活与学习中的问题,使用编程语言,设计和开发模块化程序,去解决生活中的问题。但代码编程对于小学生来说,思维方式和概念都是全新的,是一个从感性思维到理性思维的过渡,学生普遍感到枯燥,难学,没有浓厚的学习兴趣。与学生以往学习直观所见即所得有很大不同,它恰恰需要学生积极开动脑筋思考问题,这方面又是很多学生所欠缺的,这就又增加了學生学习的难度。这也成了python教学中的一大难点,因此我们的情境尽可能的选用日常生活中的场景,学生沉浸于真实的场景,才会主动思考“我该怎样做”,提高了学生学习python的积极性,变被动学习为主动学习。其次,一周一节课,学习间隔时间长,又由于python中函数语法较多,这周学习的内容下周再来上课时,很多知识学生都忘记了,再加上现在的课本又是循环使用,学生不能在书上写写画画,即使写了书也不能带出教室,无法巩固复习,因此在学习python期间,我要求学生每节课都要记笔记。
在一线教学过程中,老师们普遍发现信息技术中的编程教学是学生学习的难点和枯燥点,尤其是在小学阶段,学生的认知思维发展水平在遇到高阶算法的时候,总会出现一些“急转弯”,很多孩子一开始感兴趣,通过一段时间学习,觉得太枯燥,不感兴趣了;一些孩子对于编程有畏难情绪;还有一些孩子习惯了背记,习惯了去“解题”,这些都导致了在后续学习中,学生拉开差距的重要原因。但其实在小学阶段,学生应该具备的是编程思维的练习,是对问题理解并进行创造性、系统思考的过程,如果“跳一跳可以摘到桃子”,那么最终应该落脚于解决并验证解决方案可行性上,这些使得学生学好编程变得尤为重要。如何突破学生“枯燥与乏力”,这就需要应用老师的教育智慧,在这几年的编程教学的探索过程中 我发现,基于真实情境而引发的问题,并最终在学生身边应用他们的解决方案进行反馈的教学方式,让学生找到了编程学习的内驱力,每个孩子把想法发挥出了最大的价值,从中收货了荣誉感,这对小学阶段的孩子来说,无疑是最重要的正向激励。
就以这次学校义卖情境为例,在学生思考的基础上,后续我们根据学生的测算结果,在周一升旗时进行了颁奖,并分享了整个算法,每个孩子为了最优解,都在不断完善着自己的思维系统,这是让建构,让学习真正的发生。
参 考 文 献
[1]陈宽一. 信息技术课堂中学生计算思维的培养策略[J]. 小学科学(教师版). 2019(08)
[2]杨红利. 信息技术课堂教学有效性的探索与实践[J]. 文理导航(上旬). 2013(05)