新文科背景下基于Blockly的机器学习实验教学平台设计与实现

作者: 张自然 石义金

新文科背景下基于Blockly的机器学习实验教学平台设计与实现0

摘  要:在新文科建设背景下,针对文科学生编程经验少、机器学习实验上手难的问题,设计并实现一种基于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]。

经典小说推荐

杂志订阅