胡必玲,潘潔珠,劉 藝
(合肥師范學院 計算機學院,安徽 合肥 236032)
互聯網技術、云計算、人工智能的出現與發展催生了線上教學,新技術背景下教育模式正發生重大變革。基于云平臺的智慧教育已成為教育的新常態[1]。智慧教育的實施將有助于改變線下傳統課堂的單調性,增強教學活動中教師和學生之間的互動,提升學生學習積極性與主動性。本文在分析“Linux系統及應用”課程特點的基礎上,運用EduCoder平臺“智能化、開源化、全棧化、游戲化”的特色[2],進行了基于EduCoder實訓平臺的線上實踐教學探索。從Linux課程的實施要求、EduCoder平臺的功能和線上教學的設計等方面進行研究,并對教學效果進行總結分析。
Linux作為一種全開源的操作系統,應用領域廣泛。各應用型本科高校計算機相關專業普遍會在人才培養方案中將“Linux系統及應用”設置為專業方向課[3]。作為課程體系中重要的專業方向課程,“Linux系統及應用”知識面廣、專業性強,對學生的實踐操作要求高[4];其次,內容模塊化明顯,識記內容多,學生學習起來會感覺比較枯燥。這就對Linux課程的實施提出以學生為中心、層次化設計實踐項目、創新實踐方式等要求。
由國內知名高校、產業聯盟和大型企業發起的EduCoder實訓平臺是一個新型開放的國家精品課建設和在線實踐教學平臺[5]。基于群體化方法和網構化機理,EduCoder支持全系列信息技術類專業方向的教學、實驗、實訓和科研活動,支持老師和開發者按需自主創建實踐課程[6]。EduCoder在功能上可以劃分為課堂管理和實踐教學兩大塊。教師可以在平臺創建教學班級,將所在教學班學生邀請入班級,提供視頻資源和課件供學生學習,布置作業,直播,進行測驗,發放問卷,組織討論,并進行課堂點名等活動。其實踐教學部分是平臺的最大特色,教師可以自己設計實踐項目,在每個實踐任務中能夠將實訓任務設置成游戲關卡的模式,學生可在線學習和實踐,并支持自動編譯、運行、部署、測試、統計分數。EduCoder平臺于實踐部分的特色能夠充分支持“Linux系統及應用”實踐教學的實施要求。
傳統的“Linux系統及應用”線下實踐教學教師在實踐內容開始之前需要構建實踐環境,實驗之前學生進行實驗內容預習,實驗課中教師集中進行實驗要點和實驗注意事項的講解,學生于固定地點、固定時間集中進行實踐操作。學生在進行具體實踐操作的過程中,教師進行巡視并指導,以了解學生實踐情況。教師于實驗課結束前對班級整體實驗情況進行總結闡述。在傳統的線下實踐教學中,教師起著主導作用。學生的學習積極性難以激發,對學生自主學習能力的培養也較為缺乏。另外,教學環境的構建需要花費數小時,且在這種實踐教學環境下,教師只有在巡視指導時才能了解學生當時的實踐情況,無法對學生實踐過程中的完整情況進行掌握和記錄。
EduCoder實訓平臺集成了多種開發環境,其實踐教學環境的構建只需要教師在設計實訓項目時進行相應的配置即可,減少了軟件安裝配置時間。學生即使在沒有開發環境的情況下只要能連入互聯網,就可以不受空間和時間的限制,隨時隨地進行實訓,完成實踐任務[7]。同時,EduCoder平臺的任務設計和闖關的模式改變了學生的學習模式,傳統的“以教師為中心”的教學模式轉變為項目驅動下的“學生為中心”的學習模式。學習模式的轉變能夠提升學生積極性,促進對學生自主學習能力的培養。學習平臺還能夠對學生的整個實踐過程進行監督記錄,為教師考核學生實踐能力提供一定的數據依據。
在EduCoder平臺上進行線上實踐教學,教師只需要進行實訓項目設計和每個實訓項目中任務的設計。對學生實驗程序的正確性,平臺會根據教師編寫設置的評測腳本和數據集自動完成,并根據實時記錄給出學生工作能力圖、工作效率圖和各關任務評測數據。圖1為具體線上實踐教學流程,圖中虛線部分為學生的實踐流程。

圖1 EduCoder平臺線上實踐教學流程
本節以Linux系統應用中的核心——shell編程為例,闡述EduCoder平臺上實訓項目的設計思想和過程。
學生線上學習時注意力容易分散,吸收速度慢,缺乏交流與監督。教師要利用多種形式,加強并保持與學生的網上互動,引導學生自主學習,加強對學習過程、學習效果的監督與反饋。
EduCoder平臺在實踐教學中所采用的實訓項目通關并獲取積分的形式,在一定程度上能夠增加學生自學時間,加強自學與自律能力的訓練,發揮學生在學習中的主體作用和教師在教學中的組織、引導、促進、控制作用,將枯燥的知識轉變為生動的學習內容。但在具體的實訓項目設計過程中,教師也要注意把所要講授的基礎知識和要求學生掌握的實踐技能設計成多層次、多目標的各關任務,引導學生循序漸進,掌握分析問題和解決問題的方法,最終讓學生通過自己的努力完成任務,獲取實踐能力的提升。
3.2.1 明確shell編程實踐教學目標
shell作為用戶與系統的交互界面,是Linux系統的核心內容。利用shell程序設計語言可以編寫功能強大的腳本程序,實現Linux/UNIX系統管理及自動化運維,減少不必要的重復工作。在“Linux系統及應用”兩個實驗學時里,學生要能夠編寫簡單的shell腳本,掌握Linux shell的語法結構、內置命令、變量定義、控制語句、函數及shell程序的調試。
3.2.2 設置具體關卡
針對shell編程部分的實踐教學目標,在實訓項目的設計中,設置三個關卡逐步實現對學生shell編程能力的培養:第一關為shell腳本的建立和執行,通過布置一個簡單的任務讓學生掌握shell腳本的建立和不同的執行方式;第二關讓學生編寫一個shell腳本實現猜數字游戲,程序運行后提示用戶猜數字,根據用戶的輸入,提示用戶猜對了、猜大了或者猜小了,直至用戶猜對,腳本運行結束。目的是通過數字游戲的設計與實現讓學生掌握隨機數的生成、shell的變量、shell的輸入與輸出命令、shell的控制結構、條件測試等相關內容;第三關要求學生編寫一個shell腳本完成求斐波那契數列的前10項及總和。其目的是在第二關的基礎上進一步鞏固學生在變量定義、輸入輸出、控制結構方面的編程與運用能力。
3.2.3 編寫具體過關任務文檔
除了對整個實訓項目分層次設計任務關卡,在每個任務頁面中,還需詳細編寫具體的過關任務文檔。其中應包括任務描述、詳細的相關知識介紹和編程要求。比如,對于第2關數字游戲,首先應清晰地給出對本關任務的描述,并在隨后的相關知識部分,詳細闡述了為完成本關任務需要掌握的知識要點為隨機數的生成、shell的變量、shell的輸入輸出命令、控制結構、條件測試。在對每個知識點的闡述部分,應給出相關用例以加強學生理解;最后給出編程要求和注意事項。
3.2.4 設置學員任務文件,評測執行文件
為了支持平臺闖關游戲的設置模式,在實訓項目設計中教師應設置好每個任務關卡中的學員任務文件,編寫并設置評測執行文件和測試集,以指明學生在哪個文件中編寫代碼和當學生按下“測評”按鈕后用哪個腳本測試學生編寫代碼的正確性。整個實訓各關卡中代碼都是通過平臺上提供的測試集進行測試,測試集通常有幾組用來全方位地驗證代碼的正確性。
2020年4月到2020年6月,針對合肥師范學院2017級計算機科學與技術(3+1)班19人教學班次開展了“Linux系統及應用”的線上實踐教學。從課程結束后進行的問卷調查(表1)顯示,本次教學實踐獲得較好的教學效果。其中大部分學生認為較之傳統的線下教學模式,教學方式新穎,自身主動性強,參與度高,實踐效果更好。約80%人認為明確掌握了各實訓項目的知識要點和實踐技能,具備了Linux系統的應用能力,并且自主學習的能力均得到了提升。從各實訓項目的成績也可以看出,該班次學生整體成績都較好,6個實訓項目在規定時間的通關率都達到90%以上。

表1 教學效果評價問卷結果
Educoder網絡實踐平臺為實踐教學的開展提供了便捷高效的方式,學生可以不受空間和時間限制隨時隨地進行實訓;另一方面,采用云平臺的實踐方式使得教師能夠清楚掌握每個學生的實訓情況,包括評測次數、工作效率、提交耗時、完成情況、最終成績,從而能夠對學生的實踐能力做出更客觀的評價;此外,EduCoder平臺實訓項目的游戲闖關式任務設計能夠提升學生的實踐的積極性,增加了學生的自主學習能力,促進學生對實踐技能的掌握,提升了教學效果。