《資料結構》實驗教學方法探討的教育論文

《資料結構》實驗教學方法探討的教育論文

  摘要:《資料結構》是計算機專業的專業基礎課程,具有很強的實踐性。本文結合筆者在課程教學的一些體會,從實驗教學設計、實驗教學手段等方面對《資料結構》實踐教學方法提出自己的一些看法和建議。

  關鍵詞:資料結構實驗教學

  引言

  《資料結構》是計算機專業課程體系的核心課程之一。課程主要講述各種資料的邏輯結構、物理結構及基本操作的實現演算法以及資料查詢、排序演算法,並對各種演算法進行效能分析和比較。

  根據調查發現,目前大多數院校《資料結構》課程教學現狀不容樂觀。學生普遍反映課程學習比較困難,教師也感覺教學效果不理想。實驗教學更是因為程式設計語言基礎不紮實、課程內容太抽象等原因而較難開展,有些學校因此而縮短學時甚至不開設實驗。一些專家和教師就課程實驗教學改革已經提出了一些具體的教學方法,如案例驅動、課題答辯等。這些方法都具有比較重要的借鑑價值,但某些文章過於片面的強調某一種教學方法。筆者認為根據學生的實際情況完善教學設計、加強教學管理,透過行之有效的教學手段使學生學有所獲才是根本。下面結合自己的實際教學工作,談談對資料結構實驗教學方法的認識。我校《資料結構》課程理論學時48,實踐學時16,教材選用嚴蔚敏的《資料結構(C語言版)》)。

  1講好理論第一課,明確課程性質

  僅從課程名稱來看,《資料結構》就很容易被誤解為實踐性不強的理論課。講好第一堂理論課非常重要,應讓學生明確課程性質並理解實踐學習的重要性。

  結合程式設計語言、作業系統等課程內容,筆者設計了一些學生比較熟悉並容易理解的應用例項和學生一起探討,如:inta[10]和a[i]=5的確切含義;檔案簇的鏈式形態;國際象棋大師與超級計算機的對決;圖的著色問題等。在講解圖的著色問題時引導學生思考圖的儲存中需要關心什麼,怎麼存以及大致的程式邏輯等。透過對例項的分析,引入課程主要內容,學生也可明確課程的性質和專業地位並思考課程學習目標。

  2制定實驗教學計劃,設計實驗內容

  程式設計語言是資料結構的前驅課程之一,多數院校都是以C語言程式設計作為學生程式邏輯訓練的課程。資料結構教材中採用類C語言來描述演算法,對指標、結構體等內容並未作詳細的介紹。對於剛剛學完C語言的'學生來說,指標等內容本來就比較模糊,要將類C演算法轉換為程式實現就更加困難。

  在制定實驗教學計劃時,可以採用由易到難、逐步加深的方式來安排實驗內容。結合實驗學時數和教學大綱要求,筆者將實驗內容作了如下設計和安排:

  2.1第一次上機任務只要求學生運用以前學過的C語言知識來編寫一個程式:給定一個整數序列,要求①用冒泡或選擇演算法進行排序;②輸入一個整數X,在此有序序列中進行查詢,如成功,則返回其位置;③如查詢不成功,將X插入到序列中並使序列仍然有序。此題目運用到陣列的定義、排序、查詢、陣列元素插入演算法等相關內容。透過此實驗,不僅能瞭解學生程式語言的熟悉程度,也能瞭解學生對排序和查詢等基礎演算法的掌握情況,為後面教學內容設計作好鋪墊。

  2.2結合教學進度要求學生實現常見資料結構的基本操作,並能作一些驗證性的實驗。如用數字選單的形式實現單向連結串列的基本操作,並完成兩個有序連結串列合併演算法的驗證。實驗要求學生能實現大多數基本操作演算法,完成標頭檔案的設計,並能利用已實現的基本操作完成複雜演算法的驗證。透過此類實驗,學生對資料結構的理解更直觀,程式邏輯更清晰,C語言的掌握能力逐漸增強,同時也為面向物件課程的學習打下一定的基礎。

  2.3設計性實驗即課程設計安排。課程設計的目的在於培養學生分析和解決實際問題的能力,訓練和提高學生規範的程式設計方法。教師可推出一些典型的並與後續課程有一定聯絡的題目供學生選擇。每個題目規模不能太小,並能反映相關資料結構在程式設計中起的關鍵作用。如:①實現一個串的基本操作演示程式,提供命令列的輸入(仿照COMMAND),並對命令列能進行簡單的編譯和出錯處理,最後根據命令動詞的功能來執行命令;②利用哈夫曼編碼演算法實現簡單文字檔案的壓縮和解壓。題目隨著理論教學進度推出,有難有易,學生結合自己實際來選擇並可提前完成。

  3規範實驗過程,加強實驗教學管理

  為保障計劃的有效實施,必須規範實驗過程並加強實驗教學管理。

  3.1根據計劃制定實驗指導書。指導書中給出每個實驗的目的、學時、內容等。其中設計性實驗另給出一些基本的分析思路,每個實驗都適當的新增一些選作題。學生透過閱讀實驗指導書能進一步明確每次實驗的具體內容和要求。

  3.2要求學生做好上機前的準備。大二學生的編碼速度普遍較慢,如果把實驗課時間主要用於輸入程式碼是非常不值得的,應將主要精力放在程式除錯上面。這樣不僅有充足的提問時間,也便於教師歸納並集中講解學生除錯過程中所遇到的常見問題。

  3.3要求學生實驗後完成實驗報告。報告中須給出問題分析、資料描述、演算法描述、程式描述、測試結果和心得體會等內容。教師對學生提交的實驗報告進行分析,總結並指出實驗的成功和不足之處。

  3.4加強實驗教學管理,從正面引導學生。隨著網路資訊科技的發展,網路中提供的各種資訊服務和娛樂方式使部分學生的學習積極性逐漸降低,學習目標也越來越不明確。如果管理鬆懈,有些學生就會把實踐學習當成是簡單的Ctrl-C和Ctrl-V,不能達到實驗教學的預期目標。因此,教師應瞭解學生的學習動態,加強實踐教學管理,並根據實際情況進行相應調整和改進。

  4豐富教學手段,搞好實驗指導

  在實踐教學過程,教師不能只停留於解決學生提出的問題,還應不斷摸索教學方法,豐富教學手段。

  4.1演示基本演算法實現時可採用互動的方式進行。先按型別定義→初始化→輸入測試資料→輸出的實現順序和學生一起得到結果;再讓學生逐個實現其餘演算法,最後完成標頭檔案的設計。學生透過教師演示和實際操作可以更快的掌握類C演算法和C程式的轉換思路。

  4.2資料結構中的程式規模相比C語言來說更大。由於缺乏經驗,很多學生在程式除錯中會出現較多的語法和邏輯錯誤,可利用多媒體網路教學手段在學生機上直接演示並講解程式除錯的方法和技巧。

  4.3學生實驗過程中盡力營造一種你追我趕的競爭氛圍,透過激勵機制提高學生學習積極性。如果有同學較早實現了某些演算法,可有選擇性的適當的“刺激”部分學生以激發其不服輸的心理,從而帶動其他學生。

  4.4鼓勵學生多實踐,要求學生透過實踐來找出理論學習中存在的問題,提高自己的抽象思維和邏輯推理能力。對於程式設計能力較強的學生,鼓勵他們多做題,做難題,為今後參加各種資格水平考試和專業競賽作好準備。

  5總結

  《資料結構》是一門理論和實踐結合性非常強的課程,其課程性質決定了教學過程的複雜性。作為承擔課程教學的老師,不管是理論教學還是實驗教學,都應結合學生的特點,從教學設計、教學手段、教學管理等多方面進行深入具體的探討和研究,並運用到教學實踐中。只有這樣,才能真正使學生理解《資料結構》課程意義和課程核心地位。

  參考文獻:

  [1]嚴蔚敏,吳偉民.《資料結構(C語言版)》[M].北京:清華大學出版社.1997.

  [2]黃現代.“資料結構”課程教學改革與實踐[J].北京:計算機教育.2007(16).

  [3]李丹丹.資料結構教學改革與實踐[J].北京:北京城市學院學報.2007(3).

最近訪問