張玉華 周克蘭
文章編號:1672-5913(2009)02-0108-03
摘 要:本文提出了在數據結構課程實驗中實行分層次教學的觀點,詳細介紹了我院計算機科學專業(yè)中數據結構實驗課程的分層教學實踐方法,對數據結構實驗課程的改革進行了探索,本文對如何提高計算機實驗課程教學效果有一定的指導作用。
關鍵詞:數據結構;實驗教學;分層次
中圖分類號:G642
文獻標識碼:B
1 引言
數據結構是計算機及相關專業(yè)的一門核心課程,主要研究信息的邏輯結構及其基本操作在計算機中的表示和實現,該課程學習的效果不僅關系到后續(xù)課程的學習,而且直接關系到軟件設計水平的提高和專業(yè)素質的培養(yǎng),在計算機學科教育中有非常重要的作用。
數據結構課程的教學又包括理論知識的學習和實踐教學。將所學理論知識加以融會貫通以解決實際問題,學以致用才是數據結構課程的學習目的。因此,實驗教學與理論內容教學一樣,是數據結構教學中不可缺少的重要環(huán)節(jié)。
本人從事數據結構教學多年,通過對課程、學生及計算機學科的特點的長期探索,在本學院提出了數據結構課程分層次實驗教學的觀點,并在06級計科專業(yè)學生中進行了實踐?,F將此次實踐的基本方法進行總結。
2 實驗內容分層次
數據結構理論知識是相對固定的,學習完數據結構,我們要求學生掌握線性表、棧、隊列、樹和圖等數據結構的表示和實現方法,在實際應用中學會自行選擇合適的數據結構及存儲結構進行編程,另外,還能對計算機中的兩種常見運算:查找和排序的各個算法進行實現以及性能比較。
因此,我們按照數據結構的內容將實驗題分成了線性表、棧、隊列、串、數組、二叉樹、圖、查找、排序等主題,同時根據循序漸進的原則,在每個主題之下,又按照難度不同分成了概念基礎實驗、應用基礎實驗和應用提高實驗三種類型。我們將概念基礎實驗設計為驗證性實驗,如某種數據結構的表示和實現并將此種數據結構封裝為一個類,并要求所有的學生都必須實現;應用基礎實驗,則是利用已實現的某種數據結構實現的一個簡單應用;應用提高實驗,是利用已實現的某種或某幾種數據結構實現的一個綜合應用。后面兩種類型的實驗又分設若干實驗題,每個實驗題都設有難度系數。
我們要求每個學生必須完成概念基礎實驗和一道應用基礎實驗題,選做一道提高實驗題,所選應用基礎實驗題和提高實驗題的難度將作為成績評定的一個依據。表1中列出了“棧的實現和應用”主題中設置的各個題目。
實驗內容的分層使得學生可以根據自己的興趣、編程能力等實際情況,有選擇地進行程序的設計和實踐,對于學有余力的同學,也可以盡早接觸較大的應用實踐題目,得到更多的鍛煉。
3 實驗文檔多層次
3.1 實驗報告、作業(yè)單、實驗記錄一體化
實驗報告是由學院統一印制的具有統一格式的實驗文檔,在實驗報告中規(guī)定了每個主題的實驗目的和要求,給出了不同層次的各個題目的詳細描述,同時要求學生根據各自所選題目填寫作業(yè)單和實驗記錄表,并填寫所選題目中難度最高的應用實驗題的分析、設計和實現過程。實驗報告的布局如表2所示:
作業(yè)單和實驗記錄表是實驗報告中包含的兩個重要的表格。
作業(yè)單中列出了該學生在此主題下選做的題目、教師確認后的簽字欄、教師批改源程序后對該題完成情況的意見。作業(yè)單格式參見表3。
實驗記錄表中記錄了在整個實驗過程中所遇到的編譯問題、調試問題、程序的邏輯錯誤以及解決方法,如僅將此問題避開,則記錄避開問題的方法。另外表中還需記錄程序運行時所用的測試樣例。教師在批閱時給出評閱意見。實驗記錄表格式見表4。
3.2 源程序
學生將將所完成題目的所有源程序進行壓縮后提交到學院的網絡教學平臺上,由教師和助教核對是否與作業(yè)單一致,直接在網上進行批改和評分,源程序得分的計算方法參見后面的表5,評分程序直接內嵌入教學網站。
3.3 實驗指導素材
我院計算機科學專業(yè)的教學計劃中,面向對象程序設計C++作為先修課程已于前一學期開設,因此,在學習數據結構之前,學生已基本掌握了程序設計語言中的基本概念和上機實踐的基本方法。但是,僅通過一個學期的程序設計語言學習,學生對大型程序的設計、組織和實施編程等步驟并不熟悉,對解決實際問題的行之有效的具體指導也不多。因此,為學生提供上手能用的實驗操作指導手冊,提供一些范例程序,手把手指導學生進入較大型程序的設計階段,加強學生的C++標準類庫知識的傳授,加強學生的實踐操作技能指導尤其重要。
我們對每一個主題選取一個應用基礎實驗題,將其答案公布在教學網站,供同學下載;選取每一主題中難度較大的題目,給出基本求解思路以及重要的算法,所需用到的標準類庫函數、從何處獲取更多可參照的資料等內容供同學參考。我們把這些資料都公布在教學網站上,學生可以根據需要進行下載。
另外,我們還根據學生在實踐中遇到的問題加以總結、整理,在教學網站上定期公布“編程寶典”,這些實用的但又熟悉的知識的溫故,使同學們的編程能力得到的提高,也使得后續(xù)的實踐更容易完成。
4 實驗考核分層次
在我們設計的數據結構課程考核方案下,實驗成績在數據結構課程總成績中的比例為30%;數據結構實驗成績?yōu)槿舾纱沃黝}實驗題的成績以及期末實驗考核成績平均分;每次主題實驗成績的主要計算方法為:
本次實驗總分=源程序成績*0.75+實驗記錄分*0.15+實驗報告分*0.1
源程序成績=基礎實驗得分*0.45+應用基礎實驗*0.4+應用提高實驗*0.15
表5為某同學某一主題的源程序成績評定表,此表在教師批改源程序時在網頁上填寫;表6為該同學該主題實驗的最終成績表,此表在教師批改紙質實驗報告時填寫。
5 結束語
我們對數據結構實驗課的內容、實驗文檔、實驗成績評定等各個環(huán)節(jié)都進行了分層次的改革實踐,加強了實驗中的文檔管理。經過一個學期的實踐,學生基本養(yǎng)成了及時認真做好實驗記錄的習慣,養(yǎng)成了嚴謹踏實的編程習慣,上機實踐變得更有條理,減少了出錯概率。經過實驗范例的學習和模仿,大多數學生在處理難度較大的應用提高實驗時也已不再手足無措,基本能按照需求分析、概要設計、數據結構選擇、存儲結構選擇、編寫算法、撰寫程序等基本編程步驟來解決問題;大多數學生在這種分層實驗的要求下,選擇了稍高一點難度的題目,提高了自己的編程能力,增強了自信心。
當然,我們在實踐中還是遇到了不少問題,有部分同學平時學習態(tài)度不端正,做作業(yè)敷衍了事;仍存在抄襲作業(yè)的現象。另外由于實驗成績評定比較復雜,雖然我們設計了一個專門的小程序來計算每位學生的成績,但還是增加了老師的工作量。因此,繼續(xù)探索實驗教學的基本規(guī)律和方法,是我們的一項長期的任務。
參考文獻:
[1] 殷人昆. 數據結構(用面向對象方法與C++語言描述)[M]. 北京:清華大學出版社,2007.
[2] Robert L.Kruse等. 數據結構與程序設計—C++語言描述(影印版)[M]. 北京:高等教育出版社,2001.
[3] 龔紅仿,楊宏杰等. 數據結構實驗課教學改革與實踐[J]. 計算機教育,2007,(12):53-55.