梁晶晶 張新剛



關鍵詞 數據結構 超星學習通 希冀 Online Judge多平臺
1引言
“數據結構”研究的是數據與數據之間的關系,并根據結構特征和操作需求對其進行有效的存儲,從而為后續高效的算法設計提供了保障,其是數據組織、算法設計與優化、程序設計和系統開發的關鍵技術,為大數據、人工智能等技術的發展奠定了堅實的基礎,如圖1 所示。因此,“數據結構”一直以來都是計算機及信息技術類相關專業的核心基礎課程,也是各個高校碩士、博士研究生錄取的必考科目和畢業生求職面試的重點考核內容[1] 。
2現狀分析
作為一門重要的計算機專業核心課程,“數據結構”具有抽象性、邏輯性強、概念多且容易混淆等特點,同時對實踐能力又有較高的要求。目前,應用型高校本科生在“數據結構”學習中如下問題。
第一,學習目的不明確。對于大多數計算機專業的本科生來說,能夠快速上手、學以致用的開發類課程無疑具有更大的吸引力,一個網站、一款手機APP或者微信小程序的開發都能讓他們獲得不小的成就感。但是學了“數據結構”之后可以做什么? 有什么立竿見影的效果? 很少有學生可以回答這些問題。目的不明確會直接導致動力不足,這是現階段要解決的主要問題。
第二,課程內容過于抽象。“數據結構”涉及大量的抽象結構和算法,特別是關于指針、遞歸的使用,很多學生普遍反映難以理解。如何用更有效的可視化手段展示這些抽象的知識? 如何在課前、課中、課后三個階段采用多元融合的教學手段來提升教學效果?是現階段“數據結構”教學中一個很大的挑戰。
第三,代碼能力不足。“數據結構”對代碼能力有較高的要求,因為數據存儲和算法的實現都需要編寫程序來驗證,把抽象的思想變成具體的結果。代碼能力可以說是學習“數據結構”的“看家本領”“敲門磚”。但是現階段,相當一部分學生的代碼能力不夠扎實,通俗來講就是“手跟不上腦子”。有了思路之后,不知道如何去印證和實現,這樣會使“數據結構”的學習流于表面,不能深入挖掘算法的核心,使抽象概念和應用脫節。如何在學習過程中,同步提高學生的代碼能力,是教學改革的一個重要目標[2] 。
在信息技術飛速發展的今天,傳統的“數據結構”教學模式已經不能滿足學生的學習需求。本文提出的基于多平臺融合的多元立體教學方法針對應用型高校本科生的學習“痛點”,融合了超星學習通和希冀Online Judge 兩個平臺,進行了全方位、行之有效的教學改革。
3超星學習通———“ 數據結構” 的“ 自習室”
現階段的教育一直致力于學生自主學習能力的培養,對于抽象的“數據結構”來說,網絡技術的發展和層出不窮的教學資源是課堂教學的有力補充。筆者在教學實踐中主要采用超星學習通作為課前預習、作業發布和提交、在線考試的教學平臺。
3.1超星學習通簡介
超星學習通是由超星集團開發的基于微服務架構打造的課程學習軟件,是目前各大高校廣泛采用的輔助學習平臺,為廣大學子提供了海量的學習資源。
作為課堂教學的有力補充,教師可以通過超星學習通創建“數據結構”在線課程,并批量導入學生信息、組建學習班級、發布課程資源。
通過在該課程平臺發布錄制好的教學視頻和PPT 課件、Flash 動畫等教學資源,供學生預習或復習,如圖2 所示。
3.2基于超星學習通的課前預習
以“數據結構”課程為例,筆者采用嚴蔚敏編寫的“數據結構”(人民郵電出版社)作為教材,從緒論、線性表、棧、隊列、串、數組、樹、二叉樹、圖、查找、排序等幾個知識模塊來劃分章節[3] ,每個知識點錄制大約3~5 分鐘的微課視頻,并插入任務點,在適當的時候以選擇題或者投票的形式進行課堂互動。每個視頻相對獨立又有著內部聯系,可供學生課前預習,并作為課堂教學的有力補充。
對于抽象的算法,比如各種排序算法,除了視頻講解之外,還上傳了可視化模擬視頻,以加深學生對算法思想和過程的理解。除了視頻點播之外,該平臺還支持課件和資源的下載。允許學生評教和在線督導等功能全方位保障了在線教學效果。為了檢驗預習效果,每節課開始展開以小組為單位的討論,自行梳理重點知識和算法,提出需要解決的問題,在課堂上有針對性地解決。
3.3基于超星學習通的作業管理
傳統的作業布置和批改方式由于資源浪費和效率低下,已經不能適應網絡時代的需求。超星學習通提供的無紙化作業和自動批改系統,不僅可以把老師從繁重的作業批改工作中解放出來,還可以實時反饋作業正確性,并對整體作業完成的情況進行可視化統計[4] 。
通過超星學習通的作業管理功能,針對“數據結構”每一章節的主要教學內容,以選擇題、判斷題、簡答題(綜合題和算法設計題均可以以此類型創建)等題型創建作業習題庫,并設置標準答案。在創建結束后可以選擇作業發布到指定的班級,如圖3 所示。學生提交作業后,教師可以在后臺看到作業提交情況,客觀題由系統根據設置好的答案自動批改,主觀題則由教師或助教在線批改[5] ,并進行在線反饋,如圖4所示。
3.4基于超星學習通的在線考試
在線考試是在線教學的一個重要環節。基于超星學習通的“數據結構”在線考試,大大節省了人力物力,使疫情期間的遠程教學手段更加完善。
教師可以采用手動組卷和自動組卷兩種方式來創建試卷[6] ,如圖5 所示。和作業題型類似,教師可以設置單選題、多選題、填空題、判斷題、簡單題等多種題型,并給出標準答案,供系統自動閱卷。對于“數據結構”中的綜合題和算法設計題等答案相對靈活的題型,可以要求學生在紙上完成之后拍照上傳,供教師手動批閱。
4希冀Online Judge———“ 數據結構”的“練兵場”
“數據結構”具有實踐性強的特點,對學生的代碼能力有較高的要求。“數據結構”的實現以及算法的驗證和設計都需要大量的編程練習,可以說,“數據結構”應用能力是由代碼累積起來的。如何有效地進行編程練習,是“數據結構”教學的重要環節。
4.1希冀Online Judge 簡介
為了提高學生的代碼能力,本課程的實踐教學采用鄭州云海科技有限公司開發的希冀Online Judge 程序在線評測系統。該系統支持本地部署、安全穩定以及支持高并發、算法可視化和大數據性能評判。
一直以來,如何避免作業的抄襲都是老師們最頭疼的問題。希冀Online Judge 的在線查重功能可檢測出常量替換、重新排版、標識符重命名、代碼塊重排序、代碼塊內語句重排序、修改注釋、改變表達式中的操作符或者操作數順序、改變數據類型、增加冗余的語句或者變量、表達式拆分、控制結構等價替換,共12種學生最常用到的抄襲手段,是目前最精準的相似性檢測算法之一[7] 。
4.2希冀Online Judge 在“數據結構”中的應用
“數據結構”不依賴于程序設計語言,換言之,用C、Java、Python 等任何一種編程語言都可以實現數據結構的相關算法。希冀Online Judge 平臺支持C、C++、Java、Python、C#、Go、Matlab、Scala 等高級編程語言的自動評判。
在希冀Online Judge 平臺創建教師賬號之后,教師可以批量導入學生賬號信息,并設置好題目,以此讓學生自主完成教師發布的程序設計題目,如圖6 所示。系統會根據學生提交的代碼,自動評判代碼的正確性[8] 。
在希冀Online Judge 中設置題目,需要給出問題描述、輸入形式、輸出形式、樣例輸入、樣例輸出、樣例說明等幾個部分,可以對學生的答題思路進行有效引導,如圖7 所示。
教師可以隨時打開系統,在后臺數據中看到學生的在線狀態、每道題的完成情況和學生的刷題排行榜,如圖8 和圖9 所示。利用希冀Online Judge 平臺,學生可以最大限度地發揮自主學習能力,同時也便于任課教師及時掌握學生的學習情況,以便于隨時調整教學方法和進度。
在設置題目的同時,教師可以給出標程,即每道題的代碼樣例,便于學生在無法解決問題的時候提供參考,如圖10 所示。
希冀Online Judge 的學生刷題數據可以客觀真實地反映其學習態度和能力,可以作為期末測評中平時成績的重要依據。利用平臺,極大地激發了學生們的學習熱情,不僅提高了大家的“數據結構”成績,更是培養了大量的程序設計競賽人才。
5總結
在信息時代,網絡化智能化平臺的使用可以最大限度地發揮學生的主觀能動性,真正讓學生成為教學的主體。超星學習通和希冀Online Judge 相結合給“數據結構”的“教”與“學”帶了更多全新的體驗。學生可以根據自身的能力,并針對自己的薄弱環節,進行有效的自主學習。平臺后臺的數據管理以及作業自動評判系統也在相當程度上減輕了教師的負擔,是“教”與“學”的雙贏。