基于计算思维培养的高中信息技术课堂教学探究
——以for循环为例
摘要:2019年高中信息技术教材实现换代,编程计算成为新教材的重要内容。如何在编程教育中,摆脱传统的演练、模仿,培养学生的计算思维?文章以《周而复始的循环》这一章节为例,从教学情景创设到活动任务分层,以问题为导线,采用探究式学习,将学生引入发现问题、主动寻求答案的课堂舞台,鼓励学生自主探究、试错、总结,从而落实计算思维的培养。
关键词:计算思维 高中信息技术 课堂教学
一、计算思维与编程教育
《普通高中信息技术课程标准解读(2017年版2020年修订)》指出:计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。
计算思维是一种可以培养与训练的能力,主要是处理、分析和解决问题时所依赖的思维方式和能力。算法是计算思维的载体。编程是将算法具体化、以特定语言实现的过程。由此,信息技术课堂上的编程教育是培养学生计算思维的重要环节。
任何编程语言的学习都要面临语法规则,需要学生投入时间去熟悉和掌握。对于县级城镇的大部分高中生来说编程语言是零起点。零起点的学生一方面对新知识充满好奇,乐于探索;另一方面对新的学习内容很容易遭遇困难和挫折,需要时间适应,尤其是在入门初期,需要更多的教师指导和支持。
教师在引导学生学习编程语言的过程中,如果摆脱传统的演练、模仿、掌握模式,而是让学生变被动为主动,去发现问题、探究答案,从而掌握。笔者借教育科学出版社出版的《信息技术必修1.数据与计算》2.3章节《周而复始的循环》谈一下自己的实践与探究。
二、选取与定位
1、教学内容的选取:明确教学目标,立足学情,设计教学活动
在for循环中,教学目标是什么?掌握for循环的基本格式。从教学目标出发,基于本校学生的实际情况,对教材内容作了调整与补充,课时、内容安排如下:
|
第一课时 |
围绕列表与列表元素的概念与表达、让学生用range()函数生成有规律的数字列表 |
|
第二课时 |
通过作画掌握For循环的基本格式 |
|
第三课时 |
通过教材的存款案例巩固for循环、能用流程图归纳for循环结构 |
本文案例为第二课时:设计“用python作画”的例子,降低for循环的入门难度,将代码与图形的结合,消除学生对编程语言学习的畏难情绪,让学生更具象的掌握for语句的基本格式。
2、教学重点的定位:问题导向教学,将学习任务活动细化为小目标
在for循环中,教学重点是——列表在for循环承担的作用。围绕该教学重点,整个课堂活动拆分为4个小目标,由问题引领,教师引导学生一步步在实践中寻找答案:
|
课堂任务 |
活动 |
设计目标 |
|
画卷1: * * * * *
|
1、对比活动:能用Python画出画卷吗?
学生用前面所学print()重复5次完成。 教师用新知识for循环完成画卷1。 |
目标1、感受for循环在处理重复问题时的简洁。
|
|
2、探究活动:列表在循环中起什么作用?
围绕画卷1,分别改变for循环中的列表元素数量和列表元素值,分析探讨列表在循环中的作用。
|
目标2、让学生在探究操作中理解列表元素的个数、列表元素的值与循环次数的关系。
|
|
|
3、探究活动:追踪循环变量,它是怎么变化的?
利用print()追踪循环变量的变化。
|
目标3、感受循环变量值与列表元素值的关系 |
|
|
画卷2: * ** *** **** ***** ****** |
4、对比活动:巧用循环变量,画出画卷2?
学生利用列表[1,2,3,4,5,6]完成画卷2。 教师引入range()完成画卷2
|
目标4、体验range()在表示规律的数字列表时的简洁。 |
3、活动主体的定位:鼓励学生动手、试错,纠正,打造主动探究学习的舞台
python代码的学习不像办公软件那样所做即所得,它需要一次次去运行去调整。而这样的过程恰恰是计算思维所要培养的:一步步去发现问题,一步步去解决问题,从而将复杂问题抽象为可处理、可理解的形式。
因此,课堂设计的时候,尽量减少教师的讲解,多给时间学生操作:同样的画,print()需要输入5行,for循环只用了两行代码,这样一对比,更能激发学生对for循环的解读兴趣。课堂重点“列表在循环中的作用”,教师没有展开讲解,而是设计探究活动2,让学生动手修改列表中的元素数量,查看运行结果。在一次次的调整、运行、观察中得出结论。
学生是学习活动的中心,教师的演示、讲解都应围绕学生的需求。给足学生试错的时间,让学生在试错中发现问题、寻求解决方案,不追求一步到位的掌握。
三、基于计算思维培养的课堂教学设计:
学科核心素养:
1、通过py画图,代码与图形的结合,消除学生对编程语言学习的畏难情绪。(数字化学习与创新)
2、能用for循环语句编写代码,画出重复图形。感受for循环处理重复问题的有效简洁。(信息意识、计算思维)
3、在问题引导下主动探究for循环结构,在实践操作中解读列表在循环中的作用。(计算思维)
教学内容:
本节课是基于2.3章节《周而复始的循环》(教育科学出版社《数据与计算》)的教学内容做的铺垫教学。旨在让学生更具象的掌握for语句的基本格式,感受for循环在处理重复问题的简洁有效。
for循环这一知识的学习,教师计划是3课时。
|
第一课时 |
掌握列表与列表元素的概念与表达、 会用range()函数生成有规律的数字列表 |
|
第二课时 |
通过作画掌握For循环的基本格式 |
|
第三课时 |
通过书本的存款案例巩固for循环 |
本教案设计是第二课时。通过画卷1、画卷2的绘制,熟练掌握for语句的基本格式。
教学目标:
1、掌握for循环的基本格式。
2、感受for循环在处理重复问题的简洁有效。
3、理解for语句中循环变量的作用。
教学重难点:
教学重点:列表在for循环中的作用。
学情分析:
1、学生现有的知识水平:
已完成第二单元《编程计算》前两个章节的学习,掌握基础的Py知识:py文件的编辑与运行,输入、输出函数,分支语句中的关键词if等。对列表与range()有了一课时的专项学习。
For循环第一次接触,从作画入手既能降低难度也更容易让学生有成就感。
2、现有技能准备:
接触使用IDLE软件6次,会看懂简单的运行出错提示。
3、认知发展水平:
这一阶段的学生求知欲强,思维活跃,富有个性,勇于实践,且已经具备了一定的信息素养。
教学策略:
本次课堂的教学设计主线:画卷1(每行一个*,连续5行)、画卷2(第一行一个*,第二行**,第三行***,一次类推,共6行),围绕该主线设计了4个课堂活动:
1、对比活动:前后两种代码画出画卷1,感知for语句处理重复问题的简洁。
2、探究活动:围绕画卷1,分别改变for循环中的列表元素数量和列表元素值,分析探讨列表在循环中的作用。
3、探究活动:追踪循环变量。
4、应用与迁移:独立再战画卷2,引入range(),更简洁的表达有规律的数字列表。
教学环境:
网络机房、IDLE软件。
教学过程设计
(一)创设情境,展开活动1:
1、教师情境导入:“我们今天要用PY来画画。这是我们要画的第一幅画。我们一起来观察这幅画的构成:总数是5行,每行是一颗*。你能用前面所学的print()函数画出这幅画吗?”
2、学生利用print()作画
3、教师观察学生,学生上台演示:5行print(*)生成画卷1。
4、教师设问“有没有更好的办法?”引出课堂学习内容。
教师提问:面对这个格式,有看不懂的名词吗?
结合学生反馈,讲解循环体:就是需要重复出现的语句。我们这个例子中的循环体是哪一句呢?——print(*)
教师演示:for i in [1,1,1,1,1]:
print(“*”)
5、学生用for语句完成画卷一,上传作品。
6、师生合作点评,修正for语句中的易错点。

(二)探究for循环中列表的作用。
1、教师出示探究任务,进入活动2
|
探究操作 |
发现 |
|
1、删掉1或2个列表元素
|
列表里的元素为4个,循环次数为 次。 列表里的元素为3个,循环次数为 次。 列表里的元素为n个,循环次数为 次。 |
|
2、修改列表元素的值: 将列表[1,1,1,1,1]改为[1,2,3,4,5] |
当列表[1,1,1,1,1]改为[1,2,3,4,5]循环次数发生改变了吗?
|
得出结论:循环的次数取决于列表元素的数量,与元素的值无关。
2、活动3:利用print()追踪循环变量的变化
|
探究操作 |
发现 |
|
for i in [1,1,1,1,1]: print(i) |
循环变量i的值变化: |
|
for i in [1,2,3,4,5]: print(i) |
循环变量i的值变化: |
得出结论:循环变量的值来自列表元素。
(三)出示画卷2,开展活动
1、教师出示任务:巧用循环变量,完成画卷2。学生独立探索。
2、上传任务,师生合作点评。在评价中,进一步巩固for循环。
3、教师设问“如果图形按这个规律递增,循环次数是20次,最后一行是20颗*,我们需要输入20个元素的列表吗?有更简洁的表达吗?”
4、用range()代替列表完成画卷2,上传作品。
5、学生作品展播,请学生对有问题的作品进行分析、找到问题、修改代码。

(四)课堂小结
1、学生完成课堂小结:
计数循环的基本格式:
For 循环变量 in 列表/range( ):
循环体
2、拓展任务:
给学生提供更丰富的Python绘画作品,修改里面的for循环,查看运行效果。
四、小结
科技发展推动着教学理念的更新,项目式学习、大单元教学的成为我们一线教师教学探究的新方向,传统的任务驱动法也它的小阵地,特别是面对零起点的乡镇学生。
教师根据课程内容和教学目标设计符合学生实际学情的任务,学生通过问题引导一层层去探究、去调试、去求解、接近或找到答案,在这样的学习过程,实现计算思维能力的提升。