文艷偉 李浩博 單斌 杜純



[摘 要]含有編程類知識的理工科課程的教學往往會遇到程序環境配置繁、代碼調試難、知識點與代碼脫節、師生交互性差等問題。針對計算材料學課程項目研究式教學存在的難點,課程教學團隊借助CoCalc云平臺,并結合線下教學的模式,解決了實踐環境配置、代碼調試、師生互動等教學環節問題,激發了學生利用便捷的云平臺展開探究性學習的興趣,完成了互融式教學設計,變晦澀、抽象和枯燥的學習為直觀、形象和有趣的學習,提升了學生的學習體驗感和獲得感,為理工科實踐類課程的教學提供了新思路、新模式。
[關鍵詞]CoCalc云平臺;計算材料學;興趣;效率;互動
[中圖分類號] G642 [文獻標識碼] A [文章編號] 2095-3437(2023)16-0037-05
計算材料學是以計算機為工具,應用適當的數學方法,對材料科學問題進行數值分析與研究,對材料性質及過程進行數值模擬的新興學科,是研究材料問題的一種新方法。計算材料學課程是華中科技大學材料科學與工程學院的一門專業核心必修課程,國內眾多高校,例如浙江大學、中國科技大學、上海交通大學、西北工業大學也開設了該課程。該課程主要教會學生以小組合作的形式,利用計算機模擬探究材料的多種物理化學性質,深入理解材料微觀結構和宏觀性能的聯系,對學生專業知識體系的完善、創新研究能力的提升,以及團隊精神、探索精神的培養具有極其重要的作用。
計算材料學課程涉及量子力學、固體物理、材料科學基礎、計算機程序設計等知識,概念繁多,對學生的專業知識、技術能力、探索技能要求較高,是一門技巧性較強的實踐性課程。模擬原理抽象、程序代碼枯燥、缺少直觀形象的認識是學生學習該課程的攔路虎,再加上部分學生缺乏充足的實踐參與學習體驗,導致其容易喪失學習興趣?!罢n堂上似懂非懂,結課項目無從下手”是計算材料學教學過程中一種比較普遍的現象。針對程序類的實踐性課程,人們在教學方法、手段、考核方式等方面進行了一系列探索。在國內外云平臺蓬勃發展的背景下,教育資源在管理和配置上具有低成本、靈活性、互動性等優勢,因此云計算輔助教學管理模式在高校教學實踐中逐漸興起[1-2]。尤其是對計算機類基礎課程,云平臺教學在細化時間粒度、獲取雙向學習效果方面有明顯的成效[3-5]。劉思宇等人[6]借助華為ModelArts云平臺,探索了計算機視覺教學案例,讓學生可以在由易到難的實驗過程中多角度、漸進式、由淺入深地掌握計算機視覺領域的基礎工程方法。李斌[7]基于華為DevCloud對軟件項目的實訓課程進行了實踐,通過人工智能軟件的運用全面提升了學生的軟件工程能力。開源中國(OSChina)推出了針對高校的代碼托管服務平臺Gitee高校版,提供了班級/團隊管理的方式,以支持教師、助教、學生多角色權限,并方便分組進行項目合作編程。盧華燈等人[8]在項目式教學中使用Gitee進行了理實一體化迭代式教學探索,降低了學生理論學習與代碼實踐切換的難度,記錄了學生編程實踐過程,提高了巡堂指導的效果。
筆者在試用過程中發現,Gitee平臺支持的編程語言有限,沒有集成如Python、Linux等的編程環境,這使計算材料學的程序教學嚴重受限,學生也無法在線調試,體驗感較差;作業批改與課程考核大多通過在線評測系統進行,學生僅能提交代碼、查看評測結果,而不能與教師或其他同學在線協作,課程交互性有待提高。CoCalc是一個基于Web的協作平臺,自2013年問世以來,已被美國的加州大學洛杉磯分校、佐治亞理工學院,英國的牛津大學等世界一流大學用于生物信息學、數據科學、密碼學等數百門課程的教學實踐。例如,哈佛大學的數學課程使用CoCalc提供給學生實時訪問計算工具,并可協作完成作業和項目;加州大學伯克利分校的計算機科學課程使用CoCalc為學生提供一個用于編碼、測試和協作項目的平臺。目前,我國主流云計算運營商尚未推出能夠實現同類功能的教育產品。計算材料學課程教學團隊首次將CoCalc云計算平臺引入國內課堂教學,進行了一系列有意義的探索,解決了學生在配置程序環境、代碼調試、作業反饋等環節的難題;通過理論教學與代碼實踐迭代式教學,改善了學生的學習體驗,提高了教學效率。CoCalc云平臺使用的便捷,極大激發了學生開展探究性學習的興趣,使綜合教學效果大幅度提升。
一、CoCalc平臺簡介與課程實施
CoCalc集成了Python、R等程序設計語言及配套的眾多科學計算包和Jupyter Notebook、Nbgrader、LaTeX等輔助工具,具有模塊豐富、網頁操作簡單、在線協作便捷等優點,能夠很好地滿足計算材料學課程所需計算、繪圖能力的要求,為實踐編程類課程教學改革提供了新的平臺與契機。CoCalc平臺集成了Python常用的Numpy、Scipy、Matplotlib、PyTorch、Pymatgen等科學計算包,體系完善,能滿足基本計算、機器學習、材料結構分析、數據可視化等多樣的需求,為開展面向互聯網時代、項目探索式代碼類課程的開放、共享式云平臺教學模式探索提供了契機。
課程教學團隊依托CoCalc平臺對計算材料學的教學模式進行了改革探索,整個實施過程包含四個環節:課堂教學、課后實踐、項目探索、成果展示及考核,如圖1所示。課堂教學包括分子動力學基本知識點、代碼實現以及課堂演示,課后實踐包括課后作業、編程及可視化練習,這兩部分是課程的基礎,是對學生基本理論知識和編程能力的訓練。然后學生分組選擇感興趣的材料模擬小課題開展項目探索,這一過程由教師對課題難度、深度進行把關,選題問題明確且有意義,既能激發學生的探索興趣,又能鍛煉學生的科研能力。通過這一環節的鍛煉,學生基礎知識的牢固程度和科研能力都會提升至一個新臺階。最后一個環節是小組將科研成果進行分析整理,通過PPT在課堂上向所有同學展示;由其他小組學生對匯報小組的成果進行評分,鼓勵大家思考、提問和討論;學生再完善課題研究成果并撰寫規范的科研論文,由教師進行批閱。學生成績采用多元化的方式進行評價,包括課堂表現(占10%,由教師打分)、課后作業(占20%,由助教打分)、匯報評分(占35%,由學生打分)和論文評分(占35%,由學生打分)。
在整個課程設計中,課堂演示、課后實踐以及項目探索這三個環節難度較大,如何將知識點與代碼直觀、有機地結合與展示,如何構建便捷的實踐環境與學生互動,項目探索如何利用最新的互聯網或人工智能工具等,都是程序類工科課程面臨的重要問題。在教學和實踐環節引入CoCalc云平臺,解決了學生在課程教學中實踐環境構建、知識點呈現、作業互動和項目探索等關鍵環節出現的問題,促使教學效率顯著提升,學生體驗和反饋良好?;谠撈脚_,本課程教學團隊通過庖丁解牛式的分解讓學生高度參與完整的分子動力學程序編寫和模擬,通過可視化圖形展示模擬結果,有力地揭示了材料計算模擬的機理、材料體系的物理規律,有助于學生形成形象思維與系統思維,并為構建材料科學、物理、化學等領域正確深刻的理性認識奠定基礎。
二、CoCalc平臺教學優勢分析
(一)體驗式教學激發學生興趣
計算材料學課程的教學難點在于如何將分子動力學的知識要點與枯燥的程序代碼聯系起來。分子動力學模擬原理抽象、程序代碼枯燥,缺乏直觀形象的展示,導致學生容易喪失學習興趣。因此,必須加強學生學習體驗,大幅增加學生的參與度和成就感。成熟的分子動力學軟件如LAMMPS模擬功能強大,但是程序代碼復雜、數量過萬行,不適合用于教學呈現。本課程教學團隊以二維平面內氬氣分子動力學模擬為例,采用庖丁解牛式的教學方式,引導學生通過自主編程的形式,通過簡單的Python代碼逐一完成晶體建模、勢函數定義、周期性邊界條件控制、積分算法等分子動力學模擬,最后通過主程序迭代完成簡單、完整的分子動力學模擬程序pymd,如圖2所示。圖2標識了整個分子動力學模擬的功能模塊、課堂教學的知識點、簡潔的模塊式代碼。通過該設計,讓學生能夠提綱挈領,了解分子動力學模擬的流程和各模塊功能;精準定位每個知識點—分子動力學要素在模擬中的角色,然后精細化到各個知識點的編程實現。學生通過重組各模塊完成一個完整的分子動力學模擬程序,運行自己編寫的程序,獲得了滿滿的成就感,對計算材料方法的認識有了質的提升。CoCalc平臺為這一教學設計提供了良好的運行條件。尤其是在知識點與代碼關聯環節,Jupyter Notebook為學生提供了便捷的網頁式程序編寫和調試功能,集成的Matplotlib功能包能對學生的代碼進行實時畫圖顯示,執行后就可以得到直觀的輸出結果。如圖3所示,代碼的實時運行和輸出給出了直觀形象的二維晶格建模結構、諧振子跳蛙算法的速度和位移分析。教師在課堂上鼓勵學生動手修改程序,實現無序二維晶格建模、速度Verlet算法、多體勢函數定義等功能。在學習過程中,學生通過閱讀及修改代碼,動手動腦、實踐知識,提升分析和設計能力,既加深了對課堂上介紹的分子動力學公式的理解,又激發了學習興趣和探索欲望。CoCalc平臺的使用,幫助學生通過代碼把看似單調的公式應用于實際材料體系的計算分析中,通過動手操作,學生能體驗到成功的喜悅,從而增強學習自信,將材料專業知識與計算機技術結合起來,破除了對計算材料學的消極畏難情緒和陌生感。在2022—2023學年的教學實踐中,有多個學生小組選擇編寫基于Python的分子動力學程序作為結課項目,如將課程中的二維分子動力學模擬程序拓展至三維晶體結構,運用自學的機器學習工具PyTorch等進行簡單的高通量計算,對材料模擬數據展開綜合分析。因此,CoCalc平臺的引入激發了學生學習熱情和研究創造激情,使教學效果顯著提升。
(二)云平臺優勢助力提升教學效率
計算材料學課程開設之初,僅由教師在課堂講授相關理論知識,學生實踐機會少、理解深度淺。在之后幾年時間里,本課程教學團隊探索了多種方式,希望為學生提供一個方便、穩定的實踐環境。如編寫安裝指南,讓學生在自己電腦上安裝Linux系統、MATLAB、Python等計算軟件,在一定程度上提高了課程的實踐性。但是,這些軟件占用空間大、配置過程煩瑣,對于計算機基礎較薄弱的學生,教師需要大量的時間進行指導。實際執行過程中,電腦環境的差異也可能影響安裝效果。例如,安裝Python時,不同電腦的設置或軟件版本不同,運行過程中易出現軟件包缺失的錯誤,造成了諸多麻煩。據不完全統計,學生花費在系統安裝、環境配置上的平均時間超過十小時,嚴重影響了學習效率和教學體驗。
本課程教學團隊在實踐環節引入基于網頁云計算服務的CoCalc平臺,保證了集成環境和軟件的一致性,免除了軟件安裝配置的環節;每位學生都可免費注冊賬號、加入課堂,擁有獨自的工作空間用于代碼存儲及運行。即注冊即用的模式,使得學生可以將更多的時間和精力用于課程學習,大幅度提高了教學效率。
此外,CoCalc平臺還具有完善的課程管理工具,可以較好地輔助教學,其共享和開放性可以進一步助力教學效率的提升。圖4所示為管理員登錄界面,CoCalc平臺建立課程后,主目錄包含了.course文件,記錄了選課學生的名單,可以向名單中的每位學生共享課件、發布作業;Assignments里存放作業練習;Handouts可存放課件PPT、交互特性編寫代碼示例文件或作業。云平臺上每位學生賬號下都會有獨立的Assignments和Handouts文件夾,學生可以直接在網頁運行代碼、查看結果,并嘗試修改,保證互不影響。作業系統可以自動收取作業、利用Nbgrader工具自動批改、對作業進行批注及一鍵下發,節省了教師逐一查看、驗證代碼的時間。對學生而言,由于作業文件內置了程序輸入輸出樣例,學生在線運行代碼過程中可實時運行了解自己的代碼是否正確,錯誤一目了然,節省了反復上傳代碼、等待在線評測平臺驗證、驗證失敗后手動定位錯誤的時間。學生使用后普遍給予了積極反饋:“使用CoCalc平臺后不用自己下載軟件,注冊和操作也很方便”“能夠比較快地發現自己寫得有沒有錯、錯的地方在哪,上面還有老師提供的例子”等。
(三) 云平臺的協作性增強了師生的互動
CoCalc平臺具有云協作特性,該平臺的實時訪問計算工具和協作功能非常適合在課堂上使用。從教的角度來看,教師可以方便地進行實時課堂編程演示,并與學生一起進行交互式討論;從學的角度來看,學生可以通過CoCalc平臺實時訪問代碼和使用計算工具,進行模擬和分析,在課堂上觀察和理解材料的性質和行為。尤其是針對項目探索類的課程,學生與學生之間可以通過CoCalc平臺的協作功能一起完成項目,這種互動性提升了學生的寫作能力。教師可以通過CoCalc平臺的在線評審功能,對學生的作業和項目進行及時評審,為學生提供有針對性的反饋和指導;可以創建并使用CoCalc平臺的在線練習和測試來評估學生的學習進度與成果,幫助學生了解他們的強項和弱項。傳統的教學模式下,當學生遇到困難時,需要發送代碼截圖或文件給教師請教,卻經常遇見反饋不夠及時的問題,代碼較長、問題描述不清晰等更影響了互動的效率。在CoCalc平臺上,教師或助教可以通過看板了解學生的作業提交情況,并在需要時直接進入學生的工作空間查看代碼文件,相當于“坐”到了學生的電腦前,可以完整地閱讀學生的代碼,最后確定問題所在。例如,有學生在編寫氬氣分子三維分子動力學Python模擬程序時,發現原子數目較多時會出現體系溫度及勢能異常的情況,他們認為是勢函數聲明的問題。本課程教學團隊教師通過云平臺直接進入學生的工作空間,分析代碼后發現,問題來源于代碼開頭部分,學生忽視了計算機數組的有關特性,導致生成原子坐標列表時發生了溢出錯誤,部分原子坐標異常。據此,教師及時批注了該部分代碼,使學生在半個小時內就調試并解決了這個問題。CoCalc平臺作為教師和學生之間的橋梁,增強了師生交互性體驗,將教與學環節緊密聯系,做到了教學相長。
三、CoCalc平臺教學不足分析
本課程教學團隊在采用CoCalc平臺進行計算材料學教學的實踐中,也總結了該平臺在課程教學中的一些不足之處。首先是免費試用版的CoCalc平臺為每位用戶提供的云計算資源有限,代碼在執行中會出現卡頓情況,使學生的使用體驗感欠佳。其次,部分學生反饋Python嵌套式界面和程序結構閱讀起來有些費勁,需要一定時間適應代碼寫作習慣。最后,Nbgrader自動評分系統對教師端的使用要求較高,由于Nbgrader評分方式固定,需要教師精心設計判分條件。
四、結語
本課程教學團隊在實踐中借助CoCalc云平臺的集成性、多功能性、易用性和協作性,探索出直觀形象的互融式教學設計,增強了學生學習體驗;發揮平臺的集成性和多功能性優勢,解決了學生配置模擬環境遇到的各種障礙,節省了大量學習時間,提升了學習效率;利用平臺的協作性幫助學生與學生、學生與教師實現共同工作,增強了師生之間、生生之間的交互,激發了學生的科研興趣,課程教學效果得到了顯著提升。本課程教學團隊的實踐探索希望能為編程類、基于項目導向的高校理工科課程的教學改革拋磚引玉,借助新興的云平臺技術,變晦澀、抽象和枯燥的學習為直觀、形象和有趣的學習,激發學生的學習興趣,引導學生探索創新。
[ 參 考 文 獻 ]
[1] 劉文.基于“云計算”的輔助教學模式及其資源組合[J].教育教學論壇,2016 (26):144-145.
[2] 朱曉燕.基于云服務的高校教學實踐平臺[J].電子技術與軟件工程,2017(18):12-13.
[3] 吳憲君.基于云服務的大學計算機基礎課程資源平臺設計[J].現代信息科技,2017, 1(5):124-126.
[4] 張澤文.云服務在高校計算機教學中的應用探討[J].中外企業家,2018(1):37.
[5] 蘇菲.基于云服務的高校計算機課程SPOC教學模式探討[J].信息系統工程,2021(2):161-163.
[6] 劉思宇,李嘉樂,趙家棟,等. 基于ModelArts云平臺的計算機視覺實驗教學探索[J].電腦知識與技術,2022, 18(24):29.
[7] 李斌.基于華為DevCloud的計算機軟件項目實訓課程創新性實踐[J].信息技術與信息化,2019(12):30-32.
[8] 盧華燈,李婷妤.基于Gitee的理實一體化迭代式項目驅動教學法應用研究[J].計算機教育,2019(7):117-120.
[責任編輯:鐘 嵐]