论文部分内容阅读
【摘要】STEM是科学、技术、工程、数学四门学科英文首字母的缩写,STEM课程往往涉及的知识点多,知识面广,需要多学科知识的综合运用,因此,STEM课程的开展并不容易。本文将根据作者在STEM课程开发与实施中的实践经验,浅析如何有针对性地通过构建网络学习平台,为学生构建网络学习环境,运用现代化、信息化的手段辅助教师更高效地开展STEM课程。
【关键词】STEM;网络学习平台;Python;JupyterHub; Moodle
【中图分类号】G632.4 【文献标识码】A
【文章编号】1992-7711(2020)24-043-02
一、平台应用的背景
2019年,我校承担的十三五广州市教育科学规划课题《基于OpenMV的AI特色STEM课程开发与实施研究》顺利开题,并马上投入到课题的研究工作中。课题中所使用的OpenMV是一套开源的、基于Python的嵌入式计算机视觉架构,它最大的特色是在主板上提供了一个摄像头,并封装了大量计算机视觉算法,学生只需要用Python语言编程调用视觉库函数,再结合一些硬件便能开发出诸如追球小车、二维码识别器,甚至物品分拣机器人等具有人工智能特色的创意小制作。这些小制作对中学生而言是相当有趣且极具吸引力的,以至于我们在课堂上展示这些作品时,学生都兴奋不已,无不踊跃报名参加这门校本课程。
最初,我们的设想是开发一门有趣的AI特色STEM课程,让学生在“做中学”、“玩中学”,学生“玩着玩着”就能学会Python、人工智能、OpenMV……但是,随着课程实施的不断深入,这门课程却变得越来越“看着好玩,做起好难”。我们分析主要存在两大主因:
1.虽然Python语言被誉为一门易学的语言,但是语言的学习毕竟有难度,学生普遍觉得Python“不好玩”。但是,Python是基础,程序设计贯穿整个课程,Python没学好,后面 “好玩”的人工智能、OpenMV根本“玩不动”。
2.课程涉及知识点多,知识面广,然而,校本课程每周只有一个课时,学生对知识的遗忘率高,教师每节课都必须花费大量时间用于知识温故,课堂效率低下。
为此,我们发挥信息技术教师的优势,有针对性地为本STEM校本课程构建了以JupyterHub多用户在线Python开发环境和Moodle课程管理系统为基础的网络学习平台,运用现代化、信息化手段解决了上述两大难道,为课题的研究铺平了技术上的道路。
二、操作系统的选择与部署
由于学校经费的限制,学习平台以免费的Proxmox VE(下称PVE)和Ubuntu系统为基础进行构建。PVE的作用有点类似于VMware的ESXi,它是一个开源的企业级虚拟化平台,与ESXi相比,PVE是全免费的,使用也非常方便,可以用web管理虚拟机。PVE的部署更是采用了“傻瓜式”的安装方法,只需在官网(www.proxmox.com)下载ISO镜像文件,刻录成光盘后在服务器上按提示进行安装,如果没有特殊要求,一直 “下一步”直至完成即可。
操作系统我们选用著名的Ubuntu,因为是用作服务器的,所以选择它的Server版本。有了PVE虚拟化平台和Ubuntu操作系统,接着需要在PVE上部署Ubuntu,首先网页登录PVE,通过web上传Ubuntu镜像文件到PVE服务器,然后点击“创建虚拟机”按钮创建台虚拟机,按提示配置CPU、内存、硬盘、网络等虚拟机硬件,接着启动虚拟机,安装Ubuntu,因为Ubuntu是非常普及的Linux发行版,所以,它的安装方法不再过多赘述。另外,因为我们的网络学习平台使用了2套开源软件系统,为了方便管理,我们在PVE上分别创建2台Ubuntu虚拟机,部署完成效果如图一。
三、学习平台的构建和应用
1.JupyterHub多用户在线Python开发环境
1.1、JupyterHub让Python编程变得更轻松
按照官方的说法,JupyterHub其实就是Jupyter Nootbook的多用户版本,而Jupyter Notebook 则是一个以网页为基础的交互式计算环境,可以创建Jupyter文档,支持如Python、C/C++等多种语言。与传统的Python IDE或者PyCharm等开发环境相比较,Jupyter支持实时代码、可视化和 Markdown,正是因为上述3点,我们选择使用Jupyter作为学生学习Python语言的首选学习平台。
首先,是实时代码与可视化,它讓学生在学习之初对语言还不熟悉时,能够把程序进行分解,就像程序调试时单步执行一样,逐条语句执行并观察运行结果,且运行结果能即时在相应代码下方展示。这种所见即所得的开发环境让学习变得非常直观、容易,每条语句的作用也一目了然,语言的学习变得更加轻松,学生的学习积极性也随之上来,慢慢觉得原来Python也“挺好玩的”。
其次,JupyterHub允许教师在Notebook文档中加入Markdown标记语言,而这正是Notebook的精髓。用Jupyter编写的文档不再是只有枯燥的代码或者呆板的注释,它允许教师轻松地加入图片、注解、链接、指引……,当然还有代码,让文档变成一个交互性很强的教学课件(见图二)。教师只需把文档分发给学生,学生即能按照自己的进度学习、编写、运行代码,实时查看结果,降低了学习难度,另外,Jupyter文档也可以作为自主学习的材料和复习的资料,当学生对某个知识点有所遗忘时,他们可以自行查看文档自主学习,提高了学习效率,解决了课堂效率低下的问题。
1.2构建JupyterHub平台
JupyterHub可以作为Python语言的开发环境,同时,它也需要Python的支持,所以,安装JupyterHub必须先安装Python。另外,为了方便管理Python环境,我们选择使用Conda而非直接安装Python,Conda 是一个为 Python 程序创建的、开源的软件包管理系统和环境管理系统,使用Conda能够更容易管理Python包和环境。另一个使用Conda的好处是JupyterHub所需要依赖的nodejs和npm均已包含在Conda中,不需要再单独安装。平台构建步骤如下: 首先,安装Conda,进入Ubuntu虚拟机,使用wget下载conda安装包,安装包地址可以在官网找到或者使用清华源速度更快。Conda安装包是以脚本形式发布的,下载完成后修改脚本文件权限为可执行并使用bash安装文件。安装完成后把Conda路径:export PATH="/root/anaconda3/bin:$PATH"加入. bashrc文件中并更新一下.bashrc.
接着,创建Python环境,JupyterHub不需要其它包的支持,安装Python3.x即可:conda create -n JupyterHub python=3.7,完成后激活环境:conda activate JupyterHub.
最后,安装并运行JupyterHub:
①conda install -c conda-forge jupyterhub
②conda install notebook
③也可以使用Jupyter Lab:conda install jupyterlab
④运行JupyterHub:jupyterhub[1]
2.Moodle课程管理系统
2.1 Moodle助力提升STEM课堂效率
Moodle是目前国内应该最广泛的免费开源在线课程管理系统之一。教师可以借助Moodle发布课程内容,如:教学课件、文件资源、网站链接、微课视频等,并创建课程活动,如:作业、测验、资源、论坛、投票、问卷调查等(见图三)。Moodle为学生提供了一个自主学习的平台,通过丰富的课程内容与课程活动,让学生更快地进入课堂角色,同时,Moodle课程活动的应用使得学生的学习过程得以记录与保留,这些活动的痕迹就像一本STEM课程的“笔记本”,当学生对某個知识点有所遗忘时,他们可以随时、随地通过翻查“笔记本”自主解决,大大提高了课堂学习效率。另外,Moodle强调学习过程中学生的互动、交流与协作,要求生生之间、师生之间共同探索,合作解决问题,这个与STEM教育理念不谋而合。
2.2 Moodle平台的部署
Moodle的安装依赖于LAMP(Linux + Apache + MySQL + PHP),然而,手动搭建Apache + MySQL + PHP比较麻烦,因此,为了更方便地安装和管理LAMP,我们采用了宝塔Linux面板。宝塔Linux面板是一款提升运维效率的服务器管理软件,支持一键LAMP、集群、监控、网站、FTP、数据库等100多项服务器管理功能。具体部署方法如下:
首先,安装宝塔Linux面板,进入Ubuntu虚拟机,宝塔Linux面板的安装极其简单,只需在命令行输入wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh即可。安装过程一般耗时较长,安装完成后系统会显示面板登录的网址、用户名及密码信息,打开浏览器,输入以上信息登录宝塔Linux面板,首次登录会提示一键安装LAMP,里面的软件都要安装,软件版本尽量选择新一点的即可。
LAMP安装完成后,侧边栏点击“网站”,在网站管理面板点击“添加站点”按钮,按提示输入域名,如没有域名可输入服务器IP地址,根目录可用默认目录,按提示创建FTP方便Moodle安装包上传,创建MySQL,并设置用户名、密码,提交后设置网站目录去掉“防跨站攻击”选项。然后,在Moodle官网下载zip格式安装包到本地,通过FTP上传到宝塔Linux面板网站根目录,打开宝塔Linux面板网页,侧边栏点击“文件”,找到刚上传的Moodle安装包,选择解压缩。找到“/www/wwwroot”目录,设置权限为所有者可读、写、执行。
浏览器输入刚添加站点的域名或者IP,开始Moodle引导安装,选择语言后点击“向后”按钮,文件夹默认使用设置即可,数据库使用添加站点时设置的用户名、密码,点击“向后”,然后选择“安装”,Moodle即可自动安装。
四、平台的不足与改进
JupyterHub+Moodle网络学习平台在我校运作已有一年时间,为我校STEM课程的顺利开展提供了有力的保障。但是,随着平台、系统的不断增多,使用每个系统均需重复输入登录信息,这样的用户体验不够友好。因此,下一步我们将搭建OpenLDAP服务器,把用户信息统一管理起来,做到一次登录即可使用多个系统,解决用户体验差的问题。
【参考文献】
[1]Jupyter.How to install JupyterHub[EB/OL].https://github.com/jupyterhub/jupyterhub,2019.
[2]张爽.基于Moodle平台的项目化教学研究[J].软件导刊,2014,13(12):180-182.
【关键词】STEM;网络学习平台;Python;JupyterHub; Moodle
【中图分类号】G632.4 【文献标识码】A
【文章编号】1992-7711(2020)24-043-02
一、平台应用的背景
2019年,我校承担的十三五广州市教育科学规划课题《基于OpenMV的AI特色STEM课程开发与实施研究》顺利开题,并马上投入到课题的研究工作中。课题中所使用的OpenMV是一套开源的、基于Python的嵌入式计算机视觉架构,它最大的特色是在主板上提供了一个摄像头,并封装了大量计算机视觉算法,学生只需要用Python语言编程调用视觉库函数,再结合一些硬件便能开发出诸如追球小车、二维码识别器,甚至物品分拣机器人等具有人工智能特色的创意小制作。这些小制作对中学生而言是相当有趣且极具吸引力的,以至于我们在课堂上展示这些作品时,学生都兴奋不已,无不踊跃报名参加这门校本课程。
最初,我们的设想是开发一门有趣的AI特色STEM课程,让学生在“做中学”、“玩中学”,学生“玩着玩着”就能学会Python、人工智能、OpenMV……但是,随着课程实施的不断深入,这门课程却变得越来越“看着好玩,做起好难”。我们分析主要存在两大主因:
1.虽然Python语言被誉为一门易学的语言,但是语言的学习毕竟有难度,学生普遍觉得Python“不好玩”。但是,Python是基础,程序设计贯穿整个课程,Python没学好,后面 “好玩”的人工智能、OpenMV根本“玩不动”。
2.课程涉及知识点多,知识面广,然而,校本课程每周只有一个课时,学生对知识的遗忘率高,教师每节课都必须花费大量时间用于知识温故,课堂效率低下。
为此,我们发挥信息技术教师的优势,有针对性地为本STEM校本课程构建了以JupyterHub多用户在线Python开发环境和Moodle课程管理系统为基础的网络学习平台,运用现代化、信息化手段解决了上述两大难道,为课题的研究铺平了技术上的道路。
二、操作系统的选择与部署
由于学校经费的限制,学习平台以免费的Proxmox VE(下称PVE)和Ubuntu系统为基础进行构建。PVE的作用有点类似于VMware的ESXi,它是一个开源的企业级虚拟化平台,与ESXi相比,PVE是全免费的,使用也非常方便,可以用web管理虚拟机。PVE的部署更是采用了“傻瓜式”的安装方法,只需在官网(www.proxmox.com)下载ISO镜像文件,刻录成光盘后在服务器上按提示进行安装,如果没有特殊要求,一直 “下一步”直至完成即可。
操作系统我们选用著名的Ubuntu,因为是用作服务器的,所以选择它的Server版本。有了PVE虚拟化平台和Ubuntu操作系统,接着需要在PVE上部署Ubuntu,首先网页登录PVE,通过web上传Ubuntu镜像文件到PVE服务器,然后点击“创建虚拟机”按钮创建台虚拟机,按提示配置CPU、内存、硬盘、网络等虚拟机硬件,接着启动虚拟机,安装Ubuntu,因为Ubuntu是非常普及的Linux发行版,所以,它的安装方法不再过多赘述。另外,因为我们的网络学习平台使用了2套开源软件系统,为了方便管理,我们在PVE上分别创建2台Ubuntu虚拟机,部署完成效果如图一。
三、学习平台的构建和应用
1.JupyterHub多用户在线Python开发环境
1.1、JupyterHub让Python编程变得更轻松
按照官方的说法,JupyterHub其实就是Jupyter Nootbook的多用户版本,而Jupyter Notebook 则是一个以网页为基础的交互式计算环境,可以创建Jupyter文档,支持如Python、C/C++等多种语言。与传统的Python IDE或者PyCharm等开发环境相比较,Jupyter支持实时代码、可视化和 Markdown,正是因为上述3点,我们选择使用Jupyter作为学生学习Python语言的首选学习平台。
首先,是实时代码与可视化,它讓学生在学习之初对语言还不熟悉时,能够把程序进行分解,就像程序调试时单步执行一样,逐条语句执行并观察运行结果,且运行结果能即时在相应代码下方展示。这种所见即所得的开发环境让学习变得非常直观、容易,每条语句的作用也一目了然,语言的学习变得更加轻松,学生的学习积极性也随之上来,慢慢觉得原来Python也“挺好玩的”。
其次,JupyterHub允许教师在Notebook文档中加入Markdown标记语言,而这正是Notebook的精髓。用Jupyter编写的文档不再是只有枯燥的代码或者呆板的注释,它允许教师轻松地加入图片、注解、链接、指引……,当然还有代码,让文档变成一个交互性很强的教学课件(见图二)。教师只需把文档分发给学生,学生即能按照自己的进度学习、编写、运行代码,实时查看结果,降低了学习难度,另外,Jupyter文档也可以作为自主学习的材料和复习的资料,当学生对某个知识点有所遗忘时,他们可以自行查看文档自主学习,提高了学习效率,解决了课堂效率低下的问题。
1.2构建JupyterHub平台
JupyterHub可以作为Python语言的开发环境,同时,它也需要Python的支持,所以,安装JupyterHub必须先安装Python。另外,为了方便管理Python环境,我们选择使用Conda而非直接安装Python,Conda 是一个为 Python 程序创建的、开源的软件包管理系统和环境管理系统,使用Conda能够更容易管理Python包和环境。另一个使用Conda的好处是JupyterHub所需要依赖的nodejs和npm均已包含在Conda中,不需要再单独安装。平台构建步骤如下: 首先,安装Conda,进入Ubuntu虚拟机,使用wget下载conda安装包,安装包地址可以在官网找到或者使用清华源速度更快。Conda安装包是以脚本形式发布的,下载完成后修改脚本文件权限为可执行并使用bash安装文件。安装完成后把Conda路径:export PATH="/root/anaconda3/bin:$PATH"加入. bashrc文件中并更新一下.bashrc.
接着,创建Python环境,JupyterHub不需要其它包的支持,安装Python3.x即可:conda create -n JupyterHub python=3.7,完成后激活环境:conda activate JupyterHub.
最后,安装并运行JupyterHub:
①conda install -c conda-forge jupyterhub
②conda install notebook
③也可以使用Jupyter Lab:conda install jupyterlab
④运行JupyterHub:jupyterhub[1]
2.Moodle课程管理系统
2.1 Moodle助力提升STEM课堂效率
Moodle是目前国内应该最广泛的免费开源在线课程管理系统之一。教师可以借助Moodle发布课程内容,如:教学课件、文件资源、网站链接、微课视频等,并创建课程活动,如:作业、测验、资源、论坛、投票、问卷调查等(见图三)。Moodle为学生提供了一个自主学习的平台,通过丰富的课程内容与课程活动,让学生更快地进入课堂角色,同时,Moodle课程活动的应用使得学生的学习过程得以记录与保留,这些活动的痕迹就像一本STEM课程的“笔记本”,当学生对某個知识点有所遗忘时,他们可以随时、随地通过翻查“笔记本”自主解决,大大提高了课堂学习效率。另外,Moodle强调学习过程中学生的互动、交流与协作,要求生生之间、师生之间共同探索,合作解决问题,这个与STEM教育理念不谋而合。
2.2 Moodle平台的部署
Moodle的安装依赖于LAMP(Linux + Apache + MySQL + PHP),然而,手动搭建Apache + MySQL + PHP比较麻烦,因此,为了更方便地安装和管理LAMP,我们采用了宝塔Linux面板。宝塔Linux面板是一款提升运维效率的服务器管理软件,支持一键LAMP、集群、监控、网站、FTP、数据库等100多项服务器管理功能。具体部署方法如下:
首先,安装宝塔Linux面板,进入Ubuntu虚拟机,宝塔Linux面板的安装极其简单,只需在命令行输入wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh即可。安装过程一般耗时较长,安装完成后系统会显示面板登录的网址、用户名及密码信息,打开浏览器,输入以上信息登录宝塔Linux面板,首次登录会提示一键安装LAMP,里面的软件都要安装,软件版本尽量选择新一点的即可。
LAMP安装完成后,侧边栏点击“网站”,在网站管理面板点击“添加站点”按钮,按提示输入域名,如没有域名可输入服务器IP地址,根目录可用默认目录,按提示创建FTP方便Moodle安装包上传,创建MySQL,并设置用户名、密码,提交后设置网站目录去掉“防跨站攻击”选项。然后,在Moodle官网下载zip格式安装包到本地,通过FTP上传到宝塔Linux面板网站根目录,打开宝塔Linux面板网页,侧边栏点击“文件”,找到刚上传的Moodle安装包,选择解压缩。找到“/www/wwwroot”目录,设置权限为所有者可读、写、执行。
浏览器输入刚添加站点的域名或者IP,开始Moodle引导安装,选择语言后点击“向后”按钮,文件夹默认使用设置即可,数据库使用添加站点时设置的用户名、密码,点击“向后”,然后选择“安装”,Moodle即可自动安装。
四、平台的不足与改进
JupyterHub+Moodle网络学习平台在我校运作已有一年时间,为我校STEM课程的顺利开展提供了有力的保障。但是,随着平台、系统的不断增多,使用每个系统均需重复输入登录信息,这样的用户体验不够友好。因此,下一步我们将搭建OpenLDAP服务器,把用户信息统一管理起来,做到一次登录即可使用多个系统,解决用户体验差的问题。
【参考文献】
[1]Jupyter.How to install JupyterHub[EB/OL].https://github.com/jupyterhub/jupyterhub,2019.
[2]张爽.基于Moodle平台的项目化教学研究[J].软件导刊,2014,13(12):180-182.