Python编程学习中巧用开源硬件提升问题解决能力
2022-01-15秦维超戴晓芬
秦维超 戴晓芬
面向人工智能前沿领域的Python编程内容已纳入浙教版高中信息技术教材。对于在编程领域零起点的高中生,纯Python编程的学习往往停留于知识点的罗列,自然感到乏味、无趣。那么,在学习Python编程时如何提高学生解决真实问题的能力呢?笔者认为,将Python教学的知识点融合到开源硬件Micro:bit搭建的实际项目设计中,寓教于乐,使学生在Python编程学习中经历发现问题、分析问题、分解问题、转化问题、解决问题、总结问题的全过程,可全面提高学生的问题解决能力。
● 开源硬件在Python编程学习中的优势
对于学习Python编程的大部分高中生来说,在学习了Python的基本语法、数据结构、三种控制结构等基础知识后常会出现学习积极性不高和迷茫的情况,之所以出现这种情况,往往是因为缺乏Python编程的实践场景。
《普通高中信息技术课程标准(2017年版)》将“开源硬件项目设计”作为选择性必修模块划入新课标,其中主要包括“开源硬件的特征”“开源硬件项目流程”和“基于开源硬件的作品设计与制作”三部分内容。基于开源硬件的项目设计体现了信息技术课程中硬件和软件编程相融合的理念。开源硬件在编程学习中的优势主要有:①变抽象的知识点罗列为直观的可操作的应用。基于开源硬件的Python编程,调试结果将通过硬件(如LED灯、声音、风扇等)直接呈现在外部环境,学生的感官能直接观察到相应的光、声、动等信息,调动多感官参与学习来深化对编程技能与思维的理解。②提供有挑战性的以问题解决为导向的学习内容。基于开源硬件的Python编程,拓展了应用Python编程来解决问题的场景,如何组合并联动不同类型的硬件来解决特定的问题,考验并检验了学习者对编程的理解程度和学习迁移能力。③从生活中来到生活中去。基于开源硬件的Python编程,提供了真实学习场景,即利用可编程的开源硬件来仿真生活中的场景。这样既能引导学生进一步探究实际生活场景背后的技术原理,又能鼓励学生思考如何将所学的编程知识运用到解决生活问题上——这是编程学习以应用和问题解决为导向的特点。
● 如何在Python课堂中巧用开源硬件
在设计基于Python的硬件编程课程时,不要认为凡是硬件编程的内容,都是围绕学习某硬件的功能特性来展开的,对于入门级的Python硬件编程课程而言,设计者需要思考如何把对硬件的编程与Python软件编程结合在一起。
笔者尝试了一种基于Micro:bit的以问题解决为导向的Python編程课堂教学范式,借助Micro:bit代替Python单纯语句教学形式,学生可以直观地把Python编程项目成果展现在自己的作品中。例如,在借助Micro:bit构建的点阵LED灯光屏幕中,结合Python编程重难点内容之一的双重循环,将其转化为一个LED灯的显示、一行LED灯的显示、多行LED灯的显示,调动了学生学习积极性,提高了学生在真实场景中的问题意识、问题思维能力和转化能力。
● 基于开源硬件的Python课堂有利于提升问题解决能力
开源硬件的教育应用应着重发展学生的创新能力,包括学习能力、发现问题能力、设计解决问题方案能力和实践其方案的能力。基于Micro:bit的以问题解决为导向的Python编程的课堂教学范式,主要由创设问题、分析问题、问题转化、问题分解、解决问题、总结问题等环节组成。
1.创设问题
借助Micro:bit的正面LED屏,模拟城市景观灯,显示多彩的滚动灯光秀。第0排从左到右依次点亮LED等待1秒之后自动全部熄灭,接着第1排从左到右依次点亮LED等待1秒之后自动全部熄灭,然后是第2、第3、第4排。第4排结束之后能自动重新回到第0排进行周期性亮灯。
2.分析问题
引导学生借助流程图进行分析,Micro:bit正面有5×5的LED显示屏,可以用来显示图案和文字。将上面的问题情境经过算法分析,可以借助5次循环依次控制每一排LED灯的亮和灭,形成图1所示的流程图。
3.问题转化
转化就是把较复杂的问题变成较简单的问题,把未知的问题变成已经解决的问题,如点亮LED灯的问题可以转化成数字图像。
4.问题分解(如图2)
把复杂的、笼统的问题拆解成一个个小的、可执行开展的问题就是问题拆解能力,只有正确拆解了问题,才能形成合理的假设、切入点。这个能力是不断进阶并胜任复杂任务的基本功。
5.解决问题(如图3)
6.总结问题
本节课将理论知识与动手实践结合,培养了学生的创新实践能力与团队协作能力,通过该实验让学生认识到在信息课上学到的知识、技术是有用的,是真的可以转化成实际的产品甚至是艺术品的,提高了学生学习信息技术学科的兴趣,为学生学习后续的知识增加了驱动力。但同时本节课也有一些不足,如该实验难度不大但环节较多,学生水平的差异导致部分小组进度较慢等,因此笔者在后续班级的教学中,根据学生学习能力进行了分组,每组都有不同学习能力的学生,这样在提高实验效率的同时也锻炼了学生的团结协作精神。
● 开源硬件带来的改变
在认知层面,主要表现在开源硬件作为基础教学工具,能够降低学生理解程序设计相关知识的难度,同时为学生的编程提供更广阔的动手操作空间,对学生学业成就、问题解决能力、认知能力等方面的提高具有显著促进作用。在非认知层面,将开源硬件作为创新能力培养的平台,可以有效提高学生的学习兴趣、学习自信和主观能动性,使学生向更乐于合作、参与、分享、实践的态度转变。