張自然 石義金









摘? 要:在新文科建設背景下,針對文科學生編程經驗少、機器學習實驗上手難的問題,設計并實現一種基于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-),女,漢族,河南開封人,博士,副教授,碩士研究生導師。研究方向為信息組織與檢索。