赖军
广州市从化区民乐中学,广东 广州 510000
摘要:广州作为首批“智慧教育示范区”,在初中信息技术教材中引入了Python程序设计基础的教学内容,目的是为了培养初中学生的抽象理解能力、程序设计思维能力以及体验Python人工智能和大数据处理编程,学习和培养运用计算机程序设计思想来分析问题和解决问题的能力。Python教学知识点多、难度大,笔者通过理论研究与实践探索,在Python课堂教学中应用“微项目学习法”,创设程序员编程微项目实施情境,让学生体验编程项目实施过程,能有效激发学生学习兴趣、提高课堂教学效率、培养学生综合素养。
关键词:微项目学习,Python教学,应用,课堂效率
一、引言
Python是目前最流行的编程语言之一,它学习环境要求低,在人工智能和大数据处理方面有其独特的优势,适合作为入门学习的编程语言。初中信息技术教材中引入Python程序设计基础的教学内容,能培养学生的抽象理解能力和程序设计思维能力,让学生体验人工智能编程和大数据处理。
教学中的困惑是,Python教学知识点繁多,初学者往往难于系统理解和掌握;初中学生初次学习程序设计,尚不具备程序设计思维能力,难于理解程序的逻辑关系;代码的输入格式要求高,需要通过大量的项目实践才能掌握方法与技巧;与图文编辑、多媒体制作、音视频处理等有趣味性的教学内容相比较,Python程序设计内容枯燥难懂,学生从一开始就没有浓厚的学习兴趣。
如何在有限的课时内,激发学生学习兴趣,提高课堂教学效率,需要信息技术教师不断创新高效的教学方式。传统的知识讲授、任务驱动、基于问题的教学模式都有其局限性,通过探索和实践,在初中Python教学中应用微项目学习法,难度小、周期短,可以重构教学内容,创设编程项目实施情境,激发学生学习兴趣,让学生体验编程项目实施过程,培养程序设计思维能力,提升编程技能,有效提高课堂教学效率。
二、微项目学习的概念
根据课程大纲的要求,把去情境的知识情境化、项目化,紧密结合核心知识点设计真实情境的微型项目,微项目学习活动能够在一两个课时的时间内完成,从而促进学生知识的建构,提高解决问题的能力。[1]
微项目学习是学生在“基于项目的学习”基础上进行的学习方式的创新与学习内容的延伸,是教师在微项目构建的基础上,深入开展理论与实践相结合的教学,教学依托项目和学生的反馈成果来实现教学环节的完善[2]。微项目学习应该从现实问题展开,设计微项目的学习情境与实施步骤,注重项目实施的过程体验,强调合作探究和角色扮演、方法分享与成果展示,以及学生相互评价的课堂教学模式。
三、微项目学习在初中Python教学中的应用
1.运用微项目重构教学内容
微项目学习起始于一个与学生相关的、让学生感兴趣的现实问题,即项目主题。微项目选题要突出以学生为中心,涵盖教学知识点,注重项目实施全过程体验、知识与技能的培养以及信息技术核心素养的提升。
对于Python基础知识,传统的讲授对于大部分初中学生来说既枯燥又难懂。而通过微项目学习对教学内容进行重构,将各个知识点融入微项目当中,学生先通过对微项目的实施及自主探究思考,对知识点形成初步认识,再由老师进行归纳提炼讲解,学生既掌握了知识点,又体验了编程项目的实施过程,有效提高了课堂效率。
例如按传统讲授方式对程序的基本要素即数据的类型、常量与变量、运算符和表达式、数据类型转换、程序中的语句等进行教学时,往往是以教师为中心的满堂灌式的讲授,学生难于理解,更缺乏自主思考的时间和空间。运用微项目进行内容重构,例如通过让学生先参照教材例子做一个简单的计算三角形面积的微项目,将上述程序的基本要素融入到微项目中,并预先设计好一些引导学生思考的小问题,学生就会在微项目实施过程中自主思考、互相讨论、参与体验,然后由教师提炼知识点,使学生在做微项目的过程中达成学习目标。这样以学生为中心重构的教学内容,能提供足够的时间和空间让学生积极主动思考,提高课堂学习效率。
2.创设微项目实施情境
Python微项目学习在情境设计上要注重以学生为中心,将枯燥的教学内容创设成真实有趣的现实项目。比如Python的随机数与分支结构、循环结构,可以创设成抽奖、摇号等项目情境,引导学生实施抽奖、摇号小程序的微项目。例如以商场抽奖项目为例,可以将random库、程序的顺序结构、分支结构及循环结构等知识点融入到微项目中:
教师扮演的是商场老板(甲方)及项目经理的角色,提出项目需求:请编写一个程序,随机生成一个1至20之间的中奖号码,每次抽奖时提示用户输入抽奖数字,如果输入的数字与中奖号码相同则提示中奖了,否则提示继续抽奖,每人有5次抽奖机会。在课前一周发布微项目,让学生有足够的思考和讨论时间;课堂上指导学生进行微项目实施,实时监测微项目进度,对完成项目的学生支付报酬(积分);课后引导学生结合生活实际,举一反三,发散思维。
教师在创设微项目实施情境时,要突出项目的趣味性,控制微项目难度,最好是一个课时内完成,最多两课时。微项目最好是跨学科并能渗透德育教育,比如抽奖程序微项目,既能激发学生学习兴趣、活跃课堂学习氛围,又能让学生通过设置程序参数,切身体验到中奖的几率低难度大甚至可以作弊,以此教育学生远离赌博,不贪图不劳而获的利益,潜移默化中渗透了德育教育。
学生扮演的是程序员的角色(乙方),课前思考并讨论发布的微项目,课堂上以小团队为单位,也可以个人自主完成。先在老师指导下书写算法,再用fChart绘制流程图,编写Python代码并调试程序,最后展示作品,现场直播抽奖活动,分享经验。每位同学分发一张项目评价表,邀请其他同学作为评委进行项目评价并在评价表上签名,下课时由小组长收齐后交给老师。
这样的评价方式既可以解放课堂上的老师,让老师有更多的时间监测进度、指导答疑,又可以让学生以评委的身份公平公正合理评价他人作品,以学习者身份体验到自己的学习成果得到评委认可的优越感。
3.遵循微项目实施步骤流程
Python微项目学习法的实施步骤通常分为教师和学生两个层面,教师层面,课前要以学生感兴趣的现实问题为导向,精心设计微项目主题及学生互评验收评价表、控制微项目难度、明确微项目验收指标,提前一周发布给学生以便学生有充足的时间进行思考与讨论。课堂上详细说明微项目的要求及验收指标,分发学生互评验收评价表,指导学生按步骤实施微项目。课后收集学生互评验收评价表,以此为依据给学生支付报酬(奖励积分),并根据评价表反馈的学生学习情况进行教学反思。
学生层面包括组建团队、角色分工、微项目分析、设计算法、画流程图、编写代码、调试程序、展示分享、用户评价(学生互评)等。因为微项目体量小,团队组建可以采用2-3人的小团队,分工是灵活的,可以一起设计算法,评价其他团队作品;自主独立绘制流程图、编写代码、调试程序。鼓励讨论和互助学习,避免一人做多人看,让每位学生都真实参与微项目实施。
设计算法就是要培养学生的抽象思维能力,用最简练的语言将完成项目的步骤书写出来。作为初学者,往往需要在老师指导下一起讨论算法,明确思路,选定程序结构和语句。用fChart画流程图能快速构建程序模型,测试程序的逻辑关系,并以流程图作为编写Python代码的原型。根据绘制的流程图程序模型,编写Python代码并进行调试,这个过程会面临很多小困难,需要学生查阅教材、独立思考、互助讨论去解决,教师可以随时提供必要的指导。微项目完成后选取学生进行展示分享,主要分享的是算法设计思路,遇到的问题及解决办法,编程技巧与心得。学生互评需要事先设计好评价表并打印分发给学生,主要是对设计算法、画流程图、编写调试代码三个步骤进行评价,每位学生邀请旁边的两位同学作为评委,对自己的微项目进行评价并签名。
.png)
微项目学习实施步骤流程图
步骤流程看似复杂,但因为项目微小,很多课内步骤只需要很少时间就能完成,有些步骤可以同步进行,所以完全可以在课堂内完成。
4.紧扣微项目进行归纳提炼
初中学生初学程序设计,对知识点的思考归纳总结能力有限。Python微项目的设计不能脱离教学内容,微项目的实施也不能放任自由,否则微项目学习法将步入一个误区,那就是学生只学会了模仿,却没有真正掌握程序设计知识。所以,教师要善于紧扣微项目,对Python知识点、算法设计、编程技巧等方面进行归纳提炼,引导学生思考前因后果,养成良好的编程习惯,初步培养抽象思维能力和程序计算思维。
还是以抽奖微项目为例,Python源程序如下:
import random
a=random.randint(1,20)
for i in range(5):
b=int(input("请输入您的抽奖号码(1~20):"))
if a==b:
print("恭喜您中奖了,中奖号码为:"+str(a))
break
else:
print("很遗憾未中奖,您已抽奖",i+1,"次")
print("抽奖结束,本次中奖号码为:",a)
从源程序中可以提炼归纳出random库的导入及应用、赋值语句、数据的输入、数据的类型、数据类型的转换、for循环结构、break的应用、if条件语句、“==”与“=”的区别、print语句的应用、代码缩进的意义等知识点,既可以巩固学生对知识点的掌握,又可以掌握这些知识点在程序中的实际应用。
归纳提炼分为每课小结与阶段总结,每课小结是指每节课以课堂小结的形式进行知识点的归纳提炼,阶段总结是指经过几节课的学习后进行一次系统的知识归纳提炼,让学生形成较完整的知识脉络,再布置适量的课堂练习,巩固学生对知识点的掌握与应用。
5.做好微项目学习教学反思
这里所说的教学反思,也是分教师和学生两个层面,指的是教师的“教授反思”和学生的“学习反思”,将教师的“教”和学生的“学”延伸到课后。
教师层面:课后要收集并查阅学生评价登记表,为学生登记奖励积分(支付项目报酬),了解本课微项目的实施完成情况,掌握学情。根据学情对教学内容、教学策略、微项目的难易度进行反思和调整,为下节课的教学设计提供方法指导。
学生层面:一次微项目学习结束后,有的学生成功,有的失败,无论成功与否,都是学习的重要过程与体验。成功的同学课后要在本次微项目的基础上,结合生活与学习上的实际问题,发挥头脑风暴,举一反三,发散思维,最好能经过自行设计、讨论,完成新的有创意的微项目。而对于课堂上没有成功完成微项目的同学,课后要进行学习反思,通过独立思考、查阅资料、提问解惑,把知识点理顺,把未完成的微项目理解透彻。把课堂学习延伸到课前课后,才是有宽度、有广度、有深度的学习,才能更好地提高学生的综合学习素养。
四、结语
在Python教学中引入微项目学习法,除了激发学生学习兴趣、重构教学内容、提高学习效率外,还能渗透德育教育、有助于培养学生的综合素养。算法设计能培养学生认知社会、分析现实问题以及抽象思维能力,绘制流程图和编写代码能培养学生的逻辑思维能力和细致认真的学习习惯,调试程序能培养学生善于发现问题、解决问题的能力,展示分享能培养学生表达能力和应变能力,互相评价能培养学生公平公正的评价精神,获得积分报酬能让学生体验一分耕耘一分收获的成就感。在微项目学习的潜移默化中,学生能养成良好的综合素养。
微项目学习法在Python教学中的优势是显而易见的,笔者也通过自己的课堂教学实践进行了探索与验证,学生的Python课堂学习变得更有趣、更主动、更积极、更高效。微项目学习法在Python教学中灵活有效的运用还需要广大教师不断实践与探索,形成更完整的理论体系,并运用到其他知识甚至其他学科的教学当中,从而有效提升学生发展核心素养。
参考文献:
[1]焦金金. 项目学习模式下的微型课程设计研究[J]. 软件导刊(教育技术), 2010(12).
[2]陈惠菱.基于微项目学习的信息技术教学实践与思考[J].计算机产品与流通,2020(10):23.
[3]姜和丽.基于核心素养和创客理念的通用技术项目式学习策略[J].基础教育参考,2020(09):35-38.
[4]王爱胜,赵婧.用微项目分解内容、划分进程的教学设计方法探究——以创作校园MV视频作品项目为例[J].中国信息技术教育,2021(01):36-38.
[5]王蕾.信息技术课堂教学中微项目设计的实证研究——以《生活中的算法》为例[J].中国信息技术教育,2020(24):24-27.
[6]蒋衍森.应用微项目促进初中生深度学习策略研究[J].文学教育(下),2020(11):172-173.
[7]顾芹.巧借“微”项目,优化“大”课堂[J].中小学班主任,2020(04):47-48.
[8]胡佳怡.项目式学习的本质、模式与策略研究[J].今日教育,2016(04):47-49.
【课题项目】本文是广州市从化区2020年度教育科学规划教师小课题“农村初中信息技术‘微项目式学习’教学模式探究”(课题编号:20C79)的研究成果。