呂亞榮,繆相林
摘要:數據結構與算法課程是計算機專業的一門核心基礎課,具有很強的實踐性。在分析該課程實驗教學現狀的情況下,提出了實驗教學內容的改革、實驗教學方法的改革以及實驗考核方法的改革等問題,提高了實驗教學的效果,激發學生的學習興趣。
關鍵詞:數據結構與算法;實驗教學;改革
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2014)18-0028-03
數據結構與算法是計算機專業的核心基礎課程之一,通過本門課程的學習,可以使學生透徹地理解各種數據對象的特點,學會數據的組織方法和實現方法,并進一步培養良好的程序設計能力,而該課程的實驗課是學生驗證、掌握和應用數據結構理論的重要途徑。
一、數據結構與算法上機實驗課程的現狀
數據結構與算法課程涉及大量數據類型及算法,理論性很強,抽象難懂,對學生的學習造成了一定的難度。受傳統的教學模式的影響,課程的實驗教學一直處于從屬地位,同時因學生基本程序設計能力有待提高等因素影響,實驗效果不甚理想。如何使學生理論學習和實踐學習相結合,提高學生的實踐能力,已成為高等院校培養應用型本科人才的一項重要課題。
目前在數據結構與算法實驗教學過程中發現的問題主要有以下幾點:
1.學生對于上機實驗的重要性認識不夠。對于學生來說,由于部分院校的教學資源所限,數據結構與算法課程長期以來都是課堂和實驗分開進行,授課教師對于上機實驗過程幾乎不參與,這就導致了學生重視課堂理論的講授,而忽視上機實驗課程的重要性。
2.課程實驗缺乏層次性。上機實驗教學內容大多為簡單的驗證性實驗,缺乏綜合性、應用型、設計性實驗項目。增加論述。
3.課程理論性強、難度大。數據結構與算法課程理論性極強,抽象難懂,很多學生在課堂聽課過程中不能夠完全理解,無法建立起數據結構和相應算法的概念,長此以往導致學生對于這門課程的畏懼和抵觸情緒,同時也嚴重打擊了學生上機實驗的積極性。
4.學生對掌握程序語言的程度不夠。學生對程序設計語言掌握得不理想,也是導致學生上機實驗缺乏積極性的一個重要原因。數據結構與算法是學生在學過一門或幾門語言課程之后開設的,其算法大都由C或C++語言描述,要求學生能夠使用某種程序設計語言對算法進行程序設計,并且上機調試通過。以我學院為例,學生在學習數據結構時,雖然已經學過C語言,但僅是初學,并不精通。因此對于抽象的數據類型、動態分配存儲空間等概念,在理解上還是有一定困難的。由于對程序設計語言掌握得不好,大部分學生在編程的過程中陷入迷茫的狀態,阻礙了他們對各類數據結構和算法等知識點的理解和應用,使教學目標難以實現。
二、實驗教學的改革和探索
(一)實驗教學內容的改革
數據結構與算法課程主要使學生掌握程序數據的結構、組織和管理技術以及在此基礎上的算法設計與分析技術,不僅為后續課程操作系統、編譯原理、數據庫原理、軟件工程、人工智能等課程提供必要的知識準備,更重要的是可以提高學生軟件分析、設計、編程和數據組織的能力。根據數據結構與算法整個課程體系的劃分,本課程的上機實驗主要分為以下幾種類型:
1.驗證性實驗。這一類型的實驗主要在上機實驗課中完成。以西安交通大學城市學院為例,本門課程有8個學時的上機實驗,主要任務是將課堂上講過的內容以實驗的形式貫穿起來,所涉及的實驗以教材中提及到的基本算法和例題為主,基本都是驗證性的實驗。以單鏈表為例,要求學生通過定義線性表的抽象數據類型,在鏈式存儲結構下完成單鏈表的建立、插入、刪除、查找、求前驅節點和求后繼節點等操作,通過實驗教學,在加深學生對數據結構課程內容理解的同時,達到理論聯系實際的目的。
學生通過完成此類實驗,一方面可以強化基礎知識,另一方面也可以通過編寫算法掌握高級語言程序,同時還可以訓練學生良好的編程風格、基本實驗技能和科學嚴謹的實驗作風。
2.綜合性實驗。綜合性實驗部分實在課程設計階段來完成。主要任務是考查學生運用所學基本數據結構解決實際問題的能力。所設計的實驗項目可以是課程設計指導書中提供的參考題目,也可以是工程中的實際課題,選題要與所學階段性知識緊密聯系,任務有一定的難度和綜合性,對學生的編程思路和方法有啟發作用的項目。例如:學習了棧和隊列知識后可以要求學生設計一個停車場管理系統,以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數據序列進行模擬管理。又如:學習了圖的路徑的相關算法后,可利用學生熟悉的當地交通情況、旅游景點等設計問路系統。這些問題與課本理論知識聯系密切,而且具有一定的實用價值。
3.研究性實驗。此類實驗是針對于學有余力的學生,可安排一些研究性實驗,針對計算機專業學生的特點,可以以軟件開發的形式進行,讓學生以創新者的角色去做實驗。所設計的實驗項目都是實際工程中的課題,題目的解法要求符合工程實際情況,具有可行性。學生可以自己提出實驗題目和開發工具,自己設計實驗過程等,有條件者還可以進入工程實踐中進一步提升實踐能力。
(二)實驗教學方法的改革
根據我院學生的特點和學院培養應用性本科人才教育宗旨,我們在實驗教學的方法上進行了改革。
1.先簡后難,循序漸進。在上機實驗課中,主要以驗證性試驗為主,針對堂課講授的知識安排配套的練習。練習的內容以編寫的數據結構與算法實驗指導書的形式發給學生,每節課明確實驗任務、實驗方法和結果要求,使學生在有限的課堂時間中完成相應訓練目標,掌握基礎知識,夯實基礎;在課程完成之后的課程設計階段,加大難度,主要以綜合性的題目為主,對于程度特別好的學生也可以完成研究性的項目。針對這一階段的訓練,我們也編寫了相應的課程設計指導書,提供給學生適合的參考題目和編程提示。有助于學生更好的完成項目要求。通過一系列的訓練,培養學生算法設計能力以及創造性思維,以達到提高學生應用知識解決復雜問題能力的目標。
2.啟發式教學和分組實驗。在教學方法上,把傳統教法中老師講,學生聽的“灌輸法”轉化為“啟發式”的教學方法,引導學生自主思考,常常提問“WWW”,即“What,Hao, Why”:這個問題做什么的?需要用的哪方面的知識?怎么去解決問題?如何解決?教師教給學生提出問題、分析問題和解決問題的方法,學生自行探究問題和解決問題,激發學生探求知識的欲望和積極的學習興趣。
在訓練的形式上,改變傳統的“集體化”路線,根據程度的不同將2~4名學生分成多個小組,任命一名學習能力強、組織能力好的學生擔任項目組長,以軟件開發小組的形式協同工作,合理分工,共同學習,通過團隊討論解決問題。各小組成員不僅要完成自己的工作,還要與其他成員合作,共同完成整個項目。教師應多給予學生鼓勵,激發學生的思維,促進他們合作的欲望和熱情,使課堂活潑積極,并且適時的提供必要的啟發式幫助,只提供意見,不具體替學生完成。讓學生從解決問題和團隊合作中獲得成就感和自我認同感,在輕松的氛圍中達到激發學生興趣,提高學生綜合實踐能力的目標。
(三)項目答辯和實驗報告結合的考核方法。
1.項目答辯。在課程設計實驗結束時,專門抽出時間對個小組成員的工作進行考核,要求每個小組選派2名學生進行答辯,在規定時間內陳述小組工作情況,遇到的問題及解決的辦法,最終達到的效果及心得體會等。根據答辯情況,給予優、良、中、差和不及格五檔評分。通過這種團隊合作和答辯的方式大大提升了學生的實踐能力、組織和口頭表達能力及合作精神。
2.實驗報告的規范。課程設計實驗結束后要求學生寫出實驗報告,以作為實驗環節評分的書面依據之一和存檔材料。實驗報告以規定格式的電子文檔書寫、打印并裝訂,排版及圖、表要清楚、工整。每個小組每個題目提交一份實驗報告,實驗報告除介紹本小組成員所做工作外還應包括以下內容:
(1)需求分析。以規范的技術文檔語言陳述說明項目設計的任務并明確規定:①輸入的形式和輸入值的范圍;②輸出的形式;③程序所能達到的功能;④測試數據:包括正確的輸入及其輸出結果和含有錯誤的輸入及其輸出結果。
(2)概要設計。說明本程序中用到的所有抽象數據類型的定義、主控程序的流程以及各程序模塊之間的層次關系。
(3)詳細設計。本階段的主要任務是實現概要設計中定義的所有數據類型,對各操作、主程序和其他模塊均要求寫出偽碼算法,同時可以使用流程圖或者N——S圖進行描述,畫出函數和過程的調用關系圖。
(4)調試分析。在程序的調試過程中出現的問題以及解決辦法,回顧和討論設計與實現過程中的相關問題。
(5)測試結果。列出完整和嚴格的測試數據,包括輸入和輸出。
(6)用戶使用說明。說明程序的使用方法,并列出每一步的具體操作步驟。
(7)代碼注釋。算法必須給出完整、正確的文字注釋。
三、改革的效果
通過數據結構與算法實驗教學的改革,學生的學習熱情和積極性得到了明顯的提高,學生的主動思考和積極實踐的熱情得以激發。學生能夠在實驗期間主動積極的參與并解決問題,提高了學生的實踐能力和編程能力。通過分組合作的方式進行項目訓練,培養了學生的團隊合作意識和嚴謹的工作作風。通過小組答辯,教師了解了每組學生的學習情況,把握學生的學習狀態和程度,有助于在日后的教學中給予適當的指導。教師在此過程中不斷總結問題,積累經驗,使教學質量得到顯著提高。
四、結束語
數據結構與算法在計算機課程體系中占據重要地位,其實驗環節的教學質量直接關系到本門課程的學習效果。在實驗教學過程中必須以培養學生的綜合實踐能力為宗旨,不斷改進教學方法,加大實驗教學力度,做到夯實基礎,提高能力,為學生后續專業課程的學習打下良好的基礎。
參考文獻:
[1]耿國華.數據結構——C語言描述[M].北京:高等教育出版社,2006.
[2]趙玉霞.《數據結構》課程上機實驗改革初探[J].福建電腦,2007,(4):213-214.
[3]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1997.
[4]寧正元,王秀麗,林大輝.與數據結構[M].北京:清華大學出版社,2006.
[5]寧正元,王秀麗,林大輝.與數據結構習題解析和實驗指導[M].北京:清華大學出版社,2007.
基金項目:本研究課題受西安交通大學城市學院第六批教改項目基金支助,項目編號:112002。
作者簡介:呂亞榮(1984—),女,陜西西安人,西安交通大學城市學院工程師。