项目化学习在高中Python编程教学中的有效应用

2022-06-13 14:11张建锋
江苏教育研究 2022年13期
关键词:项目化学习高中信息技术

摘要:普通高中信息技术教材在一部分内容中把Python编程作为主线,以项目化学习为块来进行教学分解。在高中Python编程教学中应用项目化学习,可以激发学生的学习兴趣和创新思维,帮助学生将理论与实践联系起来,让学生通过自己的能力去尝试解决问题。项目化学习应以学生为中心,创设情境,采用多元教学方法,注重过程性评价,以提高信息技术课程的教学质量和教学效果。

关键词:项目化学习;高中信息技术;Python编程

中图分类号:G633.67 文献标志码:A 文章编号:1673-9094(2022)05A-0063-04

《普通高中信息技术课程标准(2017年版)》明确指出,高中信息技术教学强调在问题解决过程中提升学生的信息素养,激发学生开放、合作、协商的行动意识。国务院《关于新时代推进普通高中育人方式改革的指导意见》也强调,要积极探索基于情境和问题的课堂教学,注重加强项目设计、研究性学习等综合性教学。项目化学习正是一种以学生为中心的教学方法,旨在让学生通过积极参与解决现实问题,获得知识与技能的提升,发展批判性思维与团队协作能力。项目式学习不仅符合普通高中信息技术课程标准的教学理念,更是对国家深化普通高中课堂教学改革的宏观政策的精准实施。

一、高中Python编程教学中运用项目化学习的意义

从2020年开始,江苏省全面使用教育科学出版社出版的普通高中信息技术教材,其中必修1《数据与计算》、必修2《信息系统与社会》把Python编程作为主线,以项目化学习为块来进行教学分解。Python编程是一种较为初级的编程语言,它的易懂性、开放性与操作性使其成为当前高中信息技术编程教学的基础。Python编程不要求学习者有丰富的编程经验,让学生根据自己的能力来使用Python语言进行编程,通过编程进一步深入了解计算机知识原理。

在Python编程教学中应用项目化学习方式,其意义主要表现在以下几个方面:第一,通过项目化学习开展Python编程教学,能够帮助学生掌握与巩固编程知识,在实际操作中进一步理解编程知识内容,夯实今后Python编程学习所需要的知识基础。第二,项目化学习的学习目标更加具体,学生能够根据自己的兴趣爱好来选择编程语句,这可以拓展学生的思维,提升学生的创新意识。项目化学习的小组合作学习模式,也让学生在吸纳、分享、讨论的过程中碰撞出思维的火花与创新的灵感。第三,项目化学习更注重联系生活实际,教师通过设计与现实生活相关的学习项目来吸引学生学习兴趣,激发学习动力,通过结合生活中的实例来设计相应的教学情境,让学生通过项目学习解决实际生活中的问题。第四,项目化学习给予学生表现自我的机会,在学习过程中学生积极交换意见,开展互动讨论,对遇到的问题自己去尝试解决。这种教学方式能切实加深学生对计算机知识的理解,能提升学生用自己的方式编程的能力,这对于我国未来的信息技术人才培养具有现实的促进作用。

二、高中Python编程教学中运用项目化学习的教学对策

(一)学习过程要突出学生的主体性

在高中Python编程教学中,要充分提升教学效果首先需要改变师生位置。项目化学习过程要突出学生学习的主体性,帮助學生主动地开展学习活动。教师需要转变教学理念,变传统的教师演示、学生同步操作教学模式为学生自主创新的学习引导模式,突显学生的主体性,激励学生的创新性。项目化学习过程要让学生能够更主动地参与到编程学习中,不断提升Python编程学习积极性,发挥自身的学习潜力。

例如,在讲解《数据与计算》第3章“认识数据”中的第2节“数据与结构”时,要认识简单数据类型:整型(int)、浮点型(float)、字符串(str)、布尔型(bool)等;复杂的数据类型:元组(tuple)、集合(set)、列表(list)、字典(dict)等。我们可以尝试以“学校劳动教育班级积分获取程序”为学习项目,让学生围绕不同的项目需求编写Python编程语句,思考过程中分别应该使用什么样的数据类型最为合适;在项目分解任务中,自主体验如何正确选择不同的数据类型,再进行Python编程语句的编写与汇总,最后实现整个程序的调试与运行。本节课的教学着力让学生在项目学习中自主地去认识数据类型,彰显学生的主体作用。

(二)要创设情境激发学习兴趣

情境教学有着较强的适应性,在高中阶段的各类学科中都可以应用。高中Python编程教学也可以联系实际来开展情境教学。在教学过程中,教师可以利用当前比较热门的新闻事件来构建项目化学习目标,以激发学生的学习兴趣,提升学生的课堂注意力。

例如,在讲解“Python模块的导入”这个知识点时,可以引入2022年北京冬奥会吉祥物“冰墩墩”turtle模块绘画项目。教师首先要让学生学会导入模块语句:import turtle与import turtle as及其使用的语句区别,在导入了模块后讲解turtle模块的常用属性及运行效果。接着教师可以演示一下“冰墩墩”左手编程绘制及相应编程语句,特别重点讲解title( )、speed( )、penup( )、goto( )、pencolor( )、pensize( )、circle( )、fillcolor( )、

pendown( )、setheading( )、end_fill( )等的属性及调用方法。学生了解基本语句的使用方法后,教师给定固定起始坐标要求学生分组绘制“冰墩墩”右手、左右脚、左右耳眼及胸口五环等,最后进行代码共享,合成完整的“冰墩墩”图像。在项目化学习结束后,教师需让学生交流自己在项目小组的编程实践经历与情感体验,并对学生的学习情况进行点评。

(三)要采用多元教学方法

以往的高中信息技术教学以信息技术基础知识和网络技术为主要教学内容,教师往往只需要对课程标准规定的内容进行讲解。随着时代的发展,这种教学方式已无法满足当前高中生的学习需求。在Python编程教学中运用项目化学习,需要教师对教学方式进行丰富与创新,注重理论与实践相结合。教师要根据项目内容灵活选取教学方法,采用项目驱动教学、小组子项目相互教学、问题项目指导教学、总项目合成教学等多元化的教学方法构建起整个课堂教学的桥梁。多元化的教学方法可以帮助学生发挥自身的学习主动性,积极参与到项目化学习当中来,以此来保障整体的教学质量。

例如,在讲解《数据与计算》第2章“编程计算”中的第4节“可以复用的代码”时,教师可以教材上提供的“解决火柴棒摆数字问题”项目来开展教学。首先需要利用项目驱动教学方法来指导学生学习函数的定义及格式,掌握函数的调用方法,理解函数的形参与实参;其次可以采用小组分组对项目进行拆分,完成函数中套用for循环语句和while循环语句实现用关键字def来定义函数;再次用问题指导教学方法让学生体验如何将函数存储模块并实现模块开源共享;最后让学生按照小组学习方式来学习Python编程知识。在完成相关的学习任务后,小组成员还需要对组内各个成员的学习质量与学习成果进行评价。

(四)要注重过程性评价与教学反思

在高中Python教学中运用项目化学习,不适合采用单一的总结性评价,而要注重过程性评价。首先,对学生进行过程性评价需要对每一个项目进行量化,综合评价学生的自主能力、合作探究、参与程度、项目贡献度及项目效果等。其次,教师课后要及时进行教学反思与自我评价,如反思、评价教学内容是否合适切实、项目化难度是否分层有梯度、教学环节节奏是否把握适当、过程指导是否适时适当、课堂气氛与氛围是否融洽等。

例如,在讲解第2章“编程计算”中的第3节“周而复始的循环”时,以“棋盘上的麦粒”这个项目来开展教学。在教学过程中需要根据问题来引导学生有层次地分析,最后解决问题。教师可以尝试让学生先解决如何用for循环语句来解决1+2+4+8+16+…+2048这个问题,其核心是学生要利用计算思维将其转换为20+21+22+23+…+211,发现其幂是一个有序的数列就可用for i in range(12)实现有序排列,循环语句s=s+2**i就解决此问题。此过程中教师可对学生个体的能力、小组探究及参与程度等进行评价,对学生将问题完全解决的作品进行展示。然后回归“棋盘上的麦粒”项目进行分析与设计,在学生的活动中去进行项目量化评价。课后对课堂学生的学习效果进行反思,反思本课学生的计算思维及数字化学习和创新的核心素养培养目标是否得以实现,反思教学过程中是否体现学生的“最近发展区”等,以进一步提升项目化学习的效果。

三、对Python编程教学中应用项目化学习潜在问题的再思考

(一)学生对Python编程基础概念的掌握不够

在项目化学习中,学生能够理解所学的每一句编程语句的意义,但是到了具体的编程项目要求实现效果时,往往编程的计算思维有了,但是组织编程语言的基础概念运用不熟练,无法将计算思维进行编程描述。部分学生因没有吃透Python编程相关的基础知识与概念,即使能够勉强跟着学下来,课堂上大部分时间也只能根据教师的操作来依葫芦画瓢或修改代码,很少有自己的创新思维。教师可尝试做到以下几点:首先,从理论根本出发,引导学生进行广泛的阅读,了解算法与计算机语言;其次,在实践中升华,让学生通过完成项目任务强化基础概念,培养创新与计算思维;再次,从逻辑思维出发,将高中数学学科知识迁移转变为编程逻辑思维,在逻辑理解的基礎上掌握基本概念。

(二)高中学生的编程思维需要强化

计算机编程是对专业技术要求较高的学习内容,同时编程语言也是一种专业的语言,其中还运用到计算知识与计算思维。通过项目化学习进行编程,首先需要学生去看透问题的实质,找到核心解决方法,用编程思维来绘制编程的流程图,然后再去解决实际问题。因此高中生常常会因为自己缺乏相应的编程思维而难以跨越项目编程问题解决的门槛。学生不仅需要学习与编程语言相关的知识内容,还需要提升自身的编程思维能力,方可达到项目化编程学习的具体要求。教师在课堂教学中可尝试运用项目教学法、任务驱动法和合作探究法等教学方法。第一,可创设面向编程思维的教学设计,引导学生主动思考和解决问题,帮助学生将抽象的课本知识内化到自身的认知结构中,培养学生利用编程思维解决实际问题的能力。第二,可根据教学设计思路和知识的递进关系,设计与编程思维相匹配的教学活动。对不同学习层次的学生群体进行分析,通过对比了解教学设计对学生编程思维培养的促进效果后再反思提升。

(三)师资队伍的项目化教学素养有待提升

教师素养对项目化教学实施过程和实施结果的质量起到举足轻重的作用。项目化学习要求学生作为学习活动的主体,在主动探究中解决问题与完成任务。然而,由于任务或问题的复杂性、学生知识水平差异等,导致项目化学习过程中出现一系列不可控的状况,这就要求教师具备合格的项目化教学素养。第一,学习素养。学习素养要求教师能够根据已有知识经验与工具,创造性地进行知识的再生产,以重构知识与情境,创造适合学生的Python编程项目。第二,项目设计素养。项目设计素养要求教师提出好的问题,问题既要与现实相关联又要能够推动学生持续探究。第三,评价与反馈素养。评价与反馈素养要求教师对学生的项目探究过程给予及时的、全方位的阶段性反馈。

项目化学习作为一种基于建构主义理论的学习方法,可以理解为基于问题的学习和基于探究的学习。在高中Python编程项目化学习中,学生围绕复杂、真实、精心设计的问题和任务进行Python编程的探究,学习知识并发展相关技能。在此过程中,学生不仅能深入理解Python编程知识、发展Python编程技能,还能更好地认识Python编程与生活之间的密切关系,促使Python编程学习视角发生显著转变。这种学习视角的转变既能让学生充分调动、迁移多学科知识,解决现实生活中的复杂问题,又能让学生在持续的知识迁移、合作探究实践中,加深对已有知识经验的掌握,从而更好地发展团队协作能力及创新思维能力。因此,基于项目化学习的编程教学不仅对学生Python编程素养的发展起到积极的引导性作用,更能够促进学生核心素养的提升,为培养学生成为全面发展的人奠定坚实基础。

责任编辑:丁伟红

收稿日期:2022-03-02

作者简介:张建锋,南通市天星湖中学,教育硕士,高级教师,南通市信息技术骨干教师。

猜你喜欢
项目化学习高中信息技术
STEM教育视野下信息技术学科项目化活动设计与思考
数学“项目化学习”与“STEAM教育”的深度融合
以项目化学习为推力的初中思想品德实践教学策略研究
当项目化学习遇见STEAM课程
高中信息技术教学改革研究
高中信息技术探究式教学的实践与思考
“项目化学习·多元呈现”教学模式的探究
项目化学习在高中化学教学中的应用