面向计算思维的高中Python编程项目式学习设计

2022-07-20 04:38瞿荣
中国信息技术教育 2022年14期
关键词:项目式学习计算思维

瞿荣

摘要:《普通高中信息技术课程标准(2017年版)》设定了新内容,提出了新要求,面向计算思维的高中Python编程教学成为高中信息技术教学的主要阵地。作者提出,高中Python编程教学要着力培养学生的计算思维,Python编程项目式学习设计要基于单元进行学习内容分析和目标设计,要源于生活进行主题选择,要让学生经历问题解决的过程。

关键词:计算思维;项目式学习;Python

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2022)14-0041-03

《普通高中信息技术课程标准(2017版)》颁布以后,高中信息技术教学从以往偏重信息技术操作技能训练走向了注重学生学科核心素养培养。在高中信息技术学科核心素养中,计算思维是其中的关键能力,因此,高中信息技术教材普遍使用Python编程语言作为学生计算思维培养的支撑工具。但在日常的Python编程教学中仍然存在着诸多问题,如指向计算思维发展不够、偏向传统讲授式教学等,这些问题都严重制约着高中Python编程教学价值和信息技术学科育人价值的体现。

经过实践,笔者发现让学生使用“算法+编程”来解决问题,进而培养计算思维是一个很好的方法。因此,面向计算思维的高中Python编程项目式学习设计至关重要,而如何在Python编程教学中渗透计算思维的培养,则对教师提出了更高的要求。

下面,笔者以沪科版《必修1 数据与计算》第三单元“算法和程序设计”中的“项目七用计算机计算圆周率——设计简单数值数据算法”为例,从创设情境、新知学习、归纳梳理、拓展提升、迁移应用五方面分析指向学生计算思维培养的方法,阐述高中Python编程项目式学习的设计策略,以期为信息技术教师提供一定的参考和借鉴。

基于单元:依托教材的项目式学习内容分析与目标设计

任何教学策略的制订都要基于学习内容分析和学情分析,但很多高中信息技术教师常常直接进行项目式学习设计,缺乏对学习内容分析的坚实基础,这样自然会导致教学目标与教学策略设计的不足。因此,教师必须先对学生所要掌握的Python编程知识与能力的系统进行梳理,揭示出单元学习内容中各组成部分之间的内在联系,之后才能确定先学什么、后学什么、怎么学习等问题,从而实现Python编程项目式学习的最优化设计。

面向项目式学习的学习内容分析,笔者更倾向于选择基于单元进行学习内容分析。在日常的Python编程教学中,教师可以按照单元进行教学。单元实质上反映了教材编写者或教师对一门学科结构的总的看法,以及以此为基础对教学结构所做的分解和逻辑安排。高中Python编程项目式学习设计也要体现Python编程知识的整体性,注重突出Python编程的核心内容和内容之间的相互关联,从而实现学生Python编程学习的整体性。

例如,沪科版高中信息技术教材就强化了项目式学习,聚焦于大概念,以大概念发展为主线,把“数据”“算法”“信息系统”“信息社会”贯通整个教材。其中,《必修1 数据与计算》中的第三单元“算法和程序设计”总共由八个微项目组成,该单元全面系统地借助项目设计与实施让学生经历从“认知Python程序设计”到“掌握算法原理”,再到“使用Python编程解决问题”的全过程。高中生对Python编程有畏惧感,对Python编程的价值并无充分认识。因此,在全面梳理分析“算法和程序设计”内容后,笔者确立了本单元教学目标,如下图所示。

源于生活:项目式学习的主题选择

计算思维对高中生来说是一种问题解决能力,是一种能够使用计算机科学知识进行问题求解的能力,这种能力不可能要求学生一蹴而就,也不是单纯依靠教师的理论讲授就可以让学生掌握的。因此,在面向计算思维的高中Python编程教学中,教师要考虑计算思维学习的进阶性、情境性等特点,依托学生日常生活学习中所遇到的问题,借助信息技术创设虚拟的问题环境,并把知识情境化、任务具体化、操作可行化、评价可视化。

例如,学校每年按照《国家学生体质健康标准》对学生进行体质测试时都会产生大量的数据,如果利用其设计利用Python进行体质数据统计分析的项目式活动,其真实性和相关性能让学生真切地感受到Python编程学有所用。因此,笔者设计了“统计体质测试数据”项目。在本项目中,总共有2张数据表,一张是全部学生的测试数据all.xls(大概有近5000条记录),另一张是部分学生的测试数据bufen.xls(大概有500多條记录)。笔者给学生布置了任务:如何用部分学生的数据覆盖掉全部学生中的部分学生的数据?首先,引导学生分析该问题,如果直接复制粘贴到all.xls,就会产生500多条姓名和学籍号相同的记录。而如果用手工操作从bufen.xls复制粘贴到all.xls,覆盖掉相同的姓名和学籍号的同学的测试数据,这种做法又存在着浪费时间、容易出错等问题。那么,应如何快速、准确地处理这些数据呢?这时,教师可引导学生通过探索学会使用Python处理Excel表格的能力,即首先学习如何读取Excel表格信息,然后学习如何把数据写入Excel表格,最后学习如何利用好双层循环替换处理Excel表格数据。“统计体质测试数据”项目取材于学生身边的问题,而且是真实面对的编程问题,学生自然会比较感兴趣。学生们通过这个项目式学习懂得了算法与程序设计的真实生活价值,知道了编程可以很方便地解决真实生活和学习中遇到的问题。

经历过程:项目式学习强化问题解决

计算思维教育是要使学生能够运用合理算法,形成解决问题的方案,并迁移到与之相关的其他问题解决中。项目式学习只是承载计算思维发展的一种途径,并不是目的,目的是要让学生像在真实世界中解决问题一样,经历分析问题、分解问题、模式识别、解决方案确定和实施反思的完整过程。因此,高中Python编程项目式学习要让学生成为课堂的主导者,让其以小组为单位动手实践,经过反复的设计方案、论证方案、优化方案得出项目的可行开发方案,养成通过“动手做”解决问题的习惯。

例如,根据Python编程教学需要,笔者设计了一个“石头、剪刀、布”游戏。在游戏设计过程中,要想让学生经历思维过程,就要为学生的自主、合作、探究学习提供支持。一个真实的编程问题,一般都比较综合、复杂,因此必须进行分解,让学生能够根据已有的知识和经验,通过学习越过最近发展区,找到解决问题的方法,最后完成项目,这个过程就是对学生计算思维的培养和发展。在该项目中,笔者以兴趣激发为出发点,以计算思维培养为落脚点,遵循“游戏体验—需求分析、明确问题—分析问题、设计算法—编写程序、算法实现—运行程序、优化算法”这一思路,将程序设计的基础知识、算法的思想以及编程的技能融入到问题解决的过程中。学生经历了“创设情境,提出问题—描述解决问题的关键步骤;用可视化方法,如流程图、思维导图等表示—根据流程图编写程序—调试修改—迁移和应用”这六个步骤。同时,为了帮助学生进行探究性学习,笔者还提供了游戏半成品程序、学案、Python基本语法帮助文件等学习支架。在完成游戏的过程中,学生掌握了计算机解决问题的一般过程,了解了分情况讨论的分支思想,从基本输入输出到分支程序,从单分支到多分支,习得了程序设计的基础知识和分支程序控制结构。

结束语

项目式学习设计要真正实现“教-评-学”的一致性,还应将形成性评价融入到项目式学习活动中,这样不仅能燃起学生的学习欲望,更能培养关键能力,健全必备品格,让其学会倾听、自信表达、快乐成长。经过教学实践,笔者认为高中Python编程项目遵照“整体分析、分步实现、优化提升”的设计思路,遵循了分析问题、设计算法、程序编写与调试优化这一计算机程序解决问题的一般过程,有效培养了学生的计算思维。

在未来的教育教学中,深刻感悟学科育人理念,深入解读学科大概念,应成为信息技术教师自身和团队不断努力追求的上位目标,同时,教师还应在目标的指引下引导学生实现对知识的理解与迁移。

参考文献:

[1]邵红祥.面向计算思维的高中信息技术项目學习实践研究[J].中国信息技术教育,2022(10):49-51.

[2]蒋克凤.以Python语言面向数学问题培养学生计算思维[J].新教育,2022(13):42-43.

[3]张建锋.项目化学习在高中Python编程教学中的有效应用[J].江苏教育研究,2022(13):63-66.

[4]倪迪.指向计算思维培养的任务驱动式Python编程教学实践[J].教育传播与技术,2022(02):33-39.

[5]梁玉芳.项目式学习架起编程教学和计算思维的桥梁[J].中国信息技术教育,2022(05):16-17.

猜你喜欢
项目式学习计算思维
项目式学习在应用型本科院校人才培养中的探究
在初中物理中实施项目式学习
网络信息平台支持下的PBL英语教学实践与研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养