楊瀚盛
【摘要】STEM是科學(xué)、技術(shù)、工程、數(shù)學(xué)四門(mén)學(xué)科英文首字母的縮寫(xiě),STEM課程往往涉及的知識(shí)點(diǎn)多,知識(shí)面廣,需要多學(xué)科知識(shí)的綜合運(yùn)用,因此,STEM課程的開(kāi)展并不容易。本文將根據(jù)作者在STEM課程開(kāi)發(fā)與實(shí)施中的實(shí)踐經(jīng)驗(yàn),淺析如何有針對(duì)性地通過(guò)構(gòu)建網(wǎng)絡(luò)學(xué)習(xí)平臺(tái),為學(xué)生構(gòu)建網(wǎng)絡(luò)學(xué)習(xí)環(huán)境,運(yùn)用現(xiàn)代化、信息化的手段輔助教師更高效地開(kāi)展STEM課程。
【關(guān)鍵詞】STEM;網(wǎng)絡(luò)學(xué)習(xí)平臺(tái);Python;JupyterHub; Moodle
【中圖分類(lèi)號(hào)】G632.4?【文獻(xiàn)標(biāo)識(shí)碼】A
【文章編號(hào)】1992-7711(2020)24-043-02
一、平臺(tái)應(yīng)用的背景
2019年,我校承擔(dān)的十三五廣州市教育科學(xué)規(guī)劃課題《基于OpenMV的AI特色STEM課程開(kāi)發(fā)與實(shí)施研究》順利開(kāi)題,并馬上投入到課題的研究工作中。課題中所使用的OpenMV是一套開(kāi)源的、基于Python的嵌入式計(jì)算機(jī)視覺(jué)架構(gòu),它最大的特色是在主板上提供了一個(gè)攝像頭,并封裝了大量計(jì)算機(jī)視覺(jué)算法,學(xué)生只需要用Python語(yǔ)言編程調(diào)用視覺(jué)庫(kù)函數(shù),再結(jié)合一些硬件便能開(kāi)發(fā)出諸如追球小車(chē)、二維碼識(shí)別器,甚至物品分揀機(jī)器人等具有人工智能特色的創(chuàng)意小制作。這些小制作對(duì)中學(xué)生而言是相當(dāng)有趣且極具吸引力的,以至于我們?cè)谡n堂上展示這些作品時(shí),學(xué)生都興奮不已,無(wú)不踴躍報(bào)名參加這門(mén)校本課程。
最初,我們的設(shè)想是開(kāi)發(fā)一門(mén)有趣的AI特色STEM課程,讓學(xué)生在“做中學(xué)”、“玩中學(xué)”,學(xué)生“玩著玩著”就能學(xué)會(huì)Python、人工智能、OpenMV……但是,隨著課程實(shí)施的不斷深入,這門(mén)課程卻變得越來(lái)越“看著好玩,做起好難”。我們分析主要存在兩大主因:
1.雖然Python語(yǔ)言被譽(yù)為一門(mén)易學(xué)的語(yǔ)言,但是語(yǔ)言的學(xué)習(xí)畢竟有難度,學(xué)生普遍覺(jué)得Python“不好玩”。但是,Python是基礎(chǔ),程序設(shè)計(jì)貫穿整個(gè)課程,Python沒(méi)學(xué)好,后面 “好玩”的人工智能、OpenMV根本“玩不動(dòng)”。
2.課程涉及知識(shí)點(diǎn)多,知識(shí)面廣,然而,校本課程每周只有一個(gè)課時(shí),學(xué)生對(duì)知識(shí)的遺忘率高,教師每節(jié)課都必須花費(fèi)大量時(shí)間用于知識(shí)溫故,課堂效率低下。
為此,我們發(fā)揮信息技術(shù)教師的優(yōu)勢(shì),有針對(duì)性地為本STEM校本課程構(gòu)建了以JupyterHub多用戶(hù)在線(xiàn)Python開(kāi)發(fā)環(huán)境和Moodle課程管理系統(tǒng)為基礎(chǔ)的網(wǎng)絡(luò)學(xué)習(xí)平臺(tái),運(yùn)用現(xiàn)代化、信息化手段解決了上述兩大難道,為課題的研究鋪平了技術(shù)上的道路。
二、操作系統(tǒng)的選擇與部署
由于學(xué)校經(jīng)費(fèi)的限制,學(xué)習(xí)平臺(tái)以免費(fèi)的Proxmox VE(下稱(chēng)PVE)和Ubuntu系統(tǒng)為基礎(chǔ)進(jìn)行構(gòu)建。PVE的作用有點(diǎn)類(lèi)似于VMware的ESXi,它是一個(gè)開(kāi)源的企業(yè)級(jí)虛擬化平臺(tái),與ESXi相比,PVE是全免費(fèi)的,使用也非常方便,可以用web管理虛擬機(jī)。PVE的部署更是采用了“傻瓜式”的安裝方法,只需在官網(wǎng)(www.proxmox.com)下載ISO鏡像文件,刻錄成光盤(pán)后在服務(wù)器上按提示進(jìn)行安裝,如果沒(méi)有特殊要求,一直 “下一步”直至完成即可。
操作系統(tǒng)我們選用著名的Ubuntu,因?yàn)槭怯米鞣?wù)器的,所以選擇它的Server版本。有了PVE虛擬化平臺(tái)和Ubuntu操作系統(tǒng),接著需要在PVE上部署Ubuntu,首先網(wǎng)頁(yè)登錄PVE,通過(guò)web上傳Ubuntu鏡像文件到PVE服務(wù)器,然后點(diǎn)擊“創(chuàng)建虛擬機(jī)”按鈕創(chuàng)建臺(tái)虛擬機(jī),按提示配置CPU、內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)等虛擬機(jī)硬件,接著啟動(dòng)虛擬機(jī),安裝Ubuntu,因?yàn)閁buntu是非常普及的Linux發(fā)行版,所以,它的安裝方法不再過(guò)多贅述。另外,因?yàn)槲覀兊木W(wǎng)絡(luò)學(xué)習(xí)平臺(tái)使用了2套開(kāi)源軟件系統(tǒng),為了方便管理,我們?cè)赑VE上分別創(chuàng)建2臺(tái)Ubuntu虛擬機(jī),部署完成效果如圖一。
三、學(xué)習(xí)平臺(tái)的構(gòu)建和應(yīng)用
1.JupyterHub多用戶(hù)在線(xiàn)Python開(kāi)發(fā)環(huán)境
1.1、JupyterHub讓Python編程變得更輕松
按照官方的說(shuō)法,JupyterHub其實(shí)就是Jupyter Nootbook的多用戶(hù)版本,而Jupyter Notebook 則是一個(gè)以網(wǎng)頁(yè)為基礎(chǔ)的交互式計(jì)算環(huán)境,可以創(chuàng)建Jupyter文檔,支持如Python、C/C++等多種語(yǔ)言。與傳統(tǒng)的Python IDE或者PyCharm等開(kāi)發(fā)環(huán)境相比較,Jupyter支持實(shí)時(shí)代碼、可視化和 Markdown,正是因?yàn)樯鲜?點(diǎn),我們選擇使用Jupyter作為學(xué)生學(xué)習(xí)Python語(yǔ)言的首選學(xué)習(xí)平臺(tái)。
首先,是實(shí)時(shí)代碼與可視化,它讓學(xué)生在學(xué)習(xí)之初對(duì)語(yǔ)言還不熟悉時(shí),能夠把程序進(jìn)行分解,就像程序調(diào)試時(shí)單步執(zhí)行一樣,逐條語(yǔ)句執(zhí)行并觀察運(yùn)行結(jié)果,且運(yùn)行結(jié)果能即時(shí)在相應(yīng)代碼下方展示。這種所見(jiàn)即所得的開(kāi)發(fā)環(huán)境讓學(xué)習(xí)變得非常直觀、容易,每條語(yǔ)句的作用也一目了然,語(yǔ)言的學(xué)習(xí)變得更加輕松,學(xué)生的學(xué)習(xí)積極性也隨之上來(lái),慢慢覺(jué)得原來(lái)Python也“挺好玩的”。
其次,JupyterHub允許教師在Notebook文檔中加入Markdown標(biāo)記語(yǔ)言,而這正是Notebook的精髓。用Jupyter編寫(xiě)的文檔不再是只有枯燥的代碼或者呆板的注釋?zhuān)试S教師輕松地加入圖片、注解、鏈接、指引……,當(dāng)然還有代碼,讓文檔變成一個(gè)交互性很強(qiáng)的教學(xué)課件(見(jiàn)圖二)。教師只需把文檔分發(fā)給學(xué)生,學(xué)生即能按照自己的進(jìn)度學(xué)習(xí)、編寫(xiě)、運(yùn)行代碼,實(shí)時(shí)查看結(jié)果,降低了學(xué)習(xí)難度,另外,Jupyter文檔也可以作為自主學(xué)習(xí)的材料和復(fù)習(xí)的資料,當(dāng)學(xué)生對(duì)某個(gè)知識(shí)點(diǎn)有所遺忘時(shí),他們可以自行查看文檔自主學(xué)習(xí),提高了學(xué)習(xí)效率,解決了課堂效率低下的問(wèn)題。
1.2構(gòu)建JupyterHub平臺(tái)
JupyterHub可以作為Python語(yǔ)言的開(kāi)發(fā)環(huán)境,同時(shí),它也需要Python的支持,所以,安裝JupyterHub必須先安裝Python。另外,為了方便管理Python環(huán)境,我們選擇使用Conda而非直接安裝Python,Conda 是一個(gè)為 Python 程序創(chuàng)建的、開(kāi)源的軟件包管理系統(tǒng)和環(huán)境管理系統(tǒng),使用Conda能夠更容易管理Python包和環(huán)境。另一個(gè)使用Conda的好處是JupyterHub所需要依賴(lài)的nodejs和npm均已包含在Conda中,不需要再單獨(dú)安裝。平臺(tái)構(gòu)建步驟如下:
首先,安裝Conda,進(jìn)入U(xiǎn)buntu虛擬機(jī),使用wget下載conda安裝包,安裝包地址可以在官網(wǎng)找到或者使用清華源速度更快。Conda安裝包是以腳本形式發(fā)布的,下載完成后修改腳本文件權(quán)限為可執(zhí)行并使用bash安裝文件。安裝完成后把Conda路徑:export PATH="/root/anaconda3/bin:$PATH"加入. bashrc文件中并更新一下.bashrc.
接著,創(chuàng)建Python環(huán)境,JupyterHub不需要其它包的支持,安裝Python3.x即可:conda create -n JupyterHub python=3.7,完成后激活環(huán)境:conda activate JupyterHub.
最后,安裝并運(yùn)行JupyterHub:
①conda install -c conda-forge jupyterhub
②conda install notebook
③也可以使用Jupyter Lab:conda install jupyterlab
④運(yùn)行JupyterHub:jupyterhub[1]
2.Moodle課程管理系統(tǒng)
2.1 Moodle助力提升STEM課堂效率
Moodle是目前國(guó)內(nèi)應(yīng)該最廣泛的免費(fèi)開(kāi)源在線(xiàn)課程管理系統(tǒng)之一。教師可以借助Moodle發(fā)布課程內(nèi)容,如:教學(xué)課件、文件資源、網(wǎng)站鏈接、微課視頻等,并創(chuàng)建課程活動(dòng),如:作業(yè)、測(cè)驗(yàn)、資源、論壇、投票、問(wèn)卷調(diào)查等(見(jiàn)圖三)。Moodle為學(xué)生提供了一個(gè)自主學(xué)習(xí)的平臺(tái),通過(guò)豐富的課程內(nèi)容與課程活動(dòng),讓學(xué)生更快地進(jìn)入課堂角色,同時(shí),Moodle課程活動(dòng)的應(yīng)用使得學(xué)生的學(xué)習(xí)過(guò)程得以記錄與保留,這些活動(dòng)的痕跡就像一本STEM課程的“筆記本”,當(dāng)學(xué)生對(duì)某個(gè)知識(shí)點(diǎn)有所遺忘時(shí),他們可以隨時(shí)、隨地通過(guò)翻查“筆記本”自主解決,大大提高了課堂學(xué)習(xí)效率。另外,Moodle強(qiáng)調(diào)學(xué)習(xí)過(guò)程中學(xué)生的互動(dòng)、交流與協(xié)作,要求生生之間、師生之間共同探索,合作解決問(wèn)題,這個(gè)與STEM教育理念不謀而合。
2.2 Moodle平臺(tái)的部署
Moodle的安裝依賴(lài)于LAMP(Linux + Apache + MySQL + PHP),然而,手動(dòng)搭建Apache + MySQL + PHP比較麻煩,因此,為了更方便地安裝和管理LAMP,我們采用了寶塔Linux面板。寶塔Linux面板是一款提升運(yùn)維效率的服務(wù)器管理軟件,支持一鍵LAMP、集群、監(jiān)控、網(wǎng)站、FTP、數(shù)據(jù)庫(kù)等100多項(xiàng)服務(wù)器管理功能。具體部署方法如下:
首先,安裝寶塔Linux面板,進(jìn)入U(xiǎn)buntu虛擬機(jī),寶塔Linux面板的安裝極其簡(jiǎn)單,只需在命令行輸入wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh即可。安裝過(guò)程一般耗時(shí)較長(zhǎng),安裝完成后系統(tǒng)會(huì)顯示面板登錄的網(wǎng)址、用戶(hù)名及密碼信息,打開(kāi)瀏覽器,輸入以上信息登錄寶塔Linux面板,首次登錄會(huì)提示一鍵安裝LAMP,里面的軟件都要安裝,軟件版本盡量選擇新一點(diǎn)的即可。
LAMP安裝完成后,側(cè)邊欄點(diǎn)擊“網(wǎng)站”,在網(wǎng)站管理面板點(diǎn)擊“添加站點(diǎn)”按鈕,按提示輸入域名,如沒(méi)有域名可輸入服務(wù)器IP地址,根目錄可用默認(rèn)目錄,按提示創(chuàng)建FTP方便Moodle安裝包上傳,創(chuàng)建MySQL,并設(shè)置用戶(hù)名、密碼,提交后設(shè)置網(wǎng)站目錄去掉“防跨站攻擊”選項(xiàng)。然后,在Moodle官網(wǎng)下載zip格式安裝包到本地,通過(guò)FTP上傳到寶塔Linux面板網(wǎng)站根目錄,打開(kāi)寶塔Linux面板網(wǎng)頁(yè),側(cè)邊欄點(diǎn)擊“文件”,找到剛上傳的Moodle安裝包,選擇解壓縮。找到“/www/wwwroot”目錄,設(shè)置權(quán)限為所有者可讀、寫(xiě)、執(zhí)行。
瀏覽器輸入剛添加站點(diǎn)的域名或者IP,開(kāi)始Moodle引導(dǎo)安裝,選擇語(yǔ)言后點(diǎn)擊“向后”按鈕,文件夾默認(rèn)使用設(shè)置即可,數(shù)據(jù)庫(kù)使用添加站點(diǎn)時(shí)設(shè)置的用戶(hù)名、密碼,點(diǎn)擊“向后”,然后選擇“安裝”,Moodle即可自動(dòng)安裝。
四、平臺(tái)的不足與改進(jìn)
JupyterHub+Moodle網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)在我校運(yùn)作已有一年時(shí)間,為我校STEM課程的順利開(kāi)展提供了有力的保障。但是,隨著平臺(tái)、系統(tǒng)的不斷增多,使用每個(gè)系統(tǒng)均需重復(fù)輸入登錄信息,這樣的用戶(hù)體驗(yàn)不夠友好。因此,下一步我們將搭建OpenLDAP服務(wù)器,把用戶(hù)信息統(tǒng)一管理起來(lái),做到一次登錄即可使用多個(gè)系統(tǒng),解決用戶(hù)體驗(yàn)差的問(wèn)題。
【參考文獻(xiàn)】
[1]Jupyter.How to install JupyterHub[EB/OL].https://github.com/jupyterhub/jupyterhub,2019.
[2]張爽.基于Moodle平臺(tái)的項(xiàng)目化教學(xué)研究[J].軟件導(dǎo)刊,2014,13(12):180-182.