张自然 石义金
摘 要:在新文科建设背景下,针对文科学生编程经验少、机器学习实验上手难的问题,设计并实现一种基于Blockly编程的机器学习实验教学平台。该实验平台由教师管理端、学生实验端、系统管理端和公共模块四部分构成,采用B/S架构,由计算机编程语言Python和可视化编程工具Blockly实现。并以机器学习中的“自然语言处理”为实验教学案例,全面呈现该实验教学平台与实验教学任务结合的具体应用实践。
关键词:实验教学平台;Blockly;机器学习;自然语言处理;新文科
中图分类号:G642 文献标志码:A 文章编号:2096-000X(2024)04-0025-05
Abstract: Under the background of New liberal arts construction, aiming at the problem that the liberal arts students have little programming experience and have difficulty in machine learning experiment, this paper designs and realizes a machine learning experiment teaching platform based on Blockly programming. The platform is composed of four parts: teacher management, student experiment, system management and public module. It adopts B/S architecture and is implemented by Python and Blockly. The platform takes natural language processing as the first experiment teaching case, and has successfully completed the experiment teaching task through online teaching practice.
Keywords: experimental teaching platform; Blockly; machine learning; natural language processing; new liberal arts
2019年4月,教育部、科技部等13個部门联合启动了“六卓越一拔尖”计划2.0,全力推进“新工科、新医科、新农科、新文科”建设。其中“新文科建设”是要把传统文科与现代信息技术交叉融合,培养新时代的哲学社会科学家[1-2]。
机器学习作为现代信息技术的重要组成部分,其本身就是一门多领域交叉学科,同时又是一门应用性极强的学科,有效开展机器学习实验教学,提升学生的计算思维、创新能力、信息素养,将有效促进新文科的建设[3]。传统的机器学习实验教学对学生编程基础的要求较高,不适合在缺少程序设计经验的传统文科学生中开展[4]。而且传统机器学习教学模式对实验环境的要求较高,对于不熟悉计算机相关知识的文科学生而言自主搭建实验环境也是困难重重。
Google Blockly(以下简称Blockly)是Google于2012年6月发布的完全可视化的开源的图形化编程语言,它由一块块图形对象组成,每个图形对象都是代码块。使用者通过拖拽拼图的方式,将它们拼接起来,构建出一个程序,不需要任何的代码编写。因此,借助Blockly开展编程教学,学生可以更容易地接受理解编程,实现创意。并且,Blockly代码还支持转换成JavaScript、Dart、Python或XML 代码。在机器学习中,Python语言的使用最为广泛。
因而,本文基于Blockly设计并实现了机器学习实验教学平台,学生可通过网络提供校内外随时随地访问与使用。该平台采用B/S架构,由计算机编程语言Python和可视化编程工具Blockly实现。通过该机器学习实验教学平台,学生只需打开浏览器,在平台网页上拖动教师为实验内容特别设计的可视化图形就可以执行实验任务。
一 实验教学平台总设计方案
根据教学要求,本实验平台主要由4部分组成,分别是教师管理端、学生实验端、系统管理端和公共模块,如图1所示。
(一) 教师管理端
教师管理端由实验教师使用,该端包含了实验设计模块、实验代码管理模块和实验运行统计分析模块。
在实验设计模块,实验教师根据机器学习课程的教学大纲,为各个知识点设计实验项目,可以是层次一类的“演示型”实验和“验证型”实验;也可以是层次二类的“应用型”实验、“综合型”实验、“设计型”实验;还可以是层次三类的“研究型”实验和“创新型”实验[5]。教师在该模块完成实验名称、实验目的、实验内容和实验环境等基础实验项目信息的填写。
在实验代码管理模块,实验教师根据实验项目内容,通过图形化开发工具Blockly Developer Tools编写实验代码并将实验代码转换为图形块(图2)。经实验教师检查后即可发布该实验项目。
在实验运行统计分析模块,实验教师可以查看学生的实验记录,通过对实验记录的深入分析,可以掌握学生的实验时间,学生在实验过程中遇到的难点等信息。
(二) 学生实验端
学生实验端由学生使用,包含了实验浏览模块、实验运行模块、实验运行记录模块和实验运行分析模块。
首先进入实验浏览模块,学生在该界面浏览教师发布的实验项目,了解实验内容及相关要求。在自主学习时,学生也可以浏览众多项目,根据自身兴趣、意愿选择实验项目。
在明确实验要求后,学生进入实验运行模块,根据所选实验项目要求,在浏览器上拖拽Blockly图形代码块,开展实验任务。
在实验运行记录模块,学生可以查询自己的过往实验记录,掌握自己的实验学习进度。
在实验运行分析模块,学生可以分析自己运行的实验过程,复盘和寻找实验过程中的失误,加深对实验的理解。
(三) 系统管理端
系统管理端由系统管理员使用,其中包括系统开放管理模块、系统用户管理模块、系统参数管理模块和系统权限管理模块。系统管理员在该端完成系统的管理与维护,如系统的开放、系统用户的管理、系统相关参数的配置管理和系统权限的配置等。
(四) 公共模块
公共模块是系统开放公共使用的功能模块,包含了用户登录模块、用户登录日志模块和用户操作日志模块。用户登录模块用于教师、学生及系统管理员登录系统;用户登录日志模块用于记录用户的登录信息;用户操作日志模块用于记录用户的操作行为。
二 实验教学平台具体功能实现
传统的实验教学平台多使用C/S架构进行设计和开发,该模式的扩展性和分布能力差,需要学生安装客户端,并且对学生电脑的硬件设备有一定要求。为了降低学生的使用门槛,本实验教学平台采用了B/S架构,利用网络资源便捷化开发维护,实现“零客户端”,学生只需通过浏览器即可访问[6-7]。
为了减少开发成本,本平台的所有功能都基于开源项目实现:浏览器端采用了开源的模块化前端UI框架Layui和Google发布的可视化编程工具Blockly;服务器端采用了Python编写的轻量级Web应用程序框架Flask框架来实现Web交互。浏览器端的核心功能为可视化编程功能,服务器端核心的功能模块为机器学习代码运行功能。
(一) 可视化编程功能实现
可视化编程功能基于Blockly Demo中的Code Editor实现。可视化编程功能是将由学生拖拽生成的图形块组合转化为可以运行的Python代码交付给服务器端运行。Code Editor的界面如图3所示。
通过对Code Editor进行简单改造,即更换代码块为实验所需的代码块,去掉Tab标签中的JavaScript、PHP、Lua、dart和XML,并把“Python”标签改成“源代码”,实现本实验平台的可视化编程,实现效果如图4所示。
(二) 机器学习代码运行功能实现
机器学习代码运行功能是接收学生通过拖拽图形块生成的代码,在服务器端运行,反馈运行结果给学生,相当于Python在线编译器。在线编译有多种实现方式,本文采用了最简单的实现方式,将代码提交到服务器,然后保存为临时文件并运行,其基本流程和具体核心代码实现分别如图5和如图6所示。
(三) 实验教学平台实验流程
该实验教学平台开展实验教学流程如图7所示。
实验教学平台的实验流程如下。
1)登录平台。实验教师通过浏览器登录实验教学平台。
2)实验设计。实验教师按照人才培养方案,结合课程进度设计实验教学内容,明确实验目的、实验内容、实验步骤。
3)实验编码。实验教师将机器学习的代码,按照Blockly的转换工具规范,将代码转换成图形块形式。
4)实验开放。实验教师按照实验项目需要,告知系统管理员提供实验项目所需代码库文件,检查无误后,可将该机器学习实验對外开放。
5)登录平台。学生通过浏览器登录实验教学平台。
6)浏览实验。学生可以在实验教学平台上浏览实验教师开放的机器学习实验。
7)选择实验。学生根据实验教学要求或个人意愿选择实验教学平台上开放的实验。
8)实验运行。学生根据实验要求,拖拽实验教师设计出的Blockly图形块,即可完成机器学习编程。提交运行后,可以查看运行结果,以及历史编程记录。
9)实验结果分析。实验教师在实验后查看学生的实验记录,分析实验结果。如分析学生经常出现的错误点,完成实验需要的时间、使用到的代码数量等。
三 实验教学案例:自然语言处理
许多自然语言处理的任务都涉及到机器学习的相关知识,本文以自然语言处理实验项目为实验教学案例,分别从实验内容设计、实验代码编码、实验运行过程、实验运行分析和实验应用统计五个方面,介绍本实验教学平台的应用实践。
(一) 实验内容设计
自然语言处理实验项目设计了英文自然语言处理、中文自然语言处理、TF-IDF计算及应用三个子实验,子实验目的如下。
1)英文自然语言处理:本实验对课堂上讲解的英文自然语言处理的知识进行巩固,进一步掌握基于Python及NLTK的英文自然语言处理流程。
2)中文自然语言处理:本实验对课堂上讲解的中文自然语言处理的知识进行巩固,进一步掌握基于Python及jieba的中文自然语言处理流程,深刻理解中英文分词处理的差异性。
3)TF-IDF计算及应用:TF-IDF(term frequency-inverse document frequency,词频-逆文档频率)是一种用于信息检索与文本挖掘的常用加权技术[8]。本实验对课堂上讲解的TF-IDF知识进行巩固,掌握在分词基础上进一步计算TF-IDF和文本相似度的流程。
每个子实验又分相遇、相识、相知三个阶段[9]。
1)相遇(流程初识):本阶段的目的是让学生熟悉本实验系统的使用并初步接触自然语言处理任务。实验教师将自然语言处理中的各个核心代码封装成模块,打乱次序放置在模块区。学生认真阅读各个模块的文本提示,拖动模块至代码组合区,然后点击运行。若程序流程顺序正确,就会有正确的结果反馈;若代码错误,平台就会报错,需要学生返回修改。子实验“TF-IDF计算及应用”相遇实验界面如图8所示。
2)相识(代码理解):本阶段的目的是让学生进一步掌握自然语言处理的实验内容。实验教师将自然语言处理中的各个核心代码进行模块封装,但不设置文本提示,打乱次序放置在模块区。学生认真阅读代码,将代码块按逻辑拖动至代码组合区,点击运行。若程序流程正确,就会有正确的结果反馈;若错误,平台就会报错,需要学生返回修改。子实验“TF-IDF计算及应用”相识实验界面如图9所示。
3)相知(灵活应用):本阶段的目的是让学生熟练掌握自然语言处理编程任务,能独立完成自然语言处理任务的代码编写。实验教师删除原代码中的关键代码片段或者关键函数,学生依照实验任务将代码补充完整后运行代码。若程序流程顺序正确,就会有正确的结果反馈;若错误,平台就会报错,需要学生返回修改。子实验“TF-IDF计算及应用”相知实验界面如图10所示。
学生也可以通过下拉列表切换到相识实验界面,如图9所示;或切换到相知实验界面,如图10所示;相识实验界面几乎与相遇实验界面相似,只是代码块有所区别。相知实验界面在实验代码部分没有了代码块的辅助,需要学生自行编写实验代码。
(二) 实验代码编码
实验教师根据各个实验的要求,借助Blockly Developer Tools完成实验编码的编写。其中,子实验“TF-IDF计算及应用”相遇与相识的编码。如“导入程序需要的工具包”任务所对应的代码块为“导入jieba工具包”“导入文本相似度库”,其对应的代码分别为“import jieba”“from gensim import corpora,models,similarities”。
(三) 实验运行过程
学生登录实验教学平台,选择“自然语言处理”实验项目,再选择子实验“TF-IDF计算及应用”,即可进入如图8所示相遇实验界面。实验界面分为左、中、右三部分,分别是“实验说明”“实验代码”“实验结果”。
1)实验说明:学生可以浏览该实验的“实验目的”“实验要求”“实验方案”等信息。
2)实验代码:该区域提供了代码块删除按钮、代码块运行按钮、代码块缩放按钮。在该区域,学生通过拖拽图形块来生成实验代码,并可以在代码块与源代码模式间切换。此外,学生还可以右键代码块完成对单个代码块的复制、注释、折叠等操作。
3)实验结果部分,此区域将显示学生实验代码的运行结果。
(四) 实验运行分析
在开展实验后,学生可以浏览自己实验代码的历史运行记录,教师也可以浏览学生的历史运行记录。如图11所示,在记录中可以查看学生的实验项目名称、实验时间、实验代碼、实验代码行数和实验代码运行状态。
学生可以针对自己的实验运行记录进行自我总结,完成实验报告;实验教师可以使用图形分析报表了解学生整体的实验情况。
(五) 实验应用统计
自然语言处理实验项目于2019年12月中旬对外开放,由于该实验项目基于线上开展,在2020年突发的新型冠状病毒感染疫情情况下,并未对实验教学造成影响,顺利完成了实验教学任务。本实验项目还通过校际交流,提供给兄弟院校共享使用。图12为第三方网站统计工具对该“自然语言处理”实验项目的访问统计结果。
四 结束语
在新文科背景下,基于Blockly的机器学习实验教学平台以画面活泼、生动有趣的积木搭建式编程为主要形式,有效帮助了缺乏程序设计经验的学生开展机器学习实验。在B/S架构下,学生既可以在课堂上在实验教师的指导下完成实验,也可以不限时间不限地点进行自主实验。此外,以机器学习中的“自然语言处理”实验教学为实例,平台展示了机器学习的流程及核心技术要点,充分发挥了Blockly积木编程简单易用、操作门槛低、可扩展性强等特点,既提高了学生的学习热情和自主学习积极性,又为学生的进一步探索营造了良好氛围,为今后参加学科竞赛和创新比赛打下基础,培养了学生的实践能力和创新意识。
参考文献:
[1] 韩作生,林培光.新文科背景下面向财经类高校的大学计算机课程建设[J].中国大学教学,2021(1):69-74.
[2] 严程.数字时代的新文科通识教育[N].中国社会科学报,2020-07-06(003).
[3] 陈跃红.新文科:智能时代的人文处境与历史机遇[J].探索与争鸣,2020(1):11-13.
[4] 唐大仕.大学文科“程序设计”课程的思考与实践[J].计算机教育,2005(7):32-33.
[5] 崔敏.自主创新型实验教学模式的探索与实践[J].中国科教创新导刊,2010(2):8-9.
[6] 赵红,李著成.基于B/S的网络虚拟实验室系统构建与实现[J].实验技术与管理,2011,28(9):86-88.
[7] 陆敏峰,李晓林,高惠玲,等.基于B/S结构的高等学校实验室信息统计系统的设计与实现[J].实验技术与管理,2011,28(11):304-307.
[8] 何晓静.对TF-IDF算法的改进及实验研究[D].长春:吉林大学,2017.
[9] 宋晏,姚琳,张敏,等.结合FunCode游戏编程平台的计算思维培养模式研究——以Java语言教学实践为例[J].计算机教育,2018(8):25-28.
基金项目:湖北高校省级教学研究项目“电子商务虚拟仿真实验教学理论与实践研究”(2017098);2019年湖北省高校实验室实验教学研究项目“基于大数据辅助的高校实验室资金建设项目立项排序方法优化研究”(201982);华中师范大学2021年校级实验室研究项目“新文科背景下信息资源管理专业综合实验课程思政教学改革研究”(2021sys07)
第一作者简介:张自然(1977-),女,汉族,河南开封人,博士,副教授,硕士研究生导师。研究方向为信息组织与检索。