基于开源系统开展信息技术教育

2021-08-30 04:11王旭卿陈凯
中国信息技术教育 2021年10期
关键词:开源系统信息技术

王旭卿 陈凯

陈凯:看了本刊2021年第6期中的几位老师关于国产操作系统的对话,很有感触,甚至有一种埋藏已久的热情被再次点燃的感觉。对话中,梁森山老师提到,在高科技领域,我国存在着绕不开的痛点,既缺少芯片,又缺少操作系统。谢作如老师提到,应该在教育中推广开源操作系统的应用,这会在两方面为将来国产操作系统进入基础教育做好准备,一是让学生们养成开源系统下的用户习惯,为建立良好的软硬件生态环境做好准备,二是能让学生通过接触到更多操作系统底层知识,从而对探究计算机原理产生动力。那么,就有必要讨论一下,推动开源系统进入基础教育,理由是否充分?当下使用开源系统开展信息技术教育的进展又大致如何呢?

王旭卿:这里先大致将开源系统分为开源的硬件系统和开源的软件系统。在软件系统中进一步细分,可以包含开源的操作系统、数据库、程序开发语言、应用软件等,甚至可以更宽泛一些,像开源的各类文档、作品,都可以纳入到广义的开源系统的范畴中。总之,这些开源的资源在发布时,都根据具体情况设定了不同程度的开源许可协议,我认为,这在很大程度上提高了资源利用和建设的效率,同时,也加强了对核心技术的可控性,对于打破技术壁垒有着很重要的意义。

一方面,目前开源硬件的内容已经进入到《普通高中信息技术课程标准(2017年版)》,所以说,开源硬件的内容进入基础教育是一个进行时态的事情,相信中学信息技术教师对Arduino、掌控板、树莓派、虚谷号等开源硬件的名称,起码知晓其中一二,而且我注意到,已经有很多教师都开始尝试进行有关开源硬件的教学实践了。至于开源软件,概览教材中涉及的应用软件和系统软件,大部分是开源或免费的,尤其是Python编程语言环境,不仅其本身具有开源属性,而且在数据结构和人工智能教学模块中用到的Python库也大多是开源的。至于开源的操作系统,如Linux系统,据我了解,目前还很少有学校将其安装到机房中的每一台学生机上,在一般学校,使用Linux系统作为服务器的情况也并不是特别多,并且,一线教师中对Linux系统比较熟悉的也不多。所以我想,关于开源系统进基础教育的问题,如果从形式上要普遍推广开源操作系统的应用,要让学生在开源操作系统上进行信息技术的学习,就普通学校的状况而言,是需要非常大的努力才能达成目标的。

但另一方面,不能说因为困难就不作为。站在国家人才发展战略的视角看,培养学生技术自信、自主创新意识和能力,是越来越重要的事。在课程中使用国产的开源软硬件,这是树立学生民族自信心的途径之一,开源系统是学科育人价值培养的良好平台。关于开源系统进教育,是要讨论怎么做,而不是讨论是否做的问题。

陈凯:作为一线的信息技术教师,我觉得自己在这方面比较有发言权。一方面,学校计算机操作系统的架设是一项庞大烦琐的工作,也是一项牵扯到方方面面的基础设施建设工作,如无十分必要,一般不会去调整;另一方面,如今的学生作为数字原住民,对Windows、安卓、iOS这些图形界面操作系统的使用都已经十分熟悉了,甚至可以说到了人机一体的境界。而对于Linux或FreeBSD这样的开源操作系统,必须承认,至今为止,它们的图形界面的软件生态环境还是不太完备的,而这些系统的命令行界面的操作方式,和一般学生的操作习惯是相当不兼容的。但这里必须指出,一个开源的系统是由非常多的子系统组成的,集成了众多脑力劳动者的成果,就目前看来,使不同的软件或函数库能更便捷地在本地或者通过网络相互调用和实现数据传输,命令行界面的指令操作是效率比较高的方式。那么,當我们的美好理想因为现实情况遭遇困难和阻碍的时候,应该采用怎样的策略克服困难、取得进步?或者说,应该试着在哪方面去重点突破呢?

王旭卿:开源系统进中小学值得尝试,但毫无疑问会面临许多问题,其中有师资的问题,有学生认知基础的问题,有开源系统本身生态的问题,并且还要在完整的教育发展背景下思考社会的需求以及各方面的约束。我建议采取谨慎的态度,小步子向前迈进,在研究和推进过程中可以争取企业在设备和技术上的支持。在中小学,有能力、有兴趣的教师可以积极探索,给学生提供接触开源系统的机会,可以带领有潜力的学生开展深入的应用和研究。说到开源操作系统的用户习惯,谢作如老师在上一期对话中提到,希望鸿蒙在进入中小学时,能和安卓一样上手容易,无缝移植,这一点我也十分赞同。虽然说,对操作系统底层的了解,能够培养学生核心的、关键的学科知识,但这里的底层,并不是指在过程上要从完全基础的环境安装、系统配置开始学习,而是指要凸显计算机实现某个功能的核心思想方法。信息技术学科涵盖的范围太大,在面向全体学生进行教育时,需要在经典内容和时代发展要素之间取得平衡,在面向学有余力的学生时,可以从当前熟悉的环境出发,引导他们在深度和广度上展开探索。

选择哪一个系统用于信息技术教学,其实也不能仅考虑情感上或版权上的问题,还要考虑到这个系统是否有助于学科核心素养的培养。新的课程不再将信息技术教学内容绑定至某一具体的软件,或规定使用怎样的操作系统,如教师以Windows系统为基础安装软件来教授人工智能,或以Linux系统为基础安装软件来教授人工智能,这都是可以的。但考虑到这样一个学习项目,它需要从周围环境采集数据,然后利用人工智能库来对数据进行分析处理,最后将处理结果转化为某个外部的机械动作,那么,在Windows系统平台上实现整个系统就比Linux系统要困难,因为Linux系统中提供了更多种可开放使用的模块和脚本,可比较容易地实现网络通信、物联网通信、多用户远程登录等功能。对于学生来说,他们所面对的这样的开源系统,就不再是一个面向普通用户的系统了,而是一个可以自顶向下进行设计和开发、可以逐层分解成模块的具有很强定制、改造和扩展能力的系统。那么在项目学习中,和计算思维有关的系统化、模块化的思想,就自然而然地体现出来了。

中小学生学习开源系统可以有不同的切入角度,如可以面向真实问题和需求,去设计和制作某种人机交互装置,从信息系统的消费者转型为信息系统的设计者、开发者,在人——包括开发者和使用者、信息系统、信息社会多重互动的环境下理解当下的生存环境。在这个过程中,教师可以为学生提供封装程度不一的软硬件模块,让不同认知水平的学生体验不同的学习经历,获得不同的收获。需要注意的是,不要仅仅将思路自我设限在开源系统上,要从宏观整体上看待问题,在一个面向真实问题的任务实施过程中,要培养学生按需求评估、选择、测试、使用、评价软硬件的能力,无论是正版商业软件还是自由软件、免费软件,这些都可以是学习考察的对象。

陈凯:我觉得王老师您刚才提到的例子,实际上和学科核心素养的其他几个要素都有关系,如数字化学习、信息意识的培养等。在项目学习中,为了实现某个特定的任务,我们不能闭门造车,而是要先了解其他人已经做了什么,哪些是直接能调用的,哪些是需要改造的,怎么将已有的模块用到自己的项目中,怎样发布自己的成果等等,这和开源软硬件的开发理念是相符合的。与此同时,我们在开源的系统上教学,也是有意识地让学生们知道,他们将来不应该仅仅是某个工业和商业产品的消费者,还应该是推动社会发展的开发者和建设者。

王老师提到了面向真实问题的任务,这里就不得不提到一个问题,说到在项目学习中体验系统的开发,很多学校会开设诸如机器人、无人机这样一些看上去高大上的课程,但实际上,在这些机器人和无人机里调用某个人工智能的库,或者网络上已有的某个功能接口——事实上有很多开源的模块可供调用,学生们很快就能做出某种“智能”的设备了。也有很多公司看到了商机,直接就把各种函数库封装到硬件设备里,做成一个小盒子,教师和学生都能轻松调用,但函数库里到底做了什么,却不再去深究了,于是,开源系统之源,反而可能被忽视了。那么不妨问一下,学生在学习中,是不是满足于组装拼接就可以了?如果答案是否定的,那么就又带来了另一个问题,对于“盒子”的拆解应该达到怎样的程度才是合理的?毕竟,虽然我们知道“源”在那里,但以一般的学生的水平,要让他们在自身能力和装备还不齐全的情况下,在溯源的路径上采集知识财富,确实很有难度。

王旭卿:这个问题其实还是和基础的知识技能的教学有关,从信息技术学科本身来看,让学生理解核心原理是不能被忽略的事情,虽然基础性的知识学习肯定是比较枯燥的,并且也常常不能被整合到某个项目学习活动中去,但若没有对这些基础原理的理解和掌握,只满足于外在功能的调用和组装,是不能够培养出有深度思维能力的学生的。另外我也认为,要警惕泛项目学习化的倾向。我记得陈老师您说过,一个理论越是深入到底层,可能离教师初始设定的生活情境就越远。我认为,一个课程中可以设定几个项目活动,在活动过程中關联起知识,但这不是说每节课都要弄成项目活动,有很多知识的获得和技能的达成还是需要基础性的记忆和训练的。

陈老师您提到“小盒子”的问题,我是这样看的,对于小学和初中生来说,这种不透明的黑盒的存在,能激发学习兴趣、简化创造环境,便于对接整体系统功能,是有一定的存在必要的。当然,教师可以引导学生对黑盒内部的构造产生探索的欲望,或者稍稍打开盒子,看一下半透明的环境。有了这样的应用场景的支撑和行为习惯的培养,到了高中和大学,对进一步打开盒子、深入盒子内部进行探索就有了一定准备。这就是说,要在简单的学习和操作环境中让学生的关注有一个集中的聚焦点,接下来,就可以在此基础上,根据不同的侧重点进行迭代。从这个角度看,开源系统比商业化的封闭系统无疑具有更大的优势。刚才陈老师问到对盒子的拆解应该达到怎样的程度,我认为,只要牢牢把握住本学科中培养学生核心素养这个目标,同时兼顾学生的心理思维发展水平以及当下知识技能储备,就不会有太大偏差。例如,让学生们用盒子、拆盒子,拆出来后尽管很多地方看不懂,但教师可以从中选出少数基础性的组件,介绍它们在运行中的核心思想,这样也就可以了。当然,具体怎么做,做到什么程度,无疑需要一线教师去探索、实践、反思和完善。

陈凯:王老师提到了一个非常好的词语“迭代”,这给了我一个启发,要让学生多了解系统底层知识,并不是说教学的过程一定是从底层开始的。这就好像我们在绘制分形的科赫曲线时,先简单画一个三角形,然后再在这个三角形的每条边上画出小三角形,使之成为一个六芒星,然后不停地迭代,最终呈现出雪花的图样。在这个过程中,可以说是先有了对三角形的认知,然后再深入到每一个线段变化的更“底层”,去发现每个线段上那些小三角形的存在。假设我们要在树莓派或虚谷号的Linux系统上实现某个图像识别功能,一种方法是直接调用现成的函数库,另一种方法是自己写一个机器学习算法。从学习人工智能的角度看,这两种实现方式都是有价值的,前者是了解一个系统的全貌,而后者则在更底层体验机器学习的运作方式。之所以说“更底层”而不是直接说“底层”,是因为我们知道这个机器学习算法本身也是建立在更底层的学科知识基础上的,如很多机器学习算法需要用到数学上的工具,在信息技术教学中,我们更多的是把那些数学工具当作黑盒子来使用。

但我总还是有这样的希望,如果学生真的能从底层开始,亲自经历一层一层搭积木直到实现完整的顶层——如某个机器学习算法的功能模块——的过程,这将会是十分美好的图景,但在有限的教学时间内,实现起来是颇有困难的。

王旭卿:以中学生的水平,理解某些算法,如机器学习中的一些算法,确实是有比较大的困难。我从两个方面来看这个问题:一方面,这也恰恰说明,算法与程序设计的基础教学是非常重要的;另一方面,这让我想到,现有的功能模块,正是因为其完整性,才造成了其实现过程的复杂性,因为这些功能模块并不是专为教育而开发的。当前,已经有不少教师都在思考,如何尽可能以中学生的知识水平与思维方式,来教授那些较为艰深的算法。我注意到《中国信息技术教育》杂志已经连续很多期刊登了北京大学李晓明教授和南京大学陈道蓄教授的关于算法的文章,可以认真消化一下。高校教授的很多设想,非常需要中学一线教师在反复的具体教学实践中,使之逐渐成为有效的、成系统的教学活动方案,在实践中涌现出的新的想法可以再一次进行反馈。如果能够将那些算法的精髓提炼出来,针对基础教育的目标,封装成虽然功能完备性有限但足以说明运行原理的模块,然后将这些面向教育应用的功能模块以开源的形式发布,那将是很有意义的工作。在这里,我就鼓励有兴趣的老师们试一试,陈老师觉得如何?

陈凯:这真是一个极有挑战性的任务啊!

王旭卿:我们的世界在相互竞争和协作中发展,许多工作不是依靠一个人或几个人的力量能够完成的。陈老师不妨说说看,对于开源系统进入基础的信息技术教育,在具体的实施过程方面有哪些想法?或者说,有哪些任务是可以大家一起来协作进行的?

陈凯:我觉得有以下一些工作等待完成,首先,从基础设施的建设来看,可以针对新的课程,整理出一份用于日常信息技术教学的开源软、硬件工具的清单,然后试着架设开源的服务器系统,学生只要远程登录到这个服务器上,就可以将其中的软件和工具用于学习了。其次,可以基于Linux内核,为信息技术教学,或专为人工智能教学,或者电子电路乃至集成电路设计的教学的目的制订一个特别的Linux开发板。据我所知,基于Linux内核的开发板类型很多,有专用于网络路由器的,有面向家庭娱乐的,有用于幼儿教育的,但专门用于信息技术教学的开发板不多,面向人工智能教学或电子电路方面教学的就更少了。我想,如果在获得某个开源硬件的时候,系统中已经配置好了一些主要的机器学习或神经网络方面的库,那么就可以大大减轻教师和学生在安装和配置上的负担。但这个工作需要有人工智能相关厂商的技术支持,靠我个人是难以做到的。

另外,我也会重点关注,怎么将开源思想、开源工具和日常的信息技术教学融合起来。例如,在讲到位图时,一般都是用BMP格式的图像作为例子,但其实可以使用开源的XPixMap图像格式,这种格式的图像文件的优点是,用记事本就可以直接看到图像格式文件中的各类标记,以及怎样用不同的符号来代表点阵上的颜色。又如,在让学生讨论知识产权问题的时候,可以引导他们多关注创作共用版权协议,鼓励学生们将自己创作的作品,以不同类型的创作共用版权协议发布到网络上。我有一个小小的愿望,希望每一届学生都能在项目学习活动中留下一些以开源协议发布的小作品,然后,下一届学生就可以基于这些作品,做进一步的改造和扩充,这样,一方面是把开源的理念真正落实到行动中,另一方面,也能让学生体验到在数码时代所特有的跨时间、跨空间的协作创造方式。

王旭卿:可以看出,陈老师想要研究的内容很多。刚才您所说的重点在于开源的软硬件基础设施的假设和开源理念的建立,我想,其实还有更多值得研究的方向。我个人对开源硬件的关注比较多,在开源硬件的学习中,我们可能会从简单的积木块式的编程入手,让学生先熟悉积木块的流程和硬件设备的关系,然后一步一步增加流程的复杂性,最后,为了构建复杂的任务,再转向用命令行操作和全程序代码来实现任务。这个过程,实际是考虑到人在把握一项新的知识和技能的时候,有一个从直观形象,逐渐转向抽象化、符号化的过程。那么,对于像Linux这样的开源操作系统的学習,其实也可以借鉴类似的路径。首先是了解图形化界面下能够做些什么;然后是揭示在图形化的操作过程中,幕后的指令究竟做了一些什么,其中,还可以研究图形界面对用户的显现和后台配置文件之间的关系是怎样的;最后,引导学生处于设计者、开发者的角度,思考普通用户的需求和行为习惯,研究应该如何借助指令和代码,结合已有的工具,解决一个真实情境中的问题。

陈凯:王老师所说的,让我联想到教学中Python的登场和VB程序设计环境的逐渐隐退。必须说,VB是开发图形界面的一个很方便的工具,开发者只要用鼠标拖拽就可以对不同控件进行布局,通过填表格的方式就可以轻松定义空间的属性和行为,但对于Python,或者是Linux系统下的其他脚本语言来说,要实现图形界面的程序代码就要复杂许多。我总是在想,如果在Linux系统下,有一个类似于VB那样容易操作的图形界面设计工具就好了——虽然VB作为一个程序设计语言,在许多地方都存在不足,但换一个角度看问题,使用VB这样的工具,与其说是在设计图形界面,倒不如说是在一个高度成熟的图形环境中实施定制和配置工作。相对而言,在Linux系统中,是能够用比较方便的形式,将代码指令和最终呈现给用户的图形界面上的元素直接对应起来的,这就能让学生体验到由抽象符号构建虚拟的数码物的过程,对于学生理解计算机学科中的思想方法,比如数据和计算之间的关系、数据和显现之间的关系等,是十分有益的。

对于为什么一个设计者不能沉溺于图形界面开发的舒适区,这里我想到一个例子,就是在开发集成电路时,必须使用硬件描述语言,然后由硬件描述语言生成原理图并进行功能仿真。那么为什么不直接用拖一拖、画一画的方式来设计集成电路的原理图呢?因为对于一个太过于庞大的系统,人的头脑是无法以图形化的方式来描绘、跟踪不同模块之间的关系和相互行为的,所以,集成电路EDA软件中往往需要程序代码来支持进行设计。所以,当我们指导学生在Linux服务器上写出一个XML文档然后观察文档数据在浏览器中的表现,或者用Logo语言画出某个有规律的图形,或者用pygame库模拟出一个动画效果的时候,其实就已经在思维模式上,为学生们将来构建比较大型、复杂的系统做一定的铺垫了。

王旭卿:从我们刚才的讨论中,其实可以归纳出两种不同的思维过程,一是由直观的现象到抽象的符号化、形式化、自动化,学生们应该有逐步熟悉、了解的过程,二是在熟悉和了解的基础上,还应该有主动进行构建、模拟和仿真的过程。通过这两个过程,将某个情境中问题解决过程中的“数据—计算—显现”的对应关系呈现出来。我忽然发现,这与新教材中“数据与计算”模块中的内容有比较多的结合点,可以作为项目学习活动的设计思路。

陈凯:这还真是一个不错的研究方向。我们试图引导学生处于设计者、开发者的角度,思考普通用户的需求和行为习惯,研究应该如何借助指令和代码,结合已有的工具,解决一个真实情境中的问题,这样的方向是确定的。关于如何结合“数据与计算”模块的教学内容,借助开源系统将“数据—计算—显现”的关系呈现出来,这是一个有价值的研究方向。

Linux等开源操作系统既是一个高效的开发平台,又是一个完整的研究对象,但和开源硬件不同的是,它们大多不是为基础教育的教学目标量身定制的,将开源系统用于基础的信息技术教育,探索期和磨合期都会比较长。如王老师前面所说,让学生在开源操作系统上进行信息技术的学习,就一般学校的状况而言,是需要非常大的努力才能达成目标的。虽然道路是漫长的,但我们也不应畏惧艰难,要坚定自己的前行目标。

王旭卿:是的,在当前中国高科技的发展因为缺少自主产权的芯片和操作系统而受到制约的现实情况下,我们前行的步子必须更加快一点才行。

王旭卿

教育学博士。现为上海师范大学信息与机电工程学院计算机系副教授,教育技术专业硕士生导师。担任上海科技教育出版社出版的2019版《普通高中信息技术必修2:信息系统与社会》教材的分册主编和主要编写人员。2016-2020年,承担上海市教委“立德树人”信息科技教育基地项目中多个子课题研究。近年来重点关注创意编程+、计算思维、创客教育和STEAM教育等相关主题的教学与研究。已发表核心期刊论文20余篇,主编、参编和翻译著作、教材10余本。

陈 凯

上海市位育中学信息技术高级教师,上海市徐汇区学科带头人,当前研究重点为信息技术学科项目学习活动方案设计、计算思维的可视化与评价、开源软件系统在基础教育中的应用等,发表多篇论文,参编多册信息技术教材。

猜你喜欢
开源系统信息技术
Smartflower POP 一体式光伏系统
幼儿园教学活动中信息技术的应用思考
巧学信息技术课程
浅谈初中信息技术项目式学习教改实践
校园武术“学、练、赛”一体化实践探索
一种无人机缓冲系统
巧用“信息技术”,提高课堂效率
品“助读系统”之妙
五毛钱能买多少头牛
2019(第十四届)开源中国开源世界