基于问题解决思路的中小学计算思维内容研究
管海蓉
2017版的高中信息技术课程标准中,第一次明确提出将计算思维作为学科的核心素养。如何结合现有教材内容,在教学中融入计算思维,这是中小学信息技术教师的困惑,也是落实学科核心素养的一个关键问题。为了尝试梳理这个问题,笔者组织了地区内不同年级段和学校的信息技术教师,开展了将计算思维融入当前教学的实践研究。本研究尝试通过教师易于理解和实施的问题解决思路,建立计算思维教学内容挖掘的一般路径,进行义务教育阶段计算思维教学内容的梳理,为一线中小学信息技术教师提供具有操作性的经验建议。结合我区中小学信息技术课程以问题解决为主的特点,我们确立了发掘计算思维教学内容的一般研究路径,并将其归纳为了解工具、描述问题、分解问题、确定方法、验证结果、寻求更佳六个部分。
了解工具——计算机的工作原理和方式
计算机已经成为人们解决生活中的问题的不可或缺的工具。了解计算机的特点,知道它能做什么、擅长做什么、不擅长做什么,如何发挥其优势共同解决问题,则是我们用好它的前提。存储程序、顺序执行、计算机的工作速度、刻板执行、对象化思维等都是计算机的工作特点和工作方式,在融入计算思维的教学中,可以由此入手,引导学生了解这些特点,以便于更好地利用工具解决问题。
以对象化思维为例,图形化操作界面Windows的诞生,将DOS的命令行操作方式彻底颠覆,这是工具本身工作原理的变化带来使用方式的变化,对象的概念渐入人心。然而,很多时候使用者并不自知,学科教育者则有必要将其梳理归纳,以提升工具使用的专业性和有效性。信息技术中的对象与管理,说的是基于数字化对象的管理思想和方法。对象可能是数字化设备,也可能是计算机文件,还可能是文件中的构成元素。[1]
《修改图形》案例为我区某教师在三年级画图单元进行融入计算思维教育研究的展示课。本课在完成基本教学任务的同时设计了几个活动:活动一比较纸笔绘图和计算机绘图的操作方式,归纳出都需要先选择工具、给予属性、确认位置、开始操作,这是以对象方式进行操作的体验;活动二比较纸笔绘图和计算绘图的操作方式在删除时的不同,计算机用区域选择的方式可以更准确、快捷、高效地完成工作,但细节上的处理无法精细;活动三通过区域“加”“减”的方法绘制图形,这是基于数据处理的计算机特殊的工作方法。
计算思维的描述比较抽象,无法直接呈现给学生,给学生的应当是去名词化的体验与感受。如上述设计,计算思维融入教学,只需要在现有教学内容中拓展点拨几句,并且长期持续坚持在不同章节进行关联与巩固。长此以往,自然而然就会转化成其自身素养。
描述问题——通过数字化将现实问题转化为“可计算”问题
计算机归根到底执行的是数值计算,将现实问题转换成数学问题才有可能通过计算用计算机予以解决。凡是需要计算机加工处理的信息都要用数据的形式表达。[2]
例如,文字的存储有数值化了的ASCII码和GBK,文字的显示打印有各种数值化了的字库,图片存储的红黄绿颜色是数值,声音视频也都是先数值化。这些数值存储在电脑里如何区别与协作,则依赖于各种预定的编码集、制式、协议等规则。
以江苏省初中八年级信息技术第1章《动画设计与制作》动作补间动画的教学内容为例,课本中仅描述了动作补间动画的制作流程,在大多数课堂上,能够在这节课完成位置、大小、透明度的变化的教学内容已较為令人满意。我区计算思维研究实践课中,教师的设计只多了一步——制作位置变化的同时,要求学生观察信息面板并进行对比,得到起始和结束关键帧上该元件的不同位置是用X值、Y值(坐标)确定的,再尝试讨论中间帧的具体坐标值,以理解动画补间之所以可以实现元件位置的自动变化,实际上是简单的数学问题,计算机通过预定的算法计算确定了不同帧上该元件的坐标。在完成这一讨论后,教师继而提出:观察面板还有哪些信息是数值化的?它们也可以自动变化吗?由于实验班级的学生在七年级的图片处理等学习中也有相关数值化的训练,他们就很容易发现,大小、角度、颜色、亮度Alpha值的变化,都可以通过面板上的数值进行精确控制。
计算是计算机科学的基础,计算的对象是数值。数字化这一思想贯穿了整个信息技术的各种应用,也因此贯穿在整个中小学信息技术课程中,只不过在以往的教学中,我们注重了操作技能的训练,而忽视了思想方法的剖析。利用“数字化”的思想,将不同章节的内容进行融合,便于学生更深入地理解学习的内容和学科的思想。
分解问题——通过抽象和分治思想“计算机形式化”现实问题
所谓“计算机形式化”,是指在信息活动中能够采用计算机可以处理的方式界定问题,抽象关键要素,分析要素间的关系。[3]什么是计算思维中的抽象?学科的基本问题不是针对一个学科的具体问题提出来的,而是在一个学科一大类具体问题的基础上,通过分析这类问题共同的特点和本质属性,经过总结、提炼得到更一般化的抽象的问题。[4]在问题解决过程中,抽象的目的,是为了把现实问题约简、转化、分解成计算机可直接解决的问题。
例如,在Flash动画章节,有将空间上复杂的关系分解成不同图层,简化单个图层的操作解决局部问题的方法,也有将时间上的先后关系分解成时间轴上的不同部分或更加集成化地分解成场景的方法;音视频制作中用轨道分别处理不同的呈现内容;网络中使用OSI分层处理通信数据,实现从硬件到软件之间有序的数据传递;在程序设计中更是有模块化思想、有分冶的算法。正如周以真教授所说的关注点分离,将大问题分解成可以直接解决的小问题,是动画制作、音视频制作、网络通信、程序设计中的一般化方法。分解过程将问题小型化、集中化,方便设计、实施和解决,通过接口或其他方式再对小问题进行组装,实现完整的任务需求,这也正是信息技术学科的问题基本解决方式。
确定方法——算法和程序思维
将问题解决过程细化、步骤化离不开算法和程序的思维。冯·诺依曼的存储程序原理看起来抽象,但其实仍可融入中小学的教学内容。例如,保存文件的操作顺序,绘画过程中先选工具再设属性,继而是操作的顺序,编程中积木块或语句的顺序,无一不在体现计算存储程序、按序执行的基本工作方式,可以通过教学中的指向性活动设计进行计算思维的渗透。
确定方法时,算法和程序也是必不可少的。在计算机科学中,为保证计算机有序执行指令,算法应具有指定输入、指定输出、确定性、有效性和有限性五个基本属性。从程序结构来看,通过顺序执行、条件分支和循环三种结构方式可基本完成算法的流程,实现复杂问题条理化和简单化。[5]在中小学计算机教学中,尤其是程序设计类教学中,涉及上述相关内容较多,一线教师对此也较为了解。
验证结果——检验工程在不同情况下的可靠性和稳定性
用计算机解决问题,实际上也是某种系统工程,检验工程的可靠性和稳定性是必不可少的环节。在周以真教授关于计算思维内容的解读中,对冗余、容错、纠错等系统设计的相关内容有过明确阐述。
研究团队教师在小学课堂的二维码教学设计中,尝试融入了冗余、容错、纠错思想的教学内容,以下是撷取的两个片段。
探究设计一:二维码正扫、反扫、斜扫是不是都能成功?它的四个角上为什么只有三个黑色定位矩形?通过学生实验探究、讨论思考,形象地阐述了良好的应用需要考虑用户使用的多种可能性,具有容错的思想。探究设计二:污损了的二维码是否能够扫描出来?教师特别设计了污损程度不同的二维码供学生实验,这部分则指向了通过数据冗余进行纠错。
工程设计方法也是计算机问题解决的普适方法,它的教学内容广泛存在于各年段各章节教学内容之中,还有相当大的挖掘空间。
寻求更佳——关注工作效率、机器性能及其之间的平衡
一个问题的解决方案有多种,什么方案是当前最佳的,也是需要考虑的问题。在寻求更佳方案的过程中,效率、性能、成本等参数之间常常相互掣肘,找到它们之间的平衡也是关键问题。计算思维教学内容应当包括理解基于“工程—设计—管理”框架下的模块化、结构化、自顶向下逐步求精、快速原型法、计算机仿真、软件复用、测试与调试等软件工程设计方法,以及统筹与折中、成本与效益等工程管理思想。[6]
例如,在机器人教学中采用不同传感器可以实现相同功能,这时候可以加入成本与效益的讨论。又如,人工智能教学中可以討论:关于机器学习的理论出现很早,但它为什么直到近几年才开始有突飞猛进的发展?这和机器学习基于概率的思路相关,概率的准确程度来自数据量,超大的数据量则需要更强的计算能力。因此,需要大量的标注数据,只有数据量和算力水平达到一定高度,机器学习才有可能得到快速发展。这些内容虽然未曾设于教材之中,但只要有意识地梳理与设计,会层出不穷地一一显现,培养学生计算思维、提升学生核心素养也就指日可待。
结束语
关于计算思维教学内容的探索,问题解决说是业界较为共性的认识,计算思维可能存在多种属性,但是问题解决是其必备的属性之一。[7]运用“了解工具—描述问题—分解问题—确定方法—验证结果—寻求更佳”的问题解决思路,对于中小学一线教师来说相对较为容易理解和方便实施。沿着这条路径,本地区教师总结了部分中小学信息技术课程中的计算思维教学内容,可以有方法地进行后续计算思维相关内容的挖掘,让计算思维融入教学能真正地落地生根。
参考文献:
[1][6]李艺,钟柏昌.信息技术课程核心素养体系设计问题讨论[J].电化教育研究,2016(04):5-10+61.
[2]王荣良.中小学计算思维教育实践[M].上海科技教育出版社,2019:98.
[3][5]李锋,赵健.高中信息技术课程标准修订:理念与内容[J].中国电化教育,2016(12):4-9.
[4]王荣良.计算思维的学科观[J].中国信息技术教育,2019(12):46-50.
[7]张立国,王国华.计算思维:信息技术学科核心素养培养的核心议题[J].电化教育研究,2018(05):115-121.