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