楊 曄 張廷東 蔣雪君
(浙江警官職業學院,浙江 杭州 310018)
隨著互聯網和人工智能技術進入教學領域,課程教學和學習理論、教學模式等發生了巨大變化,以學生為中心、以教師為主體的建構主義的教學模式開始興起,也為探討新的學習途徑提供了可能。聊天機器人(Chatbot)是一個利用人工智能技術開發的、旨在與人交流對話的計算機程序,它可以不受時間、空間等因素的限制,不知疲倦地與人聊天[1]。目前在全球范圍內,聊天機器人應用于教學領域比較成功的Chatbot,有喬治亞理工學院推出的助教Jill Watson、英國的Whiz Education平臺、美國教育科技公司K12 Insight推出的Let’s Talk助理等,這些產品很好地扮演了老師的角色,解答學生的問題,成為助推學生自主學習的關鍵。
C語言程序設計是第一學期的編程入門課程,也是學習軟件開發和信息安全等專業課程的先修課,這門課程是否能學好,對于培養學生的專業技能十分重要,也對于學生建立專業學習的信心和興趣至關重要。
對于新生來說,僅憑一周4學時的課堂教學,學好C語言并不容易。根據筆者多年的教學實踐經驗,發現對于高職學生來說,有些學生覺得這門課很難,有些學生覺得這門課沒有用,有些學生缺少獨立學習能力,有些學生甚至因為這門課沒有學好而失去了從事專業方面工作的信心。為什么在老師看來簡單的入門課程,會對高職學生造成如此大的困惑,我們又該如何走出困境?
仔細分析原因,我們發現并不是所有的學生都聽不懂,而是學習能力差距比較大。我們嘗試過兩種解決方案,方案1是教師將授課進度放得非常慢,大家能夠跟上節奏。方案2是教師使用微信、釘釘、qq等即時通訊工具,在課外對沒有所有聽懂的學生進行大量個別解答和輔導。這兩種做法都可以使課程內容的接受度是得到大幅提升。然而選擇方案1放慢節奏,明顯會影響到課程的整體教學效果,吸收能力好的學生感覺吃不飽,也不能達到C語言程序設計課程標準里的要求。選擇方案2,需要耗費老師極大的精力和時間,而其中學生的問題有大部分是類似的,比如對于某個概念的不理解,抑或是某道題不會做等,不同班級之間學生提問的內容也會出現大部分重復,教師容易陷入重復勞動的漩渦。
英國開放大學《創新教學報告》是全球教育創新的重要綱領性文件,以創新和未來展望為主題,根據各種教學方法在現階段的影響力進行排名。在2021年的報告中,“在學習中使用聊天機器人的教學方法”排在第四位,這為本項目的研究提供了理論依據,增強了研究的信心[2]。
聊天機器人改變世界的方式,將比我們想象的更多。它以客戶為中心,可以完成一系列不同的任務。在學習中使用聊天機器人的教學方法,恰巧符合以學生為中心的教育理念,可以讓學生感受到學習上的助推力。它使用文本或語音與學生進行交流,既可以回答學生提出的問題,幫助其解決問題,也可以提出問題,引導學生進行更深層次的學習。特別是當老師不在場或不能提供幫助時,學生仍然能夠自主學習。這種方法有利于構建沉浸式學習環境,讓學生會更自由地借助聊天機器人輔助學習。聊天機器人在解決大規模學習和高質量學習之間的矛盾時帶來了機遇,通過從聊天對話中收集數據,分析學生行為,提供有針對性的幫助與引導,這樣有助于減少教育者的工作量,從而更好地實現個性化學習。
本項目通過聊天機器人的應用構建了一種智能對話服務,幫助教師簡化面向學生的服務,改變學生獲取信息和見解的方式,重塑學生的學習方式,為學生進行自主學習提供保障。在聊天機器人的助力下,讓教師從重復機械的答疑等工作中解放出來,專注于更具創造力的工作,成為課程教學的領導者和指導者。同時使用機器學習理論對聊天獲得的數據進行分析,可以形成教學決策輔助,幫助教師從宏觀層面上準確把握課程進度,提高教學質量和效率。本項目選取了教學中比較常見的提問和回答場景,將OJ(Online Judger)平臺與Chatbot這兩個應用相結合。
OJ平臺是一種在線評測系統,用戶可以在線提交多種程序代碼,系統會自動對代碼進行編譯,并利用事先系統設計好的測試用例執行程序,對程序進行自動評測,是各種計算機程序大賽的主要平臺,也常用于各類程序設計語言類課程的實踐教學平臺,賽教融合,提升教學效果[3]。
本項目的OJ平臺模塊,采用了Hcode Online Judge,實現基于springcloud+vue前后端分離,分布式架構的在線測評系統。該平臺網站權限控制完善,判題使用cgroup隔離用戶程序,支持分布式判題,判題速度快,支持手機端響應式布局。我們在OJ平臺上,發布每章必做和選做習題,并為學有余力的同學準備了ACM程序設計競賽的題目。我們按照知識點分類設置了數據類型與表達式、分支控制、循環控制等7個類型的題目,通過設置標簽說明題目的類別,顏色為綠色。同時為了將ACM程序設計比賽融合到教學中,以賽促學,設置了二分查找、動態規劃、基礎數據結構等類型的題目,該類別顏色為藍色。題庫中按照類別設置,已經存有14個類別、約100道題目,為課程實施打下了堅實的基礎。OJ平臺的題目首頁效果圖如圖1所示,答題界面如圖2所示。

圖1 本項目OJ平臺的題目首頁

圖2 本項目OJ平臺的答題頁面
OJ平臺可以自動批改程序,學生能夠立刻得到反饋,大大提高了學生的參與度,并且提供了充分的測試用例去校驗,學生能夠通過實踐掌握程序設計的通用性、時空性能的訓練,系統地提高了學生C語言程序設計的能力。通過將提問的范圍固定在習題練習上,更好地保障了智能聊天機器人的答題質量和個性化輔導的準確率。
本項目的聊天機器人模塊,采用了開源聊天機器人框架Chatterbot。它是一個完全用Python編寫的基于一系列規則和機器學習算法的聊天機器人框架。它會從保存的對話語料中找出與輸入句子最匹配的句子,并把匹配到的句子的下一句作為回答返回。通過開發核心工作流程、訓練器、邏輯適配器,實現了能夠針對學生提出的問題進行回答的功能。Chatterbot的處理流程圖如圖3所示。

圖3 Chatterbot處理流程圖
一個Chatterbot實例可以綁定多個邏輯適配器,用于根據輸入產生輸出。Chatterbot中沒有獨立的用于選擇對話邏輯的意圖識別模塊,它將意圖識別的功能放到了各個邏輯適配器中。接收到輸入之后,Chatterbot會將其傳遞給各個邏輯適配器,由它們自己判斷是否適合對輸入的文本進行回答。如果邏輯適配器認為不能對輸入進行回答,則會跳過,否則就輸出回答。用戶與聊天機器人對話的效果如圖4所示。

圖4 本項目Chatbot的交互界面
在前期的研究實踐中,我們發現如果聊天機器人回復的質量太低,學生的學習興趣會顯著下降。如果不設范圍,讓學生隨便提問,往往聊天機器人的回復不是想要的答案。所以我們將Chatbot與OJ平臺結合起來,讓學生針對OJ平臺上的某一題目進行提問,同時還設置了機器人菜單,讓學生進行選擇功能,菜單不能匹配的,Chatbot程序會使用機器學習算法對語料庫進行學習訓練,找到比較接近的答案。機器人菜單中的選項設計順序剛好符合學生產生問題的過程,分別是想打開OJ網站(詢問網址)->做不出要提示->出錯找問題->參考別人的代碼->做不出需要激勵->最后放棄看答案->選擇下一道題目。通過一系列的優化,聊天機器人較好的滿足了學生的學習需求和提升了學生的學習興趣[4]。
本項目的目標是通過智能聊天機器人,為教師增加一個增強教學、學習和評估的虛擬助手。它可以隨時隨地回答學生在學習過程中出現的疑問,幫助學生鞏固各階段的學習,提升學生學習C語言的自信心和趣味性,提高學生學習編程的熱情,同時也大幅減輕教師的答疑工作量,提升了教學質量。我們選取了三個場景測試系統進行測試,具體的應用效果分析結果如下[5]:
(1)課堂上,老師使用OJ平臺布置課堂練習。學生有問題舉手問老師,如果舉手人數較多,部分學生會選擇聊天機器人進行詢問。但是一旦聊天機器人不能提供高質量的回答,學生就會立刻放棄使用Chatbot,選擇問老師或同學。在課堂上,Chatbot應用效果一般。
(2)在課外,老師使用OJ平臺布置課外作業。當學生遇到不能解決的問題時,會選擇通過微信等方式問老師。如果老師無法及時回復,多數學生會選擇詢問聊天機器人或查找資料。在課外作業中的應用效果比課堂應用效果要好。
(3)在ACM競賽輔導中,競賽小組的學生使用OJ平臺進行自主學習練習。老師根據學生的刷題排名,確定學生的學習質量。此時學生在自主學習的過程中,一般會首先選擇靠自己解決問題,因此使用聊天機器人解決疑問的熱情比較高,應用效果最好。
因此,我們可以看出聊天機器人的應用效果與學生的自主學習熱情成正比。從已有的數據分析看,目前階段設計的聊天機器人比較適合競賽輔導訓練場景。
人工智能給教育者和學習者都帶來了巨大的好處。聊天機器人代表了新一代認知技術,我們可以直接使用自然語言與計算機交互,得到準確精練的回答。相較于目前搜索得到的成千上萬個網頁,無疑Chatbot能夠讓用戶更快地獲取有用信息,更有效地減輕人工工作量。把聊天機器人引入到課程教學中,在學生學習專業技能時,指導學生逐步深入地學習并掌握該技能,將是一次非常有意義的嘗試。