喬國榮
遼寧輕工職業(yè)學院,遼寧 大連 116100
數(shù)據(jù)結(jié)構(gòu)課程是高職計算機專業(yè)課程體系中公認的一門專業(yè)核心課程,在計算機相關(guān)專業(yè)課程體系中起著承上啟下的作用,也是計算機程序設計的重要基礎(chǔ)課程。該門課程主要研究的是數(shù)據(jù)元素的邏輯結(jié)構(gòu)以及數(shù)據(jù)元素的存儲結(jié)構(gòu),從而設計出針對這些數(shù)據(jù)元素的算法以及實現(xiàn)方法,具有較強的抽象性和綜合性。很早以前許多教材針對數(shù)據(jù)結(jié)構(gòu)算法的實現(xiàn)采用偽代碼表示,因不能做到所見即所得,學生學習停留在云里霧里,所以數(shù)據(jù)結(jié)構(gòu)是公認的比較難學的一門課程。近年來,為了讓學生方便理解學習內(nèi)容,許多數(shù)據(jù)結(jié)構(gòu)課程教材的作者采用C、C++或者Java語言把相關(guān)算法描述出來,實現(xiàn)了所見即所得,但還是不能非常直觀地表達。隨著人工智能時代的到來,Python語言在人工智能領(lǐng)
收稿日期:2022-01-18
作者簡介:喬國榮(1970—),女,遼寧法庫人,教授,碩士。域得到廣泛應用,因此筆者試圖運用Python語言來實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的各個算法,并借用pythontutor.com網(wǎng)站來動態(tài)演示數(shù)據(jù)在內(nèi)存中的演變過程,將抽象問題形象化,更加方便學生的理解和學習。從這個角度出發(fā),研究數(shù)據(jù)結(jié)構(gòu)課程基于Python語言的線上線下混合教學模式具有極其深遠的意義。
目前,數(shù)據(jù)結(jié)構(gòu)課程在各高校的教學大多數(shù)情況下還是采用以教師為主,教學以傳統(tǒng)的多媒體課件講解為主要教學手段。盡管在數(shù)據(jù)結(jié)構(gòu)課堂教學中引入了案例式、啟發(fā)式等教學手段,但是其學習內(nèi)容枯燥和難于理解確實給高職學生的學習帶來了很多的障礙;又受到課時的限制,絕大多數(shù)任課教師為了完成教學計劃,在整個教學過程中,對課程中的重點內(nèi)容也不能做到細致入微地講解,因此,根本無法激起學生學習的興趣,更別說讓學生自主學習了,教學效果不盡如人意。
為了改變數(shù)據(jù)結(jié)構(gòu)課程的教學現(xiàn)狀,許多老師都進行了相應的教學改革。胡偉平[1]認為數(shù)據(jù)結(jié)構(gòu)作為軟件工程專業(yè)最核心的專業(yè)基礎(chǔ)課之一,傳統(tǒng)教學以理論教學為主,學習枯燥,課程結(jié)束之后學生普遍反映能理解理論,但是寫不出程序。為了改變這種狀況,一些高校使用線上線下混合式教學方法對教學內(nèi)容進行了重構(gòu),對教學過程進行了重新設計,將MOOC、云班課、拼題A網(wǎng)站等教學輔助平臺整合在一起,改革了教學環(huán)節(jié),取得了良好的教學效果。周艷聰?shù)萚2]提到數(shù)據(jù)結(jié)構(gòu)課程在計算機軟件等專業(yè)中占據(jù)著核心地位,近幾年更是成為各個高校計算機專業(yè)考研的必修課程,其地位不言而喻。由于不同層次的學生對課程資源要求不同,對課程的理解和掌握程度也不同,各高校的學習平臺依據(jù)本校學生實際情況而構(gòu)建,更方便本校學生或者同類別學校學生使用。滕秀花[3]針對傳統(tǒng)教學中存在的問題,結(jié)合工程認證人才培養(yǎng)目標,充分應用學校提供的網(wǎng)絡教學平臺進行課程建設,深入開展線上線下相結(jié)合的混合式教學模式。陳俊仁[4]結(jié)合數(shù)據(jù)結(jié)構(gòu)課程當前的教學狀況,秉承“以學生為中心,以有效教學見長”的教學理念,融合線上和線下教學模式,提出了基于課堂派的數(shù)據(jù)結(jié)構(gòu)教學改革。李莉等[5]通過實踐證明,線上線下混合教學模式下的數(shù)據(jù)結(jié)構(gòu)課堂教學改革,很大程度上激發(fā)了學生的學習興趣,調(diào)動了學生的學習積極性。上述研究者僅從線上線下混合教學模式出發(fā)討論如何改革數(shù)據(jù)結(jié)構(gòu)課程的教學方法,但是沒有提到用Python語言實現(xiàn)算法。基于上述研究現(xiàn)狀,筆者提出了基于Python語言實現(xiàn)數(shù)據(jù)結(jié)構(gòu)課程線上線下混合的教學模式。
隨著信息技術(shù)、網(wǎng)絡技術(shù)的快速發(fā)展,以及師生對于移動終端的大規(guī)模應用,學生學習以及教師教學的方式已經(jīng)不再局限于課堂上進行[6-10],而是隨時隨地都可以利用移動設備快速地進入到學習狀態(tài)。一場新冠病毒肺炎疫情更是把這種學習模式應用到極致:學生們邊進行核酸檢測,邊看手機進行學習。微視頻教學記錄了教師在整個課堂教學過程中應用多媒體教學手段圍繞某個知識點或者教學環(huán)節(jié)而展開的教學過程,該種教學方式具有主題突出、動畫演示數(shù)據(jù)在內(nèi)存中的變化,視頻短小精悍等諸多特點。基于超星平臺多媒體微課混合式教學分為課前準備、課中教學、課后作業(yè)總結(jié)拓展三個階段,是一種交互式三段反轉(zhuǎn)課堂教學模式,并采用線上線下相結(jié)合的方式進行。
課前準備階段,以學生自主學習為主,教師輔導為輔。這個階段教師需要將該次課所要講解的課程教學內(nèi)容進行梳理,并將所教授的知識要點進行分解細化,同時根據(jù)各知識要點之間的關(guān)聯(lián)性和邏輯性,并將各知識點進行精心組織,編排成許多相對獨立又彼此相關(guān)的教學單元,并精心為學生設計了自主學習任務菜單,最終制作完成每個單元的微課視頻,將這些內(nèi)容放在超星學習平臺上(見圖1)。學生在課前按照任務菜單的要求完成課前學習,通過PPT課件學習、微課視頻學習、線上提問、同學們討論交流等方式自主預習相關(guān)知識點。同時,教師也能在該網(wǎng)絡教學平臺,通過移動端或者電腦端有效監(jiān)督學生的課前學習進度,及時檢查學生預習效果。

圖1 課前準備階段
經(jīng)過了課前準備階段,學生完成了自主學習之后,為教師在課堂教學階段留下了更加充裕的時間,得以在教學階段進行詳細講解(見圖2),突出重點,著重解決難點問題以及個別輔導,并且有針對性地開展小組討論,充分調(diào)動了學生們的學習積極性,高效地完成知識的傳授過程。

圖2 疫情期間運用騰迅課堂線上授課頁面
到課后作業(yè)總結(jié)拓展階段,同學們需要完成教師布置的相關(guān)作業(yè)、單元測試等,消化課堂上所學內(nèi)容,并進一步啟發(fā)學生的邏輯思維能力和綜合應用能力(見圖3)。

圖3 作業(yè)實訓拓展
高職教育教學要注重理實一體,突出實踐教學,緊跟企業(yè)的用人要求制定人才培養(yǎng)方案,確定授課內(nèi)容。隨著人工智能的發(fā)展,Python語言在人工智能領(lǐng)域的使用異軍突起,因此筆者對數(shù)據(jù)結(jié)構(gòu)課程教學內(nèi)容進行了調(diào)整,算法設計采用Python語言來實現(xiàn)。為了方便學生們的理解,運用pythontutor.com網(wǎng)站提供的動畫演示數(shù)據(jù)在內(nèi)存中的存儲變化過程,使學生們耳目一新,充分調(diào)動了他們的學習積極性。采用這種動畫教學手段,能夠更好地激發(fā)學生自主學習的興趣,形象化地幫助學生更好地理解數(shù)據(jù)結(jié)構(gòu)中各種抽象算法,寓教于樂,培養(yǎng)學生動手實踐能力,充分體現(xiàn)職業(yè)教育技術(shù)技能型人才培養(yǎng)特點。
為了更好地描述數(shù)據(jù)結(jié)構(gòu)課程混合教學模式的運行過程,本文以數(shù)據(jù)結(jié)構(gòu)課程混合教學過程中“線性鏈表”的建立教學為例,闡述如何完成基于超星平臺的多種手段共同進行的多媒體動畫微課線上線下混合教學模式的教學設計。
設計算法并全代碼編程實現(xiàn)是為了讓學生更好地理解線性鏈表的應用。為了讓學生們方便理解線性鏈表的概念、性質(zhì),也為了學生們能快速掌握線性鏈表的存儲結(jié)構(gòu),從而完成數(shù)據(jù)類型定義,最終理解并設計線性鏈表的基本算法,筆者歸納總結(jié)出“線性鏈表”的教學重點是鏈表的結(jié)點定義,教學難點是有關(guān)線性鏈表的算法真正代碼實現(xiàn)。
根據(jù)課程標準所設計的教學目標要求,任課教師課前依據(jù)課程標準要求,有針對性地對教學內(nèi)容進行梳理,筆者劃分出6個需要學生們掌握的相對獨立的知識點:(1)線性鏈表的定義及性質(zhì);(2)線性鏈表的Python結(jié)點定義;(3)線性鏈表的最基本運算算法之一設計:建立鏈表;(4)線性鏈表的基本運算算法之二設計:輸出鏈表;(5)線性鏈表的基本運算算法之三設計:插入結(jié)點;(6)線性鏈表的基本運算算法之四設計:刪出結(jié)點。然后針對每個知識點編定腳本、設計并制作動畫,之后教師演示動畫并且錄制相應的教學視頻。根據(jù)觀察分析,高職學生保持最佳注意力時間平均15分鐘左右,因此,我們將每段動畫演示講解視頻錄制時間控制在15分鐘之內(nèi)。依據(jù)教學環(huán)節(jié)需要,整理出每個知識點對應的在線測試題,學生在線看完教學視頻以后自行測試學習情況。
學生經(jīng)過了前面課前準備階段的自主學習,絕大多數(shù)同學基本上掌握了將近40%的教學內(nèi)容,沒有掌握的教學內(nèi)容學生們會帶著問題來聽教師線下課堂教學。這種教學方式讓學生有充足的時間對線性鏈表的存儲結(jié)構(gòu)以及相應的運算算法有一個全面的理解。由于學生已經(jīng)對線性鏈表的基本操作算法有了大概的了解,但是具體實踐還是有一定的困難。因此,筆者線下教學也采用了pythontutor.com網(wǎng)站邊輸代碼邊動態(tài)演示數(shù)據(jù)在內(nèi)存中的表示方法(如圖4所示)。該圖演示了類似于C語言的結(jié)點類型定義形式。因為Python沒有動態(tài)分配存儲空間的函數(shù),因此形象地定義了結(jié)點類,學生學習起來更加直觀、生動,所見即所得。學生邊學邊實踐,并且小組內(nèi)可以相互探討互相查錯修改,全程教師掌控整個課堂,教學效果很好。

圖4 定義結(jié)點的內(nèi)存動畫演示過程
課后線上復習總結(jié)階段是檢驗學生是否完全掌握所學知識點的一個非常重要的教學環(huán)節(jié)。在該環(huán)節(jié),教師結(jié)合授課內(nèi)容以及學生掌握情況布置相應的實訓與作業(yè),幫助同學們鞏固所學的知識。同時教師也會根據(jù)學生的學習狀況,對教學內(nèi)容進行總結(jié),改進教學方法,優(yōu)化教學資源。
線上線下混合教學模式采用過程性評價與總結(jié)性評價相結(jié)合的形式,具體考核方案(見表1)如下:總成績=期末考試(50%)+課前(10%)+課中(30%)+課后(10%)。

表1 數(shù)據(jù)結(jié)構(gòu)課程考核方式統(tǒng)計表
經(jīng)過實踐,基于Python語言的數(shù)據(jù)結(jié)構(gòu)課程線上線下混合教學模式改革與實踐,針對傳統(tǒng)課堂教學的不足進行了改革,通過動畫教學、視頻教學、反轉(zhuǎn)課堂等教學手段,有效地激發(fā)了學生對該課程的學習興趣,課程教學也取得了較好的效果,但有些方面還需要進一步改進完善。例如,教學資源的利用應適可而止,應將精力用于設計形象化的動畫教學,寓教于樂,這樣可以有效地激發(fā)學生學習興趣,并持續(xù)維持學習的熱情。在教學資源建設方面,超星平臺也有它的局限性,限制了很多學生個性化的發(fā)揮。還有很多其他很好的教學平臺可供我們使用,尤其在實踐教學的設計上,有些平臺設計的功能更加優(yōu)秀。除此之外,教學內(nèi)容的選擇上是應該選擇最適合高職學生學習的教學內(nèi)容,有針對性地制作高質(zhì)量微視頻等教學資源,但也不能畫地為牢,也要考慮學生日后的就業(yè)和進一步學習的需要。線上的教學內(nèi)容設計應該高于高職的教學標準,但也應注重職業(yè)教育特色,注重校企合作開發(fā),要與企業(yè)真實場景的實踐有機結(jié)合,為學生日后就業(yè)以及進一步學習打下堅實的基礎(chǔ)。