
——Python程序“项目教学法”案例
【课标内容要求】
在具体感知数据与信息的基础上,运用数字化工具进行巩固性学习,针对具体学习任务,体验数字化学习过程,感受利用数字化工具和资源的优势。通过典型的应用实例,了解数据分析和表现的 基本方法。根据需求,选用恰当的方法和过程,完成具体的算法,从而解决实际问题,并且通过编写和调试过程,体验程序设计的基本流程,培养建立高效算法思路。
【教学内容分析】
在普通高中信息技术内容体系中,“数据与计算”贯穿信息技术课程的始终,数据是一个基础但是非常重要的概念。数据是信息的表现形式和载体,不仅是记录客观事物的符号,还包括数字,文字、图形、图像、视频、音频等等。本案例是教学复习课,内容主要集合Python程序设计语言的基础知识:模块调用、标准函数引用、自定义函数调用、坐标设置、列表创建、列表元素获取、循环语句运用等方面知识,以制作一个具有个性的Logo标志为主线,以学生喜闻乐见的动态数据图形为呈现方式,是一个包含了图形、线条,转角,调用不同颜色等方面知识的学习和自主练习的过程。
【教学目标】
1.对Python程序语言中模块调用、标准函数引用、自定义函数调用、坐标设置、列表创建、列表元素获取、循环语句运用等相关知识的复习和巩固。
2.制定运用算法与程序设计思路解决问题的方案,能使用Python语言实现实际运用程序的编程设计。
重点:
1.教学过程中函数的定义和调用、列表元素获取、循环语句等知识点的运用(计算思维)
难点:
1.自定义函数的调用方式,运用循环语句对规律性语句的重复执行。(计算思维)
2.将各个知识点进行有机结合,同时,运用到作品的制作和创新过程中。(数字化学习与创新)
【核心素养指向】
1.信息意识:信息社会中,在纷繁杂乱的听视觉冲击下,以设计一款让人眼前一亮、记忆深刻且带有个性标记的Logo标志为切入点,以新颖的方式表达信息,主题鲜明,引起共鸣。
2.计算思维:掌握计算思维能力中通过模块、函数调用进行模块化设计编程的思路和方法;掌握坐标设置、列表创建和列表元素获取等Python具有自身特定方式的操作;复习循环语句的使用和在Python中的特殊表现方式。
3.数字化学习与创新:通过对数字化制作步骤的提示,让学生学习数字化学习方式,通过数字化微视频的观看,让学生修正和改进;通过数字化教学课件展示和讲解,进行答疑和解惑。和尝试操作;
4.信息社会责任:标志性Logo的设计在主题明确、彰显特征的同时要体现正能量,对社会,特别上周围的同学有积极的引导意义。
【学情分析】
学生在经过前一个阶段的学习,对模块调用、标准函数引用、自定义函数调用、坐标设置、列表创建、列表元素获取、循环语句运用等方面知识有了一定的掌握,具备了一定的数字化学习能力和创新素养。学生能够依据学习任务进行学习资源的利用,能够自主开展协作学习,建构知识。但是,没有对相应知识点进行相互串连和融会贯通,知识习得呈现碎片化,缺少整体解决问题的思路和能力,需要综合性的实践练习加以巩固,从而,构建这一章节完整的知识体系。
【设计构想】
1.整体设想
一个完整的作品的连贯性制作,其过程包括需求分析-项目构思-开发测试,可以帮助学生复习巩固知识点的基础上,建立本章节的完整体系。在实践运用中的出错-修正-再出错-再修正的过程,帮助学生掌握各个知识点的细节的同时加强印象,在制作过程中培养思考,不断探索的精神。本案例着意加强实践动手能力,提高运用数字化平台自我学习的能力,为今后的学习打下基础。
2.教法学法
教学中,在复习巩固阶段,以回顾和任务为驱动,掌握知识点重难点。在作品创作阶段主要利用学习资源进行自主探究学习,可以充分发挥小组协助的功能,充分调动学生积极性,相互探讨问题,相互纠错改进,促进建立一帮一,一帮多的高效课堂教学机制。在作品交流阶段主要采用学生自我演示和讲解,同学讨论的方式。
3.情境与任务
充分利用诸如学校组织的“跳蚤市场”上学生自制的动态广告,平时上学放学,特别是晚自习放学时,黑暗中跳跃闪烁的霓虹广告等学生平时耳濡目染的现实生活和亲身感受作为引导,制作一个个性化的logo为主线,依托数字化学习平台,完成对知识重难点的进一步学习和巩固。
4.学生活动
根据教师提供的回顾性任务,利用数字化学习资源复习知识重难点。根据自我设计的个性化logo思路创作作品,在实践中巩固拓展知识点。
5.核心素养的落实
①教会学生对知识的引用和迁移。将所学的知识运用于实践活动中,既是对知识最好的复习和巩固的途径,也是培养动手能力和创新能力的最有效途径,在整合操作中增加理解,促进记忆。
②促进学生由现象到本质的探究问题本质的意识和能力,从而培养寻求规律,总结归纳的能力。一类问题可以有多种表现形式,让学生学会透过现象看本质,学会归类建模,从而提高解决问题的能力。
③培养创新性和扩散性思维的能力。算法与程序的调试与纠错可以巩固思维,综合性解决问题能力的培养可以促进计算思维的提升。
6.评价设计
过程性评价:分自我评价和同学评价。自己和同学在作品中运用到的知识点下面打钩,可以将自己认为运用知识点的亮点写在最后的单元格中。
| 评分项目 | 模块调用 | 标准函数引用 | 自定义函数调用 | 坐标设置 | 列表创建 | 列表元素获取 | 循环语句运用 | 其他亮点 |
| 自我评价 | ||||||||
| 同学评价 |
| 评分项 | 自我评价 | 同学评价 |
| 界面布局合理 | 5 4 3 2 1 | 5 4 3 2 1 |
| 配色舒服,界面上文字清晰可见 | 5 4 3 2 1 | 5 4 3 2 1 |
| 所有功能正常运行,没有bug | 5 4 3 2 1 | 5 4 3 2 1 |
| 能针对自己的作品提出2-3个新的需求 | 5 4 3 2 1 | 5 4 3 2 1 |
【教学活动设计】
本案例是以项目制作为主线的综合复习课,溶知识点复习于制作和创新过程中,考虑到需要建立在学生对各知识点进行串连巩固的基础上进行实践动手创作,从渗透学科计算思维能力的培养方面考虑,本项目教学分2课时完成。
第1课时:
一、情景导入设置:动感Logo标志展示,引人入胜,激发兴趣。
②让学生回忆刚刚过去的红色九月系列活动中学校举办得如火如荼的“跳蚤市场”,学生们都在摊位前或用横幅或用旗帜展示本摊位的特色和内容,吸引大家,感受一个醒目且具有个性的Logo是多么的重要。
③各大银行、店铺门帘上的电子管显示屏已经不足为奇,展望一下,未来Led展示对于图文并茂的Logo标志的展示将产生极大帮助和积极推动作用。
二、项目实践与体验
◇活动1:内置函数和模块调用方式
| 回顾:内置函数和模块调用方式 | 教学方式:教师PPT展示,例析帮助回顾。 |
| 掌握内容 | 学生活动 |
| 内置函数调用:print、input、eval、int、round函数都是Python提供的内置函数,可以直接使用。 模块调用:Python提供了math模块,包含了一些常用的数学函数和数学常量,要使用math模块,必须先导入math模块,如果不先导入matht模块,而使用了sqrt(x)、sin(x)、log(x)等函数就会出错,math模块导入形式回顾:import math。 数学常量导入法:math.pi和常用数学函数 | ●abs(x),返回x的绝对值,abs(-2)返回2 ●max(x1, x2, ...),返回x1、x2、...中的最大值 例如:max(1, 5, 2)返回5 ●sqrt(x),返回x的平方根值, 调用方法: import math math.sqrt(4) 返回2.0 |
| 定制个性Logo环节中的准备性练习:画一条线,粗细逐渐减小——用sqrt函数。 | |
| <项目制作部分> | |
| 调用小海龟模块 | import turtle t = turtle.Turtle() t.hideturtle() |
| 调用随机函数模块 | import random |
| <设计意图> | |
| 教与学方面:数字化教学资源展示,基础回顾,培养学生理解性的记忆方式,对规律性知识点归纳能力。 核心素养渗透方面:培养学生敏锐的观察力,读、看、理解等基本信息素养,教会学生联想和善于想象,培养高敏感度和自觉性信息意识。 | |
| 回顾:坐标设置的方法和各个注意环节 | 教学方式:以学生自主练习,以展示结果的方式反馈。 | |
| 掌握内容 | 学生活动 | |
| ①要使用turtle模块,必须先导入turtle模块:import turtle ②画布中间的小图标被称为海龟,画布中间海龟所在的像素点坐标是(0, 0) ③复习海龟的基本要素点:位置(用坐标表示)、方向(用箭头表示)、 状态(画笔抬起或放下)、颜色(画笔的颜色) ④复习海龟的基本动作:移动、绘制、填充。 | ||
| 定制个性Logo环节中的准备性练习:掌握起始坐标、结束坐标、转向和画线——绘制图形的方式 | ||
| <项目制作部分> | ||
| 定位画线条的格式练习。 | t.pencolor(color) t.up() t.goto(x,y) t.down() t.forward(w) | |
| <设计意图> | ||
| 教与学方面:以实践动手为依托,以错误改进为手段,在编写和调试的过程中,修正错误,明确知识点,强化意识,相互探讨和改进。 核心素养渗透方面:培养遇到困难勇于探索的精神和面对失败不言放弃的心理素质。 | ||
◇活动3:定义、调用自定义函数的语法
| 回顾:定义、调用自定义函数的语法 | 教学方式:以提问法、小组探讨形式进行,以例析求结果方式反馈。 | ||
| 掌握内容 | 学生活动 | ||
| 定义、调用自定义函数的语法: def 函数名(形式参数表): # 函数体 ①函数体包含一个定义函数做什么的语句集合,必须相对于def向右缩进。 ②函数调用方式 ③函数的返回值怎么看? ④默认参数、变量的作用域。 | |||
| 定制个性Logo环节中的准备性练习:模块化画横线、竖线、撇、捺——用函数调用自定义函数 | |||
| <项目制作部分> | |||
| 定位画横竖撇捺。 | def drawheng(t,x,y,w,color="black"): t.pencolor(color) t.up() t.goto(x,y) t.down() t.forward(w) def main(): t.pensize(18) drawheng(t,-200,150,400,"red") #第一横 t.up() t.goto(-200,80) t.down() #利用循环显示方框的代码略 drawheng(t,-200,0,400,"green") #第二横 t.right(90)#第一竖 drawheng(t,0,200,500,"blue") t.right(45)#撇 drawheng(t,0,-80,240,"brown") t.right(270)#捺 drawheng(t,0,-80,240,"orange") | ||
| <设计意图> | |||
| 教与学方面:培养小组协助互帮互助精神,充分调动学生积极性,相互探讨问题,相互纠错改进,促进建立一帮一,一帮多的高效课堂教学机制。 核心素养渗透方面:学生在竞争、互助、合作、交流、分享的过程中,认识和发现自我价值,展现自我风采,激发自我潜能,从而树立自信,乐学善学,乐于助人,不断发展自我。 | |||
| 回顾:列表创建和列表元素获取 | 教学方式:实例展示,教学提问,理论识记。 | ||
| 掌握内容 | 学生活动 | ||
| ①list2 = [2, 3, 4]或list3 = ["red", "green", "blue"]创建列表。列表可以存储任意大小的、有序的数据集合。列表的大小是可变的,列表是可变对象。一个列表被创建后,可以直接修改列表中的元素值。 ②通过列表名[下标],来访问列表中的元素。例如,list1[0]是列表list1的第一个元素。 ③len函数返回列表的元素个数。 max函数和min函数分别返回一个列表(元素必须是相同类型)中的最大值元素和最小值元素。 ④列表下标从0开始,列表list1的下标范围从0到len(list1)-1。sum函数返回一个列表(元素为数字)中所有元素的和。 | |||
| 定制个性Logo环节中的准备性练习:从列表中提取既定的颜色——对存储颜色的列表进行读取操作。 | |||
| <项目制作部分> | |||
| 为列表元素设置颜色,调用随机函数,用不同颜色画线条。 | list2=["green
t.right(10) n=random.randint(0,5) | ||
| <设计意图> | |||
| 教与学方面:让学生学会质疑和提问,全面理解分析问题,掌握多知识点结合问题的解决方法,培养解决综合性问题的能力。 核心素养渗透方面:培养计算思维的的性,对错误计算思维的批判性,积极形成发散性思维。 | |||
| 回顾:循环语句运用 | 教学方式:以提问法形式复习,以例析求结果方式反馈。 | ||
| 掌握内容 | 学生活动 | ||
| ①《高斯的故事》回顾循环的思路。 ②计算机最擅长的就是重复。一个循环就是一组重复执行的语句用循环的想法来设计计算的过程。 两种类型的循环语句:while循环和for循环 while循环是条件控制循环,根据条件的真假来控制。for循环是计数器控制循环,会重复特定的次数。 ③for循环的语法: for var in sequence: 循环体 ④range函数的参数必须为整数。range(a)等价于range(0, a),产生连续整数序列:0、1、...、a – 1 range(a, b),产生连续整数序列:a、 a + 1 、 ... 、 b – 2、b – 1 range(a, b, k),k为步长,若k为正数,产生整数序列:a、a + k、a + 2k、...,最后一个数必须小于b;若k为负数,产生整数序列:a、a + k、a + 2k、...,最后一个数必须大于b。 | |||
| 定制个性Logo环节中的准备性练习:不断从列表中随机取色画线直至有霓虹射线效果——循环语句执行。 | |||
| <项目制作部分> | |||
| 循环旋转一定角度画射线。 | main() t.pensize(2) import random def drawshexian(t,x,y,w):#画一条线 for i in range(36): drawshexian(t,0,0,300) def main2(): for i in range(1,4): t.right(5*(i % 2+1)/2) drawshexian(t,0,0,300) | ||
| 每隔10度画线条,线条颜色随机 | 每隔5度画线条,线条颜色随机 | 每隔2.5度画线条,线条颜色随机 | |
| <设计意图> | |||
| 教与学方面:培养学生利用数字化学习平台和资源,创造性解决问题的能力,发现问题,发现一题多解的可能性,培养发散性思维的能力。 核心素养渗透方面:培养学生通过评估选择合适的数字化资源与工具,有效地管理学习过程与学习资源,创造性地解决问题,完成学习任务,形成创新作品的能力。通过寻求最优解的能力,培养缜密的计算思维和数字化学习与创新的核心素养,同时,学会归纳总结,沉淀思维,掌握事物本质。 | |||
“体验动感Python,定制个性Logo”案例的情景构建是充分利用诸如学校组织的“跳蚤市场”上学生自制的动态广告,平时上学放学,特别是晚自习放学时,黑暗中跳跃闪烁的霓虹广告等学生平时耳濡目染的现实生活和亲身感受作为引导,在激发学生创作欲望的同时,激发学生强烈的求知欲,同时,明白要做出这样的作品,一定要先掌握必不可少的知识和技能,从而,点燃学生思维的火花,积极开动脑筋,培养学生探索性和创造性解决问题的能力,制作出诸如“点阵法闪烁”、“回形针效果”等等许多个性Logo标志,最终,在实践动手创作的过程中,将应该掌握的知识进行了巩固和实践运用,效果强于死记硬背和按部就班。
该案例的教学过程采用项目教学法,以让学生制作一个具有个性的动感Logo标志为主线,将以往课堂上所学的模块调用、标准函数引用、自定义函数调用、坐标设置、列表创建、列表元素获取、循环语句运用等方面知识进行回忆和复习,并且在串联、使用和制作项目的过程中进行巩固和加强。
在教学安排上,要充分结合拓展性、探究性的项目教学法的特点,注重理论知识点例析解惑,在加深巩固的前提下充分进行实践活动。围绕教学重难点,有侧重有区分的对待,以练促学,以练促记,在练习中发现错误,在纠正错误中弄清原理,达到最终掌握知识重难点目的。
在实践教学过程中,根据实践过程不断改进教法,对各个活动环节,有以下侧重和思考。
一、在教学活动1过程中,侧重于理论知识点的重难点讲解,区分内置函数定义和模块的定义,以及模块未调用产生错误的修正,可以用错题运行纠错法让学生掌握所学知识点。
二、在教学活动2过程中,在掌握巩固定位、方向、 状态、颜色、移动、绘制、填充等方法的基础上,要加强学生的实践操作,在操作过程中往往会发现许多问题,或是对概念的理解偏差,或是对定义的理解不明,而这些都可以在编写代码、运行出错后的修改更正、运行、再更正这一系列过程中得到明确。为提高课堂教学效率可以采用小组协作法,先各自探索解决问题,若遇到困难可以组内相互帮助解决。
三、在教学活动3过程中,要侧重于自定义函数的理论分析和理解。书写方式、函数返回值等易错点是教师加强重点讲解和分析指导的关键,学生编程实践练习的比例可适当减少,理清思路,提高对程序段的分析理解是本活动的关键所在,对今后的程序学习有较强的指导意义。
四、在教学活动4过程中,首先,应加强理论知识点的识记和运用。全面理解分析问题,掌握多知识点结合问题的解决方法,培养解决综合性问题的能力。让学生学会质疑和提问,培养计算思维的的性,对错误计算思维的批判性,积极形成发散性思维。
五、在教学活动5过程中,循环语句对学生来说是需要讲解的重点。掌握循环语句的思路和书写法则是关键。因为书写比较费时,所以本环节宜采用填空法让学生进行复习和巩固。学生可以在计算机上对教师设置的程序半成品进行填空和运行,可以进行小组协作讨论、教师重点提示,最后,教师可以屏控展示部分学生的结果和运行情况,进行归纳总结。
六、在今后的教学过程中要着重注意以下几点:
1.在教学过程中要注意知识点的自然过渡和衔接,有一定的知识延伸,让学生有思维的连续性和拓展性。
2.要培养学生的理解能力和思考能力。不要急于公布答案,要给学生留下充分的思考空间和时间,让学生在思考中有所交流和思维碰撞。
3.对于不明确的知识点,可以通过实践操作、纠错、改进的方式获得成功的体验,也就是我们平时所说的理论与实践结合,实践出真知。
4.可以充分发挥小组协助的功能,充分调动学生积极性,相互探讨问题,相互纠错改进,促进建立一帮一,一帮多的高效课堂教学机制。
5.课后及时总结经验。教师制定“教后记”,学生制定“学后记”,促进学生及时弥补考虑问题的缺陷和不足,教师根据案例教学过程中出现的问题,制定对策和方案,改进教学方式方法,提高教学效率。
争取做到以下几点,真正把课堂变成培养学生,激发学生的平台。
①让学生眼前“亮”起来——引人入胜的动画效果,吸引学生,激发学生学习的兴趣。
②让课堂“动”起来——学生积极踊跃参与,一改死气沉沉的课堂,进行富有激情的学习。
③让学生思维“活”起来——点亮思维的火花,进行创造性学习,拓展思路,各具特色。
④把学到的知识“用”起来——理论结合实际,进行知识巩固运用和检验。
(浙江兴中学 周建东)
