摘要:數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)相關(guān)專業(yè)的一門核心的關(guān)于培養(yǎng)學(xué)生編程實(shí)踐能力的課程,然而目前數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)課教學(xué)效果不佳,學(xué)生編程能力較弱。作者提出五個(gè)方面的教學(xué)改革措施,希望可以提升學(xué)生編程能力。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);實(shí)驗(yàn)教學(xué);教學(xué)改革;編程能力
中圖分類號(hào):G642.0? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)35-0144-02
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
數(shù)據(jù)結(jié)構(gòu)課程是普通高等院校計(jì)算機(jī)相關(guān)專業(yè)的核心課程,是學(xué)生從傳統(tǒng)的形象思維轉(zhuǎn)向科學(xué)的抽象思維的第一門課程[1]。數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)目標(biāo)是使學(xué)生建立分析問題、使用計(jì)算機(jī)編程解決問題的思維方式,和培養(yǎng)學(xué)生使用計(jì)算機(jī)編程解決的能力。從課程目標(biāo)上看,這不僅是思維方式的學(xué)習(xí),也是提升編程能力的學(xué)習(xí),而數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)課是提升學(xué)生編程能力的關(guān)鍵。目前地方性本科院校的大多數(shù)學(xué)過數(shù)據(jù)結(jié)構(gòu)的學(xué)生的動(dòng)手編程能力并沒有達(dá)到預(yù)期效果,普遍的較差。作者分析目前數(shù)學(xué)結(jié)構(gòu)實(shí)驗(yàn)課程教學(xué)的一些現(xiàn)狀,結(jié)合多年數(shù)據(jù)結(jié)構(gòu)教學(xué)經(jīng)驗(yàn)提出教學(xué)改革的拙見。
1數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)課教學(xué)現(xiàn)狀
1.1實(shí)驗(yàn)學(xué)時(shí)偏少
經(jīng)作者調(diào)查,目前地方性本科院校的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)大綱基本相近,大綱總學(xué)時(shí)為64學(xué)時(shí),其中理論學(xué)時(shí)為48學(xué)時(shí),授課內(nèi)容大致是:線性表、棧和隊(duì)列、串、數(shù)組和廣義表、樹與二叉樹、圖(網(wǎng))、查找和排序等內(nèi)容。理論課學(xué)時(shí)基本足夠,但實(shí)驗(yàn)課學(xué)時(shí)僅為16學(xué)時(shí),明顯不足,僅是教師在實(shí)驗(yàn)課上解答學(xué)生上機(jī)過程中的各種疑問每次課都不夠用。
1.2重理論,輕實(shí)踐
在數(shù)據(jù)結(jié)構(gòu)教學(xué)中,大多數(shù)教師注重理論知識(shí)的講授,而輕視實(shí)驗(yàn)課的教學(xué)。經(jīng)調(diào)查,一般的學(xué)生對(duì)于數(shù)據(jù)結(jié)構(gòu)理論的學(xué)習(xí),大多數(shù)學(xué)生在聽了教師的授課之后都能接受,但是,一旦要將課本上的理論知識(shí)運(yùn)用到實(shí)驗(yàn)中去,大多數(shù)的學(xué)生都被卡住。
1.3實(shí)驗(yàn)課中缺少引導(dǎo)和演示
大部分教師實(shí)驗(yàn)教學(xué)中沒有引導(dǎo)和演示數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)的上機(jī)編程實(shí)驗(yàn)過程,只是給學(xué)生提供了參考程序,并沒有告訴學(xué)生參考程序是如何生產(chǎn)的,這對(duì)于大多數(shù)編程基礎(chǔ)不強(qiáng)的學(xué)生來(lái)說(shuō)是一道巨大的鴻溝,仿佛編程是只可意會(huì)而不可言傳的,學(xué)生最終只得到了“魚”,而沒有得到“漁”,學(xué)生沒有建立起編程的思維,甚至有少數(shù)教師對(duì)于實(shí)驗(yàn)課基本上是讓學(xué)生處于類似“放羊”的自由摸索狀態(tài)。然而地方本科院校的學(xué)生不像重點(diǎn)大學(xué)或一流大學(xué)的學(xué)生那樣具有較強(qiáng)的自學(xué)能力和自控能力,地方本科院校的學(xué)生在自由摸索編程的過程中必然會(huì)遇到一些問題,如果沒有及時(shí)的解決,久而久之學(xué)生學(xué)習(xí)的興趣會(huì)被大大地削減,直到最后的放棄。于是形成了數(shù)據(jù)結(jié)構(gòu)難學(xué)的錯(cuò)覺。
1.4學(xué)生編程基礎(chǔ)差
這是地方性本科院校學(xué)生普遍的問題,在大一時(shí)學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言沒有打下堅(jiān)實(shí)的編程基礎(chǔ),其關(guān)鍵是沒有學(xué)會(huì)計(jì)算機(jī)思維,具體來(lái)說(shuō)是不知道如何把客觀現(xiàn)實(shí)的問題轉(zhuǎn)換成為計(jì)算機(jī)能夠解決的簡(jiǎn)單的重復(fù)的基本步驟。
1.5實(shí)驗(yàn)設(shè)計(jì)不合理
目前大多數(shù)的高校采用的教材都是嚴(yán)蔚敏老師和吳偉民老師所編寫的經(jīng)典教材,大部分學(xué)校也訂了主教材和習(xí)題集,但是在實(shí)驗(yàn)課時(shí)大多數(shù)教師并沒有深入研究習(xí)題集上實(shí)驗(yàn)部分,也沒有精心設(shè)計(jì)和選擇適當(dāng)?shù)膶?shí)驗(yàn)內(nèi)容,部分教師沒有給學(xué)生演示如何上機(jī)實(shí)驗(yàn),更關(guān)鍵的是實(shí)驗(yàn)內(nèi)容沒有由淺入深地讓學(xué)生去學(xué)習(xí)和適應(yīng),導(dǎo)致大部分學(xué)生一遇到上機(jī)實(shí)驗(yàn),便束手無(wú)策、無(wú)從下手。
2 改革措施
2.1線上與線下教學(xué)相結(jié)合[2]
目前主流的授課方式仍是線下的課堂教學(xué),但這種教學(xué)方式不可否認(rèn)地存在著一些不足,教學(xué)資源主要是教科書、教師的PPT、相應(yīng)參考書等,教學(xué)資源匱乏。隨著網(wǎng)絡(luò)應(yīng)用不斷地深入各個(gè)方面,各大高校也開展了線上與線下教學(xué)相結(jié)合的教學(xué)方式。線上教學(xué)方式的出現(xiàn)很好地解決了前述的實(shí)驗(yàn)學(xué)時(shí)不足的問題,教師可以把上機(jī)實(shí)驗(yàn)過程的演示講解,或者在實(shí)驗(yàn)過程中學(xué)生遇到的普遍問題的講解錄制成為視頻發(fā)給學(xué)生觀看。此外,視頻錄制完成后,教師通過回看自己錄制的視頻,不斷地對(duì)講授內(nèi)容進(jìn)行改進(jìn)和優(yōu)化,這對(duì)教師的教學(xué)水平也有較大的提升。
2.2在實(shí)踐中聯(lián)系理論
理論與實(shí)踐是構(gòu)成數(shù)據(jù)結(jié)構(gòu)課程整體的不可或缺的兩個(gè)部分,理論與實(shí)踐是一體的,從實(shí)踐中獲取理論,理論又指導(dǎo)實(shí)踐。拋開了實(shí)踐的理論,就是空談,沒有了理論,實(shí)踐也無(wú)從做起。在數(shù)據(jù)結(jié)構(gòu)的教學(xué)中如果重理論輕實(shí)踐,那么基本上是把理科當(dāng)成文科來(lái)教了,學(xué)生考試結(jié)束也就忘了。對(duì)于學(xué)生來(lái)說(shuō)課本上的知識(shí)還是課本上的,并沒有轉(zhuǎn)化成為學(xué)生的知識(shí)和能力。能力從何來(lái),就是通過把課本上的理論通過實(shí)踐去體會(huì)、去運(yùn)用,從而轉(zhuǎn)化為學(xué)生自身的能力。例如,在線性表的順序存儲(chǔ)表示的代碼中,獲取第i個(gè)元素可以直接使用L.elem[i-1]這樣的方式取得,這體現(xiàn)了順序表的特性之一,隨機(jī)存取。而線性表的鏈?zhǔn)奖硎局袆t不能有這樣的方式得到元素,它必須從鏈表的表頭開始(p=L->next;),然后重復(fù)地執(zhí)行循環(huán)體內(nèi)的p=p->next;并計(jì)數(shù)然后才能取到第i個(gè)元素。只有深入理解代碼表示的含義之后,學(xué)生才能夠體會(huì)到代碼無(wú)處不在體現(xiàn)著數(shù)據(jù)結(jié)構(gòu)的理論思想。
2.3教師引導(dǎo)和演示上機(jī)實(shí)驗(yàn)
在開展實(shí)驗(yàn)課布置實(shí)驗(yàn)任務(wù)時(shí),教師得提供必要的引導(dǎo)和演示,讓學(xué)生在開始進(jìn)行實(shí)驗(yàn)時(shí)有參考和模仿的對(duì)象,學(xué)生學(xué)習(xí)起來(lái)才會(huì)事半功倍。更重要的是,教師自身的實(shí)踐能力要過硬,不僅能把算法代碼敲出來(lái),還要能把算法建立的思路過程演示給學(xué)生,學(xué)生才會(huì)從不斷地模仿提升到獨(dú)立地上機(jī)實(shí)驗(yàn)[3],甚至創(chuàng)新。
2.4建立計(jì)算機(jī)思維的編程邏輯
其實(shí)每門程序設(shè)計(jì)語(yǔ)言的語(yǔ)法都不難掌握,關(guān)鍵是學(xué)生不會(huì)寫算法,或者說(shuō)不會(huì)用計(jì)算機(jī)能夠完成的步驟給寫出來(lái)。針對(duì)這個(gè)問題,作者在授課時(shí),對(duì)于程序的編寫的講解演示時(shí)總是從分析問題開始,引導(dǎo)學(xué)生形成解題思路,再把思路用計(jì)算機(jī)思維的方式用漢字給描述出來(lái),最后再把漢字轉(zhuǎn)換成為代碼,放到集成開發(fā)環(huán)境中運(yùn)行調(diào)試。關(guān)鍵是引導(dǎo)學(xué)生學(xué)會(huì)分析問題,用計(jì)算機(jī)思維描述解決問題的方法,逐漸讓學(xué)生形成計(jì)算機(jī)思維,從而提升學(xué)生的基礎(chǔ)編程能力[4]。
2.5由淺入深漸進(jìn)地開展實(shí)驗(yàn)
開展數(shù)據(jù)結(jié)構(gòu)上機(jī)實(shí)驗(yàn)前,精心地設(shè)計(jì)實(shí)驗(yàn)任務(wù),按照先易后難的漸進(jìn)的方式制定上機(jī)實(shí)驗(yàn)任務(wù)的框架。在任務(wù)框架里把上機(jī)實(shí)驗(yàn)任務(wù)分為三個(gè)等級(jí)。1)驗(yàn)證性實(shí)驗(yàn):給出題目及相應(yīng)的算法,要求學(xué)生自己實(shí)現(xiàn)主函數(shù),在主函數(shù)中要求學(xué)生按相關(guān)要求調(diào)用已給出的算法,完成相應(yīng)程序功能;2)設(shè)計(jì)性實(shí)驗(yàn):給出某數(shù)據(jù)結(jié)構(gòu)相應(yīng)的存儲(chǔ)結(jié)構(gòu),要求學(xué)生在此數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)之上自行設(shè)計(jì)出部分指定功能的算法,并要求學(xué)生在主函數(shù)中進(jìn)行調(diào)用,完成相應(yīng)的程序功能;3)綜合性實(shí)驗(yàn):給出題目,要求學(xué)生分析問題中的數(shù)據(jù),找出數(shù)據(jù)元素,分析數(shù)據(jù)元素之間的關(guān)系,確定相應(yīng)數(shù)據(jù)結(jié)構(gòu),選擇適當(dāng)?shù)拇鎯?chǔ)結(jié)構(gòu),建立該存儲(chǔ)結(jié)構(gòu)之上的相關(guān)算法,在主函數(shù)中調(diào)用編寫出的算法,完成題目要求的功能。近兩年所開設(shè)實(shí)驗(yàn)內(nèi)容如圖1所示。
線性表順序表示的驗(yàn)證性實(shí)驗(yàn)案例,如圖2所示。
一元多項(xiàng)式計(jì)算器的設(shè)計(jì)性實(shí)驗(yàn)案例,如圖3所示。
上機(jī)實(shí)驗(yàn)任務(wù)分了等級(jí)之后,例如原本樹和圖等較為難以理解和學(xué)習(xí)的部分算法便可設(shè)計(jì)成稍微簡(jiǎn)單驗(yàn)證性實(shí)驗(yàn),讓學(xué)生做了驗(yàn)證性的實(shí)驗(yàn),對(duì)算法了進(jìn)一步的理解之后,再進(jìn)行更深入的設(shè)計(jì)性實(shí)驗(yàn)和綜合性實(shí)驗(yàn),對(duì)于較難的知識(shí)也可做到由淺入深的、漸進(jìn)式的學(xué)習(xí)。這對(duì)于學(xué)生學(xué)習(xí)難以理解和學(xué)習(xí)的知識(shí)是非常有幫助的。
上述的教學(xué)改革方法作者應(yīng)用在17級(jí)計(jì)算機(jī)、18 級(jí)數(shù)據(jù)科學(xué)、19級(jí)計(jì)算機(jī)等7個(gè)班級(jí)的教學(xué)過程中,上機(jī)實(shí)驗(yàn)對(duì)比17級(jí)之前的班級(jí)有明顯效果,特別是將上機(jī)實(shí)驗(yàn)任務(wù)分等級(jí)并給出了任務(wù)框架后,學(xué)生自己動(dòng)手做實(shí)驗(yàn)的人數(shù)有了較大的增加,學(xué)生實(shí)驗(yàn)過程中編寫的代碼和運(yùn)行結(jié)果不再像以前的千篇一律。這充分說(shuō)明學(xué)生實(shí)驗(yàn)動(dòng)手能力有了明顯提升。
3結(jié)束語(yǔ)
練好數(shù)據(jù)結(jié)構(gòu)的上機(jī)實(shí)驗(yàn),對(duì)于提高計(jì)算機(jī)類專業(yè)學(xué)生的動(dòng)手編程能力是非常有幫助的。通過線上與線下結(jié)合的教學(xué)方式,強(qiáng)調(diào)理論聯(lián)系實(shí)踐,教師引導(dǎo)演示,建立計(jì)算機(jī)思維邏輯,給出實(shí)驗(yàn)任務(wù)框架由淺入深地開展上機(jī)實(shí)驗(yàn)等方面進(jìn)行教學(xué)改革,對(duì)于提升數(shù)據(jù)結(jié)構(gòu)課程的上機(jī)實(shí)驗(yàn)的作用是非常有效的。雖然數(shù)據(jù)結(jié)構(gòu)的內(nèi)容多年來(lái)沒有太大的改變,但是在提倡應(yīng)用型人才的時(shí)代更注重學(xué)生的動(dòng)手實(shí)踐能力,教師的教學(xué)方式和自身的能力也得不斷地改革和進(jìn)步。
本文針數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)課的一些現(xiàn)狀提出了幾個(gè)方面的教學(xué)改革建議,希望在教學(xué)中進(jìn)一步提升學(xué)生的動(dòng)手編程能力。
參考文獻(xiàn):
[1] 李冬梅,孟偉.“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)改革與教材建設(shè)[J].計(jì)算機(jī)教育,2012(14):38-41.
[2] 任雪萍.基于線上線下融合的數(shù)據(jù)結(jié)構(gòu)教學(xué)改革[J].計(jì)算機(jī)教育,2019(7):5-9.
[3] 唐型基,吳小平,周長(zhǎng)敏.以培養(yǎng)實(shí)踐能力為核心的《數(shù)據(jù)結(jié)構(gòu)》“三步論”教學(xué)法研究[J].凱里學(xué)院學(xué)報(bào),2013(03):89-91.
[4] 唐型基,周長(zhǎng)敏.基于“計(jì)算思維”的程序設(shè)計(jì)方法在《C語(yǔ)言程序設(shè)計(jì)》教學(xué)中的運(yùn)用[J].電腦知識(shí)與技術(shù),2017(15):77-78.
【通聯(lián)編輯:朱寶貴】