人工智能教学融入高中信息技术课程基础模块的几个策略
2020-08-24陈凯
陈凯
在高中信息技术课程标准中,“人工智能初步”属于选择性必修中的一项模块,此模块的总体教学目标的定位,不仅有“描述典型人工智能算法基本过程”,也有“亲历设计与实现简单智能系统的基本过程”。整体考察信息技术教学内容,发现必修模块中诸多基础知识和技能与“人工智能初步”教学模块的内容有所关联,如必修模块中的“信息系统”和人工智能中的智能系统的实现有关;“数据处理与分析”与人工智能中机器学习训练有关;至于编程和算法,无疑更是与机器学习算法有着密切的联系。对于将要开设选择性必修“人工智能初步”课程的教师来说,研究如何将人工智能的知识概念以及思想方法融入信息技术课程必修部分较为基础的教学内容中,是十分合理的需求。
策略一:建立贯穿始终的任务驱动路径
对于已经决定选择“人工智能初步”模块作为教学内容的教师来说,可以研究如何充分地围绕必修模块中教学内容,为将来的人工智能教学做好知识概念上的铺垫。教师可以使用思维导图或知识图谱作为工具,对知识、技能相互的关联进行梳理,然后规划出合理的任务驱动路径。
如以“K均值聚类算法”为中心绘制思维导图,如图1,梳理出在日常信息技术教学基础模块的知识点与某种机器学习算法的关系,然后根据这些关系合理规划不同阶段的教学重点。
根据图1,可以试着规划出一条有着核心任务,且又贯彻整个学习过程的任务驱动路径,如图2。
路径图2由左到右提示了概念和技能出现在教学过程中可能的进度,另外,围绕着核心任务,技能与概念两两呼应,恰好呈现出对称的结构。当然,在实际教学中,不一定要求有如此完美的对称关系,或者,也可以围绕其他任务来规划路径,也可以在路径中加入更多内容(如信息系统、开源硬件等)。但无论怎样,此图体现出可以对知识图谱进行分析,从而规划出在信息技术教学基础模块中,可融合人工智能教学驱动任务的知识技能提升路径。毫无疑问,必然会有一些人工智能的知识技能不处于这条进阶路径上,如若课时或教学资源有限,则可相对简单地对其大致工作原理作讲解或展示。
策略二:无遮蔽地展现某一特定人工智能算法实现过程
无遮蔽地展现实现过程是指,不仅知道人工智能实现过程中的基本原理,也要能够明白实现过程中涉及的数学公式和程序代码的作用。因为教学时间或学生水平的限制,显然不可能对许多种不同的人工智能算法实现过程都做到无遮蔽展现,但仍然可以考虑至少选取某一特定的人工智能算法作为无遮蔽展现计算过程的重点讲解对象。根据心理学“激勵—反馈”理论,学习者在对学习内容有真正的了解后,就会对自己的学习动力产生强化作用,促进其能以更积极的态度投入到新的学习中,从而提高学习效率。另外,若能无遮蔽地展现某种人工智能算法实现过程,那么教师也能比较方便地组织实践活动,对学生学习情况进行评价。同时,学生也可以借助这些比较简单的可以无遮蔽展现过程的算法的学习过程,体验比较普遍的计算思维的形成过程和计算机科学方法的应用,从而为将来更艰深的算法学习打下基础。
根据一项针对已经开展过人工智能教学的教师的小范围调查,在诸多人工智能算法中,教师们认为较能适应高中阶段学生水平,且能在比较少的课时(调查以8课时为教学时间限制)中,无遮蔽地展现实现过程的算法有:广度优先搜索算法、深度优先搜索算法、贝叶斯分类算法、决策树分类算法、K近邻算法等,这些算法具有涉及的数学原理相对浅显、算法的实现过程相对比较简单、算法过程细节中的每一步都能进行跟踪等特点。而那些教师们认为不太能够无遮蔽地展现完整过程的算法,要么是计算模型构建复杂,要么是涉及比较艰深的数学知识,或者是很难跟踪计算过程中的具体步骤细节。对于那些暂时无法做到无遮蔽展现过程的算法,教师在搁置问题的同时,应为算法中涉及的计算机科学以及数学上的工具或原理,给出有指向性的进阶路径,鼓励学生自主探究学习。
策略三:创设突出机器学习思维的简单任务
在高中阶段,是否应该将无遮蔽地展现机器学习的过程,落实在具体的程序代码上,目前还有很大的争论。因为教师和学生会面临一个非常实际的问题,那就是,无论再简单的人工智能算法,其代码量还是非常大的。但有一个办法,可以消解教学中的负担,按照自顶向下,逐段分解的办法,把特定的人工智能算法的某些部分,分配到前期基础模块算法学习的各个部分中去,如此,当整体的人工智能算法出现时,再按机器学习的思维,对前期已经讲解过的各个模块重新进行总装。
还可以从简化机器学习任务及精炼算法过程方面来进行考虑。下面列举一些已有过实践且有初步成效的方法,并不全面,权当抛砖引玉。
(1)简化数据输入和输出形式。许多代码案例都是从数据集、电子表格或数据库中获取供机器训练的大量数据,这就增加了实施的复杂性,可以考虑预先将数据以列表的形式准备好,供学生复制粘贴到代码中,这样就大大减少了程序代码的复杂性。在运算结果的输出环节,既可以让学生调用由教师预先编写好图表显示的函数,也可以直接以字符形式输出,复制粘贴到电子表格中,再以图表形式展现,也可降低代码量。当然,如果在课程计划中,原本就打算将数据输入和输出展示这部分内容,作为整个人工智能学习驱动任务的一部分,就另当别论了。
(2)简化数据结构。在许多人工智能算法的实施场景中,需要处理的数据是二维形式存储的,但有许多算法,其最关键的解决问题的思维方法,即便对一维的数据也是同样有效的,如一般会用点乘运算来提取二维图像特征,但实际上,也可以用点乘运算提取一维数据(比如某个波形)的特征。在算法实现上,对一维数据进行点乘运算无疑要容易得多,效果也很突出,甚至用电子表格就可以实现了。如用多个一维的列表来代替矩阵的使用,从而使得学习曲线变得平缓。教师应该提醒学生,这只是为了聚焦人工智能实现算法的关键思想,而暂且搁置了对数据结构的优化。
(3)降低算法实现的普遍性。一些算法之所以复杂,是因为它要考虑多种不同的用户需求,若降低算法实现的普遍性,便可大幅度减少代码量,也可突出算法中体现智能实现的关键思维方法。如以K均值聚类为例,它要考虑用户可能将数据按特征分成多少类;它还要考虑初始多个分类中心点的选取。若不考虑这些普遍性的要求,“粗暴”地设置初始数据在一条直线上,K值为2,且初始中心点位于数轴两端,那么程序代码就可以简单到仅有20行左右。
以上是围绕“人工智能初步”教学目标的定位,讨论人工智能教学融入高中信息技术课程基础模块的几种不同的策略,可供有需要的教师参考,并希望能在更多的教学实践后得到反馈和持续改进。
作者单位:上海市位育中学