


摘要:結合自主探究式課程教學的基本理念,對數據結構課程實驗自主探究教學具體的實施過程進行設計與探討。實踐證明,自主探究式的教學方法,不僅能為學生提供創新活動的條件和機會,也能有效引導學生掌握學習方法,對于培養學生的智力和能力,具有較明顯的作用。
關鍵詞:自主探究;教學方法;數據結構
在數據結構的教學過程中,我們發現學生普遍存在“一聽就懂、一看就會、一做就怵”的現象。學生認為數據結構課程的內容雖然抽象,但不難理解,然而,一旦他們接觸到實際問題,并需要設計算法時就會無從下手,上機調試程序對學生來說就更困難。筆者認為,產生這一現象的原因有3個:1)學生應進一步建立程序設計的思想,通過實際訓練,建立用計算機算法解決實際問題的思維模式。2)學生對數據結構課程中的概念理解不夠。由于數據結構課程涉及大量概念及算法,理論性較強且高度抽象,如果學生似懂非懂,那么,很可能是沒有理解所學內容。3)學生編寫算法解決實際問題的實踐不夠,沒有足夠編寫算法的感性認識和體會。
數據結構理論課程中所介紹的理論知識最終要轉化為提高學生編寫算法和上機調式程序的能力。毫無疑問,數據結構課程實驗是學生加深理論知識理解、積累算法編寫經驗和提高動手能力的重要環節。課程實驗采取學生自主探究式的教學模式,注重發揮教師的主導作用和學生的主體作用,以學生主動探究解決實際問題為策略,使其理解并嘗試研究通過編寫算法解決實際問題所經歷的探究過程,并在其原有的知識基礎和水平上一層層地建構、累積新的知識和能力,掌握算法編寫的方法。
數據結構課程具有實踐性和操作性強的特點,它為構建以學生為主體的教學模式提供了便利條件。筆者正是在此基礎上,對數據結構課程實踐教學進行改革,并開展學生自主探究式教學的實踐活動,實踐證明,教學效果良好,符合應用型創新人才的培養要求。
2數據結構課程實驗自主探究教學模式的構建
自主探究式教學的基本理念立足于建構主義及主體教育的理論[1],它以促進學生個性發展為宗旨,以改變學生單純地、被動地接受知識為著眼點,構建一種開放的學習環境,為學生提供一個多渠道獲取知識,并將學到的知識綜合應用于實踐的機會。它在幫助學生進行接受式間接學習的同時[2],形成一種對知識的主動直接探索,以提高其解決實際問題的能力。
自主探究式教學模式具有一定的靈活性[3],不同教學環節有所不同。筆者根據數據結構課程實驗的特點,設計了數據結構課程實驗自主探究教學模式,即將每個數據結構課程實驗分成如下五個階段。第一階段為創設情境,確立目標,激發動機;第二階段為組建團隊,自主探究,制定方案;第三階段為編寫算法,上機調試,實踐體驗;第四階段為反饋交流,啟發導學,解疑釋難;第五階段為歸納總結,鞏固提高,遷移應用。
2.1創設情境,確立目標,激發動機
根據數據結構課程實驗預先設定的自主探究課題如表1所示。結合理論課教學的內容和時間,我們在不同的教學階段提出需要解決的問題,描述相應問題在操作系統、數據庫、計算機網絡等實際場所的應用,將往屆學生的優秀軟件作品加以演示,激發學生學習及探究的動機。在此階段,教師對自主探究的課題的目的、背景資料、理論依據、技術方法、計劃和目標等做主導性講解。比如,在學習完棧的內容之后,在學習表達式求值課題之前,教師將Windows附件中的計算器加以演示,描述其功能,強調表達式求值問題是計算器中的核心問題,然后將往屆學生做的計算器軟件作品加以演示,引導學生在現有的知識體系中簡化計算器功能,明確需要完成的課題任務,利用棧實現表達式求值。
2.2組建團隊,自主探究,制定方案
學生以3~4人為一個研究課題小組,自由組合并選出課題組長,各組學生有具體分工,在指定的時間內完成課題的任務,這有利于學生在軟件這一行業中培養團隊合作精神。學生分組利用課余時間自主開展探究,通過圖書和網絡等途徑查找相關資料,寫出實施計劃,以小組為單位討論解決問題的可能方案。在這個階段,教師要鼓勵學生多思考,根據問題的難易程度給學生規定時限。在學生提出足夠多的方案后,教師可以讓各小組的代表匯報他們所提出的方案。之后,教師收集、匯總學生的方案,并給學生展示全部方案,讓學生用邏輯推理的方法淘汰不可能的方案,篩選出可能解決問題的方案。
2.3編寫算法,上機調試,實踐體驗
根據確定的方案,學生編寫并擴展相關算法,在此基礎上,將算法用計算機語言加以編程實現,并上機調試,同時,教師可精心組織一批數據進行測試,不斷自主完善編寫的程序,直至它們能夠很好的解決問題。在這個階段,學生需要記錄編程調試過程中的相關數據和出錯信息,教師在這個階段需要有重點地抽查2~3個小組,并將其作為本次實驗教學的指導對象,同時,對學生提出的疑問加以引導,鼓勵部分學生克服調試程序的畏難情緒,讓學生自主解決探究和解決在上機調試過程中出現的問題,不斷積累編寫算法和調試程序的經驗教訓。
2.4反饋交流,啟發導學,解疑釋難
針對上一階段學生自主探究所取得的成績、體會和問題,教師可選取有代表性的小組進行反饋和交流,并通過交流進一步啟發引導學生掌握理論知識、加強實踐能力,引導學生解決疑難問題。
2.5歸納總結,鞏固提高,遷移應用
在實驗完畢并得出結果后,學生需整理資料并撰寫實驗報告。教師對各組的實驗報告進行初審,提出具體修改意見。各組學生修改和補充實驗報告,并使報告格式化、標準化,之后,正式提交,教師再次審查。教師根據情況評定成績,作為學生期末成績總評的依據,此外,教師要在課堂上組織學生交流實驗感受及取得的成果,并將成果遷移應用到一些類似的問題當中去,達到舉一反三的效果。
3數據結構課程實驗自主探究在人才培養過程中的作用
3.1有利于學生的智力開發和能力培養
教學目的是要學生獲得知識,而更重要的是讓學生的智力得到發展。數據結構課程實驗自主探究教學,從給定的算法到算法擴展、從選題到實驗報告及其交流的全過程,幾乎都是以學生為主體開展活動,教師僅僅在教學中負責組織、引導。研究方法和資料的查找、課程實驗報告撰寫等方面的訓練,可以提高學生自學研究能力,并為其今后的學習打下了基礎,因此,自主探究式的教學利于全面培養學生的智力和能力。
3.2可激發學生的求知欲和創造力
在教學中,教師應采取相應的改革措施,創設智力發展的環境與條件,用生動的實踐活動鞏固和強化學生的求知欲,激發學生的好奇心、興趣、想象力和創造力。因為興趣是學生求知的內在動力,是創造的先導,同樣,想象在人的智力活動中也占有重要地位。學生對數據結構課程實驗自主探究教學有興趣,正是因為它能解決現實問題。許多學生原本就對軟件開發充滿好奇與想象,在學習數據結構課程后,他們有了一定的算法理論基礎,可以根據自己的興趣,充分發揮想象力和創造力,由此,他們可以對軟件開發進行更深入的嘗試。
3.3有利于培養學生動手動腦、理論聯系實際的能力
數據結構課程實驗自主探究教學要求學生動手動腦,手腦并用,在學習中,學生既能應用已掌握的知識,也能促進其思維力、理解力和創造力的發展。在實驗教學活動中,學生動手編制相關應用程序,掌握了使用相關編程工具的方法,反復實踐使他們理解了從不同角度實現同一算法的深刻內涵。
3.4能培養學生的團隊精神和協作意識。
學生積極參加數據結構課程實驗自主探究教學活動,培養了團隊精神和協作意識。整個教學活動以小組為單位進行,無論是在算法設計、上機編程,還是在查閱資料、撰寫和修改實驗報告過程中,小組中的每個成員都要認真參與,并配合組長的工作,體現團隊精神和協作意識。當實驗報告順利完成并通過教師驗收時,學生內心會充滿集體的成就感和榮譽感。
4對比實驗數據及分析
針對數據結構課程實驗自主探究式教學方法,筆者在校計算機與信息工程系進行了分年級和分專業班級的比較實驗,從中得到了期末理論課考試和上機測試兩方面實驗統計數據。按照專業培養方案要求,每個年級和每個專業數據結構總學時均為64學時,不同的是,我們在實驗班采取了傳統理論課教學和實踐環節的自主探究相結合的方法,而對照班僅僅采取了傳統的教學方法。
4.1理論考試成績數據
數據結構理論課考試采取閉卷考試方式,滿分100分,內容包括選擇題、填空題、簡答題、計算題和算法設計題,每種題型各占總分的20%。期末理論考試擬在考察學生數據結構基本概念和基本方法的掌握情況。表2所列出的是2008年-2009年實驗班和對照班理論考試成績的平均分、標準差、及格率和優秀率。
從表2中可以看出每學期理論考試成績實驗班比對照班平均成績高出5分左右,及格率高出5~8個百分點,優秀率高出3個百分點左右,標準差低出2分左右。
4.2實踐能力測試數據
在數據結構實踐能力測試中,我們準備了50個小的算法設計問題,覆蓋了數據結構表、樹、圖和集合的全部內容,學生隨機抽取選題,要求利用1個小時的時間完成算法設計和上機調試任務。表3所列出的是2008—2009年中實驗班和對照班實踐能力測試成績的平均分、標準差和及格率。
從表3中可以看出,在實踐能力測試成績中實驗班比對照班平均成績高出10分左右,及格率高出2~14個百分點,標準差低出9~15分左右,而且對照班標準差波動較大,實驗班標準差相對平穩。
由表2和表3的數據分析,我們可以得出結論:基于自主探究式學習對提高大部分學生學習成績,培養實踐動手能力有明顯促進作用,隨著學生學習經驗的增多,學習效果愈加明顯。
5結語
在數據結構課程自主探究的教學實踐過程中,學生學會了將設計優良算法與編程技巧結合起來,同時,也提高了綜合運用所學知識獨立解決實際問題的能力。課程教學的改革與實踐結果證明,貫穿于教學環節的自主探究式教學,能使理論教學與實驗教學有機整合,它有利于學生的智力開發和能力培養,可激發學生的求知欲和創造力,有利于培養學生動手動腦、理論聯系實際的能力,能培養學生的團隊精神和協作意識,從而提高學生解決實際問題的能力。
參考文獻:
[1]