趙 越 章小莉
摘要:數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的重要核心基礎(chǔ)課程,其實(shí)踐教學(xué)環(huán)節(jié)是教學(xué)過程的必要組成部分。本文針對數(shù)據(jù)結(jié)構(gòu)課程的實(shí)踐教學(xué)環(huán)節(jié),對目前存在的問題以及教學(xué)思路和教學(xué)方法等方面進(jìn)行了較為系統(tǒng)的分析,并在具體教學(xué)過程中進(jìn)行了一些有益的探索,對教學(xué)改革提出了一些設(shè)想。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);實(shí)踐教學(xué);模式
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的重要核心基礎(chǔ)課程,是計(jì)算機(jī)學(xué)科的算法理論基礎(chǔ)和軟件設(shè)計(jì)的技術(shù)基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)課程中所討論的知識內(nèi)容和技術(shù)方法與思路,不僅培養(yǎng)學(xué)生站在計(jì)算機(jī)角度認(rèn)識數(shù)據(jù)和數(shù)據(jù)相關(guān)操作的關(guān)系,而且對進(jìn)一步學(xué)習(xí)計(jì)算機(jī)學(xué)科的后續(xù)課程,以及從事軟件的開發(fā),都具有極其重要的作用。
但是,由于數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的各種組織形式,以及建立在這些結(jié)構(gòu)之上的各種操作及其實(shí)現(xiàn),其所研究的對象——數(shù)據(jù)元素及其之間的關(guān)系都是從現(xiàn)實(shí)生活中抽象出來的,在被組織成不同形式時,只研究其抽象出來的本質(zhì)性的概念和關(guān)系,而忽略其本身所代表的實(shí)際背景,因此學(xué)生在學(xué)習(xí)的過程中常常感覺困難重重。學(xué)生普遍反映:本課程理論抽象,難以理解,更難以應(yīng)用于實(shí)踐;課程內(nèi)容繁多,難以把握要點(diǎn);即使勉強(qiáng)在課堂上聽懂,在有關(guān)算法的設(shè)計(jì)及程序編寫時仍然無從下手,等等。
數(shù)據(jù)結(jié)構(gòu)課程的上述特點(diǎn)決定了實(shí)踐教學(xué)環(huán)節(jié)是教學(xué)過程的必要組成部分,只有將實(shí)踐教學(xué)和課堂教學(xué)緊密結(jié)合,互為補(bǔ)充,才能在最大程度上幫助學(xué)生盡快掌握課程知識,并更好地應(yīng)用于實(shí)踐,能夠編寫出結(jié)構(gòu)清楚、正確易讀的程序,達(dá)到知識和技能兩方面的共同提高?;诖?我們在實(shí)踐教學(xué)活動中一直致力于實(shí)踐教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段的探索與改革。
1對實(shí)踐教學(xué)中目前存在問題的認(rèn)識
數(shù)據(jù)結(jié)構(gòu)是一門專業(yè)基礎(chǔ)課,更是一門專業(yè)理論課,它不僅為操作系統(tǒng)、數(shù)據(jù)庫原理、編譯原理等重要后繼課程提供必要的知識儲備,同時,學(xué)習(xí)本課程的過程也是進(jìn)行復(fù)雜程序設(shè)計(jì)的訓(xùn)練過程,僅僅是在課堂上“聽”和“讀”遠(yuǎn)遠(yuǎn)不夠。目前本課程雖然開設(shè)有實(shí)驗(yàn)課15學(xué)時,但存在的問題是:
(1) 題目固定,可選擇范圍小。對于編程能力弱的學(xué)生來說,他們解決現(xiàn)在的題目要求有困難,以至于對實(shí)驗(yàn)缺乏興趣與學(xué)習(xí)動力;對學(xué)習(xí)成績好的學(xué)生,又因?yàn)轭}目難度不高,缺少挑戰(zhàn)性,也喪失學(xué)習(xí)熱情。
(2) 題目老套,缺少變化。數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)存在的一大問題就是實(shí)驗(yàn)抄襲現(xiàn)象嚴(yán)重。每年實(shí)驗(yàn)題目基本沒有任何變化,學(xué)生很容易得到以往的實(shí)驗(yàn)程序和報告,稍作改動就應(yīng)付了事。
(3) 實(shí)驗(yàn)報告不規(guī)范,缺少對科技論文寫作的必要訓(xùn)練。在計(jì)算機(jī)課程體系中,數(shù)據(jù)結(jié)構(gòu)開課較早,前期課只有“計(jì)算機(jī)導(dǎo)論”、“高級語言程序設(shè)計(jì)”。在C語言的學(xué)習(xí)過程中,僅僅關(guān)注于某個知識點(diǎn)的理解和掌握,學(xué)生沒有接觸過對稍大規(guī)模問題的整體分析、解決以及形成最終報告的訓(xùn)練。因此,在數(shù)據(jù)結(jié)構(gòu)的實(shí)踐教學(xué)中,不僅要解決對課堂知識的消化理解,同時還要培養(yǎng)訓(xùn)練學(xué)生對于某個實(shí)際問題的綜合分析解決能力,從而為進(jìn)行復(fù)雜程序設(shè)計(jì)打下良好的基礎(chǔ)。
2對實(shí)踐教學(xué)思路的分析
數(shù)據(jù)結(jié)構(gòu)課程有其鮮明的特點(diǎn),其探討的重點(diǎn)是程序設(shè)計(jì)的常用方法和技巧,并在在理論上有所抽象和提煉。實(shí)踐教學(xué)環(huán)節(jié)的重點(diǎn)應(yīng)當(dāng)是借助對某些實(shí)際問題的分析和求解,使得學(xué)生加深對算法思路的分析與理解,特別是對某些經(jīng)典算法,應(yīng)能深刻理會,理論聯(lián)系實(shí)際。但同時,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)又離不開程序設(shè)計(jì)語言,必須以某種程序設(shè)計(jì)語言作為學(xué)習(xí)和描述的工具,要求學(xué)生要有比較扎實(shí)的計(jì)算機(jī)語言基礎(chǔ)。從學(xué)生的實(shí)際情況來看,經(jīng)過大一一學(xué)期的程序設(shè)計(jì)語言學(xué)習(xí),對語言的掌握能夠達(dá)到數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)要求的學(xué)生并不多。這就不免在教學(xué)過程中往往糾纏于特定程序設(shè)計(jì)語言的語法規(guī)則與細(xì)節(jié),使得學(xué)生覺得數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)成了某門計(jì)算機(jī)語言的復(fù)習(xí)和訓(xùn)練課。
因此,我們認(rèn)為實(shí)踐教學(xué)環(huán)節(jié)首先應(yīng)和課堂教學(xué)緊密配合,分工協(xié)作,為學(xué)生掃清計(jì)算機(jī)語言方面的障礙。在課堂教學(xué)中,教師應(yīng)將更多的注意力放在算法思路的分析與理解,算法實(shí)現(xiàn)過程的形成上,而在實(shí)踐教學(xué)環(huán)節(jié),針對學(xué)生的語言弱項(xiàng),應(yīng)當(dāng)對程序設(shè)計(jì)語言的一些必要知識點(diǎn)進(jìn)行系統(tǒng)回顧,例如指針、結(jié)構(gòu)體、函數(shù)及調(diào)用等。而且在上機(jī)時,教師更要針對學(xué)生的個別問題進(jìn)行指導(dǎo)。
其次,實(shí)踐教學(xué)要注重激發(fā)學(xué)生的學(xué)習(xí)興趣。我們通過精心設(shè)計(jì)實(shí)驗(yàn)題目,讓學(xué)生在實(shí)踐過程中體會解決問題的精妙之道,體味成功的喜悅,從而對學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)產(chǎn)生濃厚的興趣,和課堂教學(xué)產(chǎn)生良性的互動循環(huán),教學(xué)效果很好,得到了學(xué)生的高度評價。
第三,對學(xué)生計(jì)算機(jī)思維的訓(xùn)練是一個持久的過程,不僅存在于數(shù)據(jù)結(jié)構(gòu)課程中,更需要貫穿到學(xué)生的整個學(xué)習(xí)階段。我院堅(jiān)持“編程訓(xùn)練不斷線”的做法,在各個學(xué)期均安排了相應(yīng)的計(jì)算機(jī)實(shí)習(xí)訓(xùn)練課程,這為我們在實(shí)踐中不斷提高學(xué)生編程能力提供了良好的平臺。結(jié)合計(jì)算機(jī)實(shí)習(xí),我們在其中設(shè)計(jì)了大量的需要數(shù)據(jù)結(jié)構(gòu)知識的題目,這樣即使是在課程結(jié)束后,學(xué)生仍然可以在實(shí)踐中不斷加深對所學(xué)知識的理解。
3對實(shí)踐教學(xué)模式的設(shè)計(jì)與探索
針對數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)中存在的問題,結(jié)合對教學(xué)思路的分析,我們在實(shí)踐中嘗試了多種教學(xué)方法,形成了具有自己特色的實(shí)踐教學(xué)模式,取得了一定的效果,總結(jié)如下:
3.1實(shí)驗(yàn)題目分級分難度
鑒于實(shí)踐課學(xué)時有限,而數(shù)據(jù)結(jié)構(gòu)教學(xué)內(nèi)容繁多,為了在有限的學(xué)時內(nèi)安排足夠的訓(xùn)練,滿足不同層次學(xué)生的需要,我們進(jìn)行了實(shí)驗(yàn)題目的分級改革。具體做法是針對某一個實(shí)驗(yàn),給出4~6個不同的實(shí)驗(yàn)題目,并根據(jù)難度分級,設(shè)定相應(yīng)的分值。每次實(shí)驗(yàn)滿分為5分,各題目的分值從3分到5分不等。學(xué)生可以根據(jù)自己的學(xué)習(xí)狀況和對相應(yīng)知識的掌握能力,任意選做一道題目。教師在評分時,不僅要根據(jù)題目的難易程度,還要結(jié)合學(xué)生的完成情況綜合考評。如果一個編程能力較差的學(xué)生選做了比較簡單的題目,但是態(tài)度積極認(rèn)真,獨(dú)立完成實(shí)驗(yàn),并且報告清晰完整,體現(xiàn)出對實(shí)驗(yàn)中涉及知識點(diǎn)的透徹理解和掌握,那么他一樣可以獲得較高的實(shí)驗(yàn)分?jǐn)?shù)。
例如,針對線性表實(shí)驗(yàn),我們設(shè)計(jì)了如下的5道實(shí)驗(yàn)題目:
題目1:多項(xiàng)式相加、減操作的實(shí)現(xiàn)。要求輸出參與運(yùn)算的多項(xiàng)式以及計(jì)算結(jié)果。(3分)
題目2:多項(xiàng)式相加、減和乘操作的實(shí)現(xiàn)。要求輸出參與運(yùn)算的多項(xiàng)式以及計(jì)算結(jié)果。(4分)
題目3:第一種約瑟夫問題。假設(shè)有8個人圍圈而坐,現(xiàn)在從第1人開始數(shù)數(shù),數(shù)到3的人出列,緊接著的后續(xù)人又從1開始數(shù)數(shù),到3出列,如此重復(fù)下去,直到全體人員出列。編程實(shí)現(xiàn)新出列的數(shù)字序號輸出。(3分)
題目4:第二種約瑟夫問題。假設(shè)有n個人,每個人有一個要求后續(xù)人數(shù)數(shù)的數(shù)字,且起始開始數(shù)數(shù)人員可以隨意指定,其他均按第一種問題處理。試編寫程序?qū)崿F(xiàn)第二種約瑟夫問題。(4分)
題目5:制作一個“記事本”,界面如圖1所示。要求首先在顯示窗口按行顯示可以使用的若干條信息的摘要,利用上下翻屏按鈕可以順序查看各條信息的摘要,當(dāng)按下查看按鈕時,則被選中信息在顯示窗口完全顯示。由于被使用的信息條數(shù)可以隨意增、刪、改,最小條數(shù)不少于100,所以要求信息在后臺要使用線性表結(jié)構(gòu)來存儲。(5分)
注意:自定義所用線性表的存儲結(jié)構(gòu),可以是順序的、鏈?zhǔn)降摹㈧o態(tài)的、循環(huán)的、雙向的等。
實(shí)踐證明,采用這種方法,可以在有限的實(shí)踐課時里容納盡可能多的實(shí)驗(yàn)題目,學(xué)生的選擇余地多了,學(xué)習(xí)能力弱的學(xué)生可以通過較易的題目獲得基礎(chǔ)訓(xùn)練,對所學(xué)知識有基本的掌握和理解。而學(xué)習(xí)能力較強(qiáng)的學(xué)生可以通過選做難度大的題目檢驗(yàn)自己的所學(xué),獲得更大的提高。
3.2規(guī)范實(shí)驗(yàn)報告,明確寫作要求
實(shí)踐課中存在的一個普遍問題是學(xué)生的實(shí)驗(yàn)報告很不規(guī)范,大多數(shù)學(xué)生的報告是思想?yún)R報,口語色彩濃重,不符合科技論文的寫作要求。有很多同學(xué)即使課堂知識理解得很好,實(shí)驗(yàn)完成也不錯,但是在報告的寫作上,總是不得要領(lǐng),無從下手。針對這一現(xiàn)象,我們特別加強(qiáng)了對實(shí)驗(yàn)報告的寫作指導(dǎo),除了在實(shí)踐課上撥出專門課時集體講授實(shí)驗(yàn)報告的寫作方法之外,還在教學(xué)網(wǎng)站上給出了實(shí)驗(yàn)報告的規(guī)范和范例。第一次實(shí)驗(yàn)完成后,及時批改實(shí)驗(yàn)報告,針對其中存在的問題,匯總分類,避免以后再出現(xiàn)類似的問題。
經(jīng)過一學(xué)期的訓(xùn)練,在課程結(jié)束時,學(xué)生的實(shí)驗(yàn)報告基本合格,大多數(shù)同學(xué)都初步掌握了報告的寫作方法,能夠有條理、分步驟地闡述一個問題的解決過程。
3.3精心設(shè)計(jì)實(shí)驗(yàn)題目
實(shí)驗(yàn)題目的好壞直接影響著實(shí)踐教學(xué)的效果,我們對每一年實(shí)驗(yàn)題目的選擇都非常重視。一方面,任課教師在平時的教學(xué)工作中,有意識地搜集新的實(shí)驗(yàn)題目充實(shí)到備選題目庫中,經(jīng)過教學(xué)小組討論后,選擇合適的題目作為新的實(shí)驗(yàn)題目。另一方面,在整個教學(xué)進(jìn)程中,我們不斷觀察學(xué)生對實(shí)驗(yàn)題目的反應(yīng),并將此作為寶貴的經(jīng)驗(yàn),體現(xiàn)在下一輪的教學(xué)活動中。
例如,針對圖這種數(shù)據(jù)結(jié)構(gòu)我們設(shè)計(jì)了如下的實(shí)驗(yàn)題目:
請查詢你所學(xué)專業(yè)四年全部課程先后續(xù)關(guān)系,編程求出課程安排的某種可用排課序列(拓?fù)渑判?。(5分)
在學(xué)期末課程即將結(jié)束的最后一次實(shí)驗(yàn)中,我們設(shè)計(jì)了針對具體實(shí)際問題的實(shí)驗(yàn)題目,這些題目較有難度,以檢驗(yàn)學(xué)生經(jīng)過一學(xué)期的學(xué)習(xí),綜合運(yùn)用所學(xué)知識解決問題的能力:
題目1:對英文字典中常用的500個單詞進(jìn)行索引,使得可以快速實(shí)現(xiàn)單詞查找(B-樹/鍵樹)。(6分)
題目2:編程制作耗子走迷宮演示程序,完成耗子從入口進(jìn)入迷宮,經(jīng)過在迷宮中的摸索,從出口逃逸的全過程,以教會小孩如何走迷宮(矩陣)。(6分)
條件:某一點(diǎn)可以有4方向或8方向可走兩種選擇方案。
提示:用數(shù)組表示迷宮、某點(diǎn)可走的4 / 8個方向,利用棧存儲行走過的線路。
3.4結(jié)合課程群建設(shè),相關(guān)課程融會貫通
數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)科學(xué)體系的重要組成部分,在計(jì)算機(jī)的課程體系中,數(shù)據(jù)結(jié)構(gòu)開課時間較早,前期課只有“計(jì)算機(jī)導(dǎo)論”和“高級語言程序設(shè)計(jì)”,學(xué)生對計(jì)算機(jī)認(rèn)識不深,給教學(xué)帶來一定壓力。除了在教學(xué)過程中繼續(xù)加強(qiáng)學(xué)生的計(jì)算機(jī)知識之外,我們結(jié)合課程群的建設(shè),注重相關(guān)課程的銜接溝通,先開課為后續(xù)課做好充分的知識準(zhǔn)備,使學(xué)生在學(xué)習(xí)時能夠循序漸進(jìn),構(gòu)建起完整的計(jì)算機(jī)知識體系。有了扎實(shí)的理論基礎(chǔ),學(xué)生在動手能力方面也有了較大的提高。
3.5充分利用網(wǎng)絡(luò)資源
隨著教學(xué)條件的不斷發(fā)展和完善,網(wǎng)絡(luò)已經(jīng)成為計(jì)算機(jī)教學(xué)不可缺少的組成部分。如何充分利用網(wǎng)絡(luò)資源為教學(xué)服務(wù)是我們在教學(xué)改革中不斷思考和探索重要課題之一。利用學(xué)院建設(shè)的BB平臺,我們建設(shè)了數(shù)據(jù)結(jié)構(gòu)教學(xué)網(wǎng)站,并利用其作業(yè)上傳的功能,要求學(xué)生按時提交實(shí)驗(yàn)報告。網(wǎng)絡(luò)的強(qiáng)大功能不僅節(jié)約了資源,也利于教師及時批改實(shí)驗(yàn)報告,針對報告中出現(xiàn)的問題,學(xué)生和老師可以及時互動交流,使得學(xué)習(xí)中的疑惑得到盡快解決。
總之,數(shù)據(jù)結(jié)構(gòu)課程的實(shí)踐教學(xué)環(huán)節(jié)在訓(xùn)練學(xué)生編程能力和邏輯思維能力方面的不可替代性決定了它是值得每一位任課教師認(rèn)真思索和不斷創(chuàng)新的過程。如何切實(shí)加強(qiáng)實(shí)踐教學(xué)的效果,使之更好地與課堂教學(xué)相結(jié)合,并進(jìn)而對其他計(jì)算機(jī)課程教學(xué)產(chǎn)生有益的借鑒作用將是我們一直努力探索的教研課題。
參考文獻(xiàn):
[1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,2001.
[2] Mark Allen Weiss(美).數(shù)據(jù)結(jié)構(gòu)與算法分析[M].北京:機(jī)械工業(yè)出版社,2006.
[3] 龔紅仿,楊宏杰,程思蔚. 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)課教學(xué)改革與實(shí)踐[J]. 計(jì)算機(jī)教育,2007(12).
Practice Teaching Model of Data Structure
ZHAO Yue, ZHANG Xiao-li
(Computer Science and Technology Department of Beijing Electronic Science and Technology Institute, Beijing 100070, China)
Abstract: Data Structure is one of principal courses in computer science, and practice training is significant part in teaching. The paper focuses on practice teaching model of data structure, analyzes the existent problem and method of teaching. In the end, tentative plan of educational reform is mentioned.
Key words: data structure; practice teaching; model