【摘要】《普通高中信息技术课程标准》(2017版)将算法与程序实现作为必修模块一的主要内容,并融入到多个单元和模块中。大部分教师缺少相应的知识储备,需要及时补充。本文结合笔者近3年的教学实践和学习,从课程标准研读、教材梳理挖掘、教学范例拓展、学科核心素养提升等方面,阐述了进行算法与程序实现教学应该具备的知识储备及提升方法。
随着《普通高中信息技术课程标准》(2017版)(以下简称课标)的颁布,以及高中信息技术新教材的审读试教活动的开展和定稿发行,高中信息技术学科新一轮课程改革的内容已经明确。相比上一轮课标和教材变化显著,其主要表现之一:必修模块一《数据与计算》中将算法与程序实现作为重点,其内容的广度和深度都远高于上一轮的课标要求。最大的变化是,新一轮教材所采用编程语言为Python,这是大部分教师没有学习过的纯代码编程语言。面对变化,信息技术教师要及时的补充专业知识,才能开展正常的教学活动。由于算法和Python语言涉及的知识非常广泛,教师应该学习哪些内容?达到什么程度?如何学习?是信息技术教师面对的主要问题。
笔者从2017年开始学习Python编程语言,同时开始教学尝试。经过四届学生的教学实践和不断的学习,参加某出版社教材审读试教和教参编写,主讲多次市级专题培训讲座之后,认为信息技术教师可以从以下几方面做好知识储备。
一、研读课程标准,储备学科学习方向性的知识课标从内容要求、教学提示和学业要求等方面,对算法与程序实现提出了要求和建议。我们可以从中提炼出本学科学习的方向,明确学习的知识框架。
例如,从内容要求中“掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。”这句话,我们可以提炼出“程序设计语言的基本知识哪些呢?在Python中对应的内容是什么?”、“简单算法包括哪些内容?如何用Python实现相应的算法呢?”
再如,从教学提示中“通过编程实现枚举法中的‘百钱买百鸡’等经典案例,体验程序设计的基本过程,学习程序设计的基本方法。”这句话,我们可以提炼出“其他的枚举算法经典案例是什么?用Python如何实现呢?”、“枚举算法之外的简单算法和经典案例是什么?用Python如何实现呢?”“程序设计的基本过程和基本方法是什么呢?”
通过这样细致的研读课标,提炼出具体的问题,便可以明确应该储备知识的框架。然后按照这个框架,明确学习的方向性知识。
从课标征求意见稿发布到新版教材发行,周期很长。笔者按照这种方法确定学习框架和方向后,通过购买书籍、选修网络课程、关注微信公众号等方式进行自主学习。并做到围绕框架,控制学习范围,使学习目标明确。
这种方法一般用在教材发行之前。在新版教材发行之后,教师可以以此为依据,有针对性的在教材中寻找答案,以便更好的分析教材使用教材。
二、熟读教材,储备胜任学科基础教学的知识对课标的研读只能明确学习的框架和方向,并不能准确的确定学习内容和深度。而教材是对课标较为精准的解读和具体化呈现,因此熟读教材梳理知识点,便能够明确具体的学习内容和深度。
不同出版社的教材有不同的风格和定位,在具体的内容组织上会有所差异。例如某版教材将知识全部融入到项目中,在做中学;另一版教材先提出项目,再介绍知识,最后利用知识完成项目。某版教材涉及turtle、time、math、sinomaps、jieba等5个模块;另一版教材涉及math、random和Image等3个模块……教师可将多个版本教材利用思维导图梳理知识点,进行对比综合,形成知识脉络图,进而针对性的学习,增加教学知识储备。
例如,通过这种方式,笔者发现学习Python时需着重关注in操作符、列表和字典等序列类型及模块的应用。这是Python区别于其它编程语言的主要内容。例如,图1所示是使用in操作符和列表判断生字的小程序,“ok_word”是一个存放学过的字的列表,“if i in ok_word”表示如果“ok_word”列表中存在“i”。这种用法非常简洁的实现了在c++等其他编程语言中需要使用循环遍历才能实现的功能。
图1 in操作符和列表应用
三、挖掘教材,储备适应学生个性化需求的知识
课标提倡项目学习,教材中的范例多是基于生活情境的小项目,这些小项目一般具有一定的挖掘空间。例如,笔者看到某版教材中的范例“最强大脑”游戏时,第一反应是应该增加“如果输入超时便结束游戏”的功能。为了实现这个功能,笔者利用网络搜索、求助技术高手等方法,花费了很多精力,仍未解决。最后在阅读某公众号的一篇文章时,偶然发现了解决问题的方法。这个经历使笔者知道了shell和命令行下运行Python代码可能得到不同的结果;知道还有sys、msvcrt等模块可能会在教学中用到;知道了print()命令flush参数的作用等Python知识。这些知识是教材没有直接体现的,如果不进行教材范例的挖掘是无法发现的。
虽然挖掘教材范例需要的知识不是教学必备的,但却可以在解决学生层次差异、引导学生深入学习、激发学生学习兴趣、预防课堂“尴尬”等方面发挥一定的作用。试想如果学生提出类似的问题,而教师毫无知识储备会怎样呢?这部分的知识储备有一定的不确定性和难度。需要教师在准备教学时充分考虑提前准备,也需要关注学生课堂上提出的问题不断积累,以满足学生的个性化需求。
四、拓展教材,储备提升学科魅力的知识
教学的重要目标之一是在学生心中种下一粒种子,使其慢慢发芽、生根、长大、开花、结果。这粒种子需要使用一些“魅力”知识来播种。而“魅力”知识仅从教材中获得是不够的,需要教师进行拓展。
例如,图2和图3是笔者搜索整理的求解非线性方程组和绘制3D等高线的代码及运行结果图。两个例子分别涉及数学学科和地理学科知识,一文一理相得益彰。短短的十几行代码就能够解决较为复杂的学科问题,对学生的触动是可想而知的。“我将来不学计算机专业,不需要学这个”的想法会淡化。“这个可能对我将来的专业学习有用”的想法会萌发。如果教师能够“轻而易举”的给学生呈现这样的跨学科应用范例,那粒种子一定会深深的植入学生心田。
图2 求解非线性方程组
图3 绘制3D等高线
这方面的知识储备需要在具备前面的知识储备后,在充分利用专业技术社区等网络资源寻找范例、阅读代码、修改代码的过程中逐步提升。
储备这些知识时需要注意,教材是教学的重要依据。尽管由于种种原因教材的范例不尽如人意,但教材所承载的知识、思维和理念是源自课标的。教师在修改范例甚至自行设计范例时,不能脱离这三方面内容。同时要牢记,算法与程序实现的教学核心不在语法,也不在算法,在思维。算法是思维的表现,语法是实现算法的工具。
五、提升学科核心素养,储备提高学习能力的知识信息技术学科的核心素养不仅是培养学生的目标,更是教师必须具备的素养。教师如果具有较强的资源搜索能力进行数字化学习,通过敏感的信息意识从中筛选出适合的资源;能够运用计算思维解决搜索和学习过程中的困难;能够创新性的应用各种工具,提升学习效率;能够学会分享并遵守资源交流共享的规则,承担信息社会责任等,将利于教师学习能力的提升。
例如,笔者在教学中发现,Python自带的编辑器IDLE存在纯英文界面、行号不明显、调整显示不方便等不利于教学的问题。尝试了Jupyter、PyCharm等编辑器,能解决问题的同时也带来了安装配置难、界面复杂等更不利于教学的新问题。在寻找更合适的编辑器时,敏锐的信息意识使笔者从无意中看到的“谁不喜欢硬件、闪烁的LED、传感器,使用Mu,一个老少咸宜、用户友好的编辑器?”这句话中,发现了Mu这个关键词。但是网络搜索结果却指向了一款游戏,通过运用计算思维不断的调整搜索关键词,才找到官方下载地址。在使用中发现Mu编辑器果然能够很好解决使用IDLE编辑器遇到的问题(见图4),更适合初学者学习使用,尤为适合教学,但也发现安装新模块时存在的困难。通过数字化学习,创新性的研究出解决方法(见图5)。并撰写文章,通过公众号分享给更多的老师,尽自己的社会责任。
图4 MU和IDLE编辑器主界面对比
方法1:使用pip命令
方法2:复制IDLE模块文件
图5 MU安装新模块的方法
再如,基于“一个人走得很快,一群人走得更远。”的认识,笔者加入了一些Python学习交流群,受益良多。但同时发现这些群探讨的方向有些杂乱,内容大多超出了教学所需,不利于高中教师教学知识储备的提升。便组建了“高中Python教学交流群”,专门探讨交流和高中教学密切相关的内容,并拓展到整个高中信息技术课程教学的研讨。同时,为了使共享资源更有针对性,更好的尊重资源拥有者,遵守知识产权相应规定,承担信息社会责任。创建了《高中Python教学资源交流共享协议(HSPT-RESP)》,提出了“我们不做网络资源的搬运工,我们做资源整理的知识分享者,我们做资源交流的守则者”的理念。通过这种方式,获得了优质学习资源,拓宽了视野。在不断的交流碰撞中,学习能力和学习成效都得到很大提升。
总之,储备算法与程序实现教学知识的过程不是一蹴而就的。教师需要立足课标,依托教材,从教学需求出发,明确方向,充分利用信息技术手段循序渐进、有的放矢的进行。
作者单位:哈尔滨市第三中学校
注:本文是哈尔滨市教育学会“十三五”教育科学规划重点课题《普通高中算法与程序实现单元教学实践研究》(课题编号:HXHXZ-135-001)研究成果。曾发表在笔者个人微信公众号“行走路上”和《中国信息技术教育》杂志2020年8月刊,本文有修改。
参考文献:
1.教育部.普通高中信息技术课程标准(2017年版)[M].北京:人民教育出版社,2017.
2.任友群,黄荣怀.普通高中信息技术课程标准(2017年版)解读[M].北京:高等教育出版社,2019.
3.李维明.普通高中信息技术必修模块教学专题指导[M].上海:上海科技教育出版社,2018.
4.李锋等.信息技术必修1数据与计算[M].北京:人民教育出版社,北京:中国地图出版社,2019:37-82.
5.李艺等.信息技术必修1数据与计算[M].北京:教育科学出版社,2019:17-48,85-117.
6.郑骏等.信息技术必修1数据与计算[M].上海:上海科技教育出版社,2019:67-126.
7.闫寒冰等.信息技术必修1数据与计算[M].杭州:浙江教育出版社,2019:38-90.
8.黄国宏等.信息技术必修1数据与计算[M].杭州:广东教育出版社,2019:39-96.
9.熊璋,邵红祥.重塑信息科技教育[J].中国信息技术教育.2020(2):4-9.
10.熊璋,黄国宏.立足新时代,构建新课程——关于中小学信息科技课程设计的思考[J].课程教学研究,2020(1):4-7.
11.董付国.Python实现“按任意键返回”和无回显输入[EB/OL].2020-03-24[2020-05-01].https://mp.weixin.qq.com/s?__biz=MzI4MzM2MDgyMQ==&mid=2247491050&idx=1&sn=32d185527e4c60541c67ac90a53a29a2&chksm=eb8ab6b0dcfd3fa6eca1b277f171531b2204bfad5966f40f8606c500455f23204b65143e730f&mpshare=1&srcid=&sharer_sharetime=1585060970128&sharer_shareid=e6640b53cd566d74e9429b179d06c2dc&key=da21d41c58faea5baefcad8316c71ba55a824b89ecbfa74cfaff1fcf5044e7fcacb95ce0b1fb8966ed3ba6ddd658eab951a3d5c72033c66c859a2dc09bcf7cfee799a2a72bca22089cae01d4ab3cd100&ascene=1&uin=MjM0MzQyMjUwMg==&devicetype=Windows%208&version=62080079&lang=zh_CN&exportkey=AVDmVBM/H8H1VT%20tMXUpGrk=&pass_ticket=wcP97qa4UobCBOSEsClk6DRiEN2EVTwhelZ9DWi3ZKaGHFPKCh%207dpcu%20nkW1Aqo&scene=21#wechat_redirect.
12.zjc08125.Python求解非线性方程[EB/OL].2014-05-09[2020-05-01].https://blog.csdn.net/zjc08125/article/details/25370053?utm_source=app.
13.SZU_ZNG.Python数据可视化大全[EB/OL].2017-09-17[2020-05-01].https://blog.csdn.net/qwop446/article/details/78011271?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158830464919724846448396%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57662%2522%257D&request_id=158830464919724846448396&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1.
END
微信号:hrbjyxh哈尔滨市教育学会-扫码关注我们-