


文章編號:1672-5913(2015)07-0082-05
中圖分類號:G642
摘要:結合高等教育心理學中的學習遷移理論,對數據結構課程設計的教學進行了思考與教學實踐。文章針對數據結構課程設計的教學目標制定、設計題目設計、考核方式等各個環節的特點與問題,闡述了學習遷移理論對數據結構課程設計的指導作用;在此基礎上給出了所制定的課程設計題目及一些有代表性的學生作品欣賞;對課程設計與課程實驗的區別進行了論述。對今后數據結構課程設計教學具有很好的參考和借鑒價值。
關鍵詞:學習遷移;課程設計;題目設計;作品欣賞
0 引 言
數據結構是北京林業大學信息學院的計算機科學與技術、數字媒體藝術、信息管理與信息系統等專業的一門重要專業基礎課,也是必修課。它的總學時為64學時,其中理論授課48學時,實驗16學時,課程設計(實習)一周,通常安排在第3學期或者第4學期開課。數據結構也是軟件開發與設計、計算機算法研究與實現等課程的基礎,其主要內容包括線性表、棧和隊列、串、數組和廣義表、樹、圖、查找算法和排序算法等。數據結構課程設計通常是在數據結構的授課環節以及實驗環節之后,單獨安排學生用大約一周的時間來完成一個較大的作業,以提高學生的思維能力,促進學生的綜合應用能力和專業素質的提高。
學習遷移一般是指學習者已有的知識經驗、技能等對另一種學習的影響。學習遷移是知識學習過程中普遍存在的。由數據結構課程實驗到課程設計,是對數據結構基礎知識到綜合能力的一種自然過渡,這個過渡即為學習遷移。學生在課程學習過程中,如果能夠很好地應用學習遷移,將有利于完善知識結構,收到舉一反三、觸類旁通的良好學習效果。可見,從數據結構基礎知識到數據結構課程設計能力培養,是一種學習遷移的過程。因而,在課程設計的教學實施過程中,學習遷移理論對提高教師的授課質量和學生的學習效果起著非常重要的作用。
筆者對學習遷移基本理論進行了分析,并結合其在數據結構課程設計的實際教學實施過程中的體現,闡述了如何有效應用學習遷移理論來提高授課質量和學生的學習效率。
1 學習遷移基本理論
學習遷移是指一種學習中學得的經驗對另一種學習的影響。遷移的基本過程是一個概括出新舊學習本質特征的過程。它是學習者運用已有的認知經驗和技能,在對新的學習內容進行分析概括的基礎上實現的。學習遷移有順向和逆向兩種,先前學習對后來學習的影響稱為順向遷移,反之則為逆向遷移。不論順向遷移還是逆向遷移,都有正負之分。正遷移指一種學習對另一種學習起促進作用,反之起阻礙作用則為負遷移。按照遷移的方向來劃分,可以分為水平遷移和垂直遷移。水平遷移指已習得的概念、規則或解決問題的方法等在同一抽象概括層次的新情境中的運用;垂直遷移指低級概念和規則向高級概念和規則的遷移。學習遷移理論主要包括以下幾種。
(1)形式訓練理論。該學說以官能心理學為理論依據,認為通過一定的訓練,可以發展心的官能,從而將其轉移到其他學習上去。
(2)相同要素理論。該理論認為原先的學習能夠遷移到新的學習中去的前提條件是兩種學習情境有相同的要素。并且相同要素越多,遷移的程度越高。
(3)泛化理論。泛化理論是指將在一種情境中得到的經驗進行“泛化”并運用到另一種情境中去。因此在教學過程中,為使學生能夠掌握學習遷移,應該讓學生學會思考泛化。
(4)轉化理論。支持該理論的心理學家認為學習遷移實際上是一個關系轉化的問題。產生遷移的原因,是由于兩者之間存在著相同的關系。我們平時強調通過理解而不是機械記憶來學習是因為理解可以轉化到各種情境中去,減少知識的錯誤運用。
(5)學習定勢理論。該理論指出遷移取決于通過練習而獲得的定勢或學習能力。通過練習某一種學習問題,可以幫助解決另一種不同的問題。
(6)認知遷移理論。該理論認為遷移的可能性取決于在記憶搜尋過程中遇到相關信息或技能的可能性。所以,如何增加學生在面臨實際問題時提取所學知識的可能性尤為重要。提取的可能性與交互聯結的數量直接有關,所以任何增加交互聯結網絡的“豐富性”的教育方法,對增加遷移的可能性均是有利的。
2 基于學習遷移理論指導的數據結構課程設計
依據前面對學習遷移基本理論的分析,以下將結合數據結構課程設計在教學目標、教學內容與基本要求、題目設計、考核方式以及學生作品欣賞等各個環節的特點與問題,闡述學習遷移理論對數據結構課程設計的指導作用。
2.1 課程設計教學目標
2.1.1教學目標
學習數據結構是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進行處理。根據形式訓練理論的觀點,學習技能的掌握是經過反復訓練達到的,學生對知識的理解程度和技能的熟練程度越高,正遷移的可能性越大。因此實踐教學環節非常重要。通過課程設計,一方面,使學生學會綜合分析研究計算機加工的數據結構的特性,以便為應用涉及的數據選擇適當的邏輯結構、存儲結構及相應的算法,并初步了解對算法的時間分析和空間分析技術;另一方面,通過課程設計中的算法設計和上機實踐的訓練,培養學生全面的數據抽象能力、綜合的程序設汁能力等。通過此次課程設計主要達到如下目的。
(1)了解并掌握數據結構與算法的設計方法,掌握數組、鏈表、隊列、堆棧、樹、圖、查找、排序等基本數據結構,具備初步的獨立分析和設計能力。
(2)初步掌握軟件開發過程的問題分析、系統設計、程序編碼、測試等基本方法和技能。
(3)提高獨立分析和解決問題的能力。
(4)訓練用系統的觀點和軟件開發一般規范進行軟件開發,培養軟件工作者所應具備的科學的工作方法和作風。
2.1.2 教學實驗中的遷移
教學實驗側重于幫助學生詳細理解相應章節的知識點,具有針對性強、目的明確等特點。同時幫助學生樹立起動手編程的信心,逐步提高學生對該章節所涉及算法的理解與動手能力。這是由基礎理論知識到編程實踐的一種遷移,是正遷移。我們以實驗1(基于線性表的學生信息管理)為例,該實驗要求學生重點掌握線性表的定義與線性表的基本操作,如建立、查找、插入和刪除等。其實驗內容詳細地介紹了需要實現的每一個功能。同時,為了使動手能力差、基礎薄弱的學生也能快速地掌握編程技術,教學實驗通常會給出一些代碼不完整的參考程序供他們參考,只需添加需要實驗的線性表功能的代碼即可。這樣,使學生能夠對前面學習過的理論知識的理解更加清晰、深刻,有利于學生扎實地掌握理論知識。可見,這是后面編程實踐所獲得的經驗對前面所學理論知識的一種遷移,是逆遷移。按照泛化理論,我們需要把一種情境中得到的經驗進行“泛化”并運用到另一種情境中去,應該讓學生學會思考泛化。為此,為了滿足編程能力強的學生的需求,實驗要求中除了必做題目外,還安排了選作內容供他們選擇實現,充分調動不同能力的學生的編程積極性。
與教學實驗不同,數據結構課程設計強調的是學生綜合運用知識點與基礎算法,設計出較為復雜的用來解決實際問題的算法。題目要求往往只是提出對課程設計題目的描述,而非一條一條的具體功能,這就要求學生具有一定的分析問題的能力和學習遷移的能力,綜合運用所學知識解決題目中所描述的問題。所以,課程設計強調培養學生綜合運用知識來分析問題、解決問題的能力,這也是泛化理論的體現。
總之,課程設計的目標是使學生能將數據結構課程中所學的基本知識融會貫通,綜合運用所學的知識解決相關的實際問題,能夠把所學知識(包括算法和結構)在計算機上用編程語言加以實現,并且能夠根據實際需求創建自己的數據結構和實現自己的算法。而學習遷移是實現這一目標的有效途徑。只有在掌握好基礎理論知識的基礎上學會遷移,才能更好地解決問題、達成目標。
2.2 課程設計的內容及基本要求
合理安排課程設計的內容才能充分發揮其遷移的功效。從學習遷移的角度來說,合理安排課程設計的內容的標準就是使課程設計內容與課堂教學內容具有一定的關聯性和一致性,這有助于學生在做課程設計的過程中鞏固課堂所學知識,加深對知識的理解,重構教學內容的結構,為知識遷移提供很好的支撐。
課程設計的內容既要遵循基本的授課內容,又要從一定的高度上對基本內容進行抽象與發展,使之能夠真實、準確地反映出由基礎知識到綜合運用能力的遷移過程。因而本文中課程設計的內容主要包括:①設計準備:理解實習任務,明確相關算法,搜集可用資源,熟悉實習環境。②方案設計:完成設計目標、設計路線的確定,并進行模塊設計和任務分工。③代碼編寫:各模塊代碼編寫、模塊測試。④代碼測試:模塊組裝、整體測試。⑤設計報告:完成設計文檔,制作設計報告。
為了保證綜合、靈活運用基礎知識的遷移效果,課程設計有如下基本要求:首先,學生應該獨立思考、獨立完成。在課程設計過程中各任務的設計和調試要求小組獨立完成,遇到問題可以討論,但不可以拷貝。其次,要做好上機準備。每次上機前,要事先編制好準備調試的程序,認真想好調試步驟和有關環境的設置方法,準備好有關的文件。再次,按照課程設計的具體要求建立功能模塊,每個模塊要求按照以下幾個內容認真完成,包括需求分析、概要設計、詳細設計、調試分析、課程設計總結。最后,課程設計結束后需要對課程設計結果進行檢查和演示,并提交程序源代碼和文檔文件、課程設計報告等內容。
課程設計過程中的編程環節是從程序設計語言課程到數據結構課程的另外一種重要的知識遷移,需要用面向程序或者面向對象的思想來完成數據結構中線性表等基本的結構定義以及操作。本文中課程設計需要重點注意的事項有:①注意備份源文件;②不要輕易刪除代碼,如需要修改,最好用注釋方法來代替刪除;③熟悉常用的調試技巧。
2.3 課程設計題目設計
為了促進學生正遷移學習,教師要科學合理地設計課設的題目,要建立在學生主動、適度、適量、適時且形式多樣化的基礎上,引導學生綜合利用所學知識和經驗,深入思考分析問題,學以致用。按照形式訓練理論,我們需要通過一定的訓練進而發展學生心的官能,從而將其前面所學知識轉移到其他學習上去。為此,通過教學實驗內容的訓練,我們已經訓練了學生在基礎理論與基礎編程中的能力,這些經驗為先前知識的轉移打下了堅實的基礎。按照泛化理論,我們將在一種情境中得到的經驗進行“泛化”并運用到另一種情境中去,需要讓學生學會思考泛化。為此,與教學實驗的細化要求不同,我們所設計的課程設計題目主要是給出題目要求的概括性描述,之后是一些要求與提示,還會有一些對題目中個別語句的解釋,但不會給出參考的代碼,全憑學生自己的知識組成以及算法設計來完成題目要求。我們從泛化理論出發,2011級數字媒體藝術專業的課程設計共8個題目,其中題目1-7具體給出所做題目的描述,同時為了發揮學生的學習積極性,允許學生自擬題目,給學生一定的自由發揮的空間,但是需要教師對自擬題目的難度以及實驗小組的組成進行一定的把關。
2.4 課程設計成績評定體系
課程設計成績評定體系是對學習遷移理論在課程設計中應用的成果的一個重要體現,因而需要我們更客觀、更公平地評價學生的實習成果。為了避免片面的評價,本文中課程設計將綜合考慮小組成員各自完成的任務與工作態度情況、機房中源代碼系統與PPT的演示與答辯情況、課程設計報告書的質量等,請三位老師分別對上述項目分別打分,最終按照一定的權值進行綜合求和。為了體現編程實踐、報告在課程設計最終目標中的知識遷移效果,規定源代碼演示未通過、末提交報告等情況記為不及格。
3 學習遷移效果展示
學生最終的作品是學習遷移理論應用于課程設計成果的具體體現。課程設計過程中,每個小組對各自的題目進行了深入研究,從基礎知識向深度、廣度上進行探索與綜合,經過團隊協作,完成了各自作品。我們選取了3個具有代表性的作品向大家展示。圖1展示了某小組學生完成的手機通訊錄系統界面,該系統具有大多數其他手機通訊錄系統所不具備的動態常用聯系人標定功能。圖2展示了某小組學生完成的貪吃蛇游戲。該游戲通過MFC設計界面,通過鏈表組織貪吃蛇的結構,完成了貪吃蛇游戲的功能,但沒有處理蛇碰壁的情況。圖3展示了某小組學生完成的電梯模擬系統。該題目是學生自選題目,該系統可以自動模擬電梯的不同運行情況,同時考慮了用戶請求的優先級問題。自選題目使學生充分發揮自己的主觀能動性,更好地將理論知識遷移到綜合設計能力上來。
4 課程設計分析
本次課程設計以學習遷移理論為指導,為了調動學生的積極性,并適合不同學生的風格和能力,這次課程設計共出了7個指定題目供學生選擇,如果學生有自己的想法,也可以自擬題目,充分發揮學生的主觀能動性,同時要求學生以軟件工程的要求來實現這次課程設計,從需求分析到概要設計,再到詳細設計,最終是調試分析。
從學生最終的作品來看,選擇《手機通訊錄功能模擬》的學生比較多,其次是《文章編輯系統》,其他題目選擇的人數較少,《教學計劃編制問題》無人選擇。這主要是因為《手機通訊錄功能模擬》題目與實驗1有很多相似之處,只要對實驗1做合理的改動以及擴充,即可完成手機通訊錄的功能。從學生課題完成情況看,絕大多數學生完成了課程設計的基本功能要求,一部分學生還綜合考慮了用戶界面、程序健壯性等因素,課題完成質量較高。數據結構課程設計是在所學基礎知識之上,對數據結構的深層次應用,既引導學生深入熟悉編程技巧,又加深對課程知識的理解,這體現了學習遷移的過程。實踐證明,這在一定程度上激發了學生的積極性,有效提高了學生的編程能力,使得部分以前不怎么會編程的學生體會到了編程的樂趣。不過,還有一些學生并沒有找到自己編程的方法,對數據結構的基本概念不是很清晰。這一方面與學生自身的編程基礎較為薄弱有關,另一方面也是需要教師在指導過程中進一步加強基礎知識與編程環境之間的聯系,引導學生積極主動掌握學習遷移,并且能夠針對實驗中出現的問題及時進行一些專門講解。實際情況表明,這次課程設計不但使得學生可以充分了解算法設計,而且能使學生了解軟件工程的設計過程,為后續課程的進行提供一個好的開始。同時鍛煉了學生的學習遷移能力,對后續學習是非常有利的。
5 結語
數據結構課程設計是綜合運用所學的數據結構理論知識與實驗實踐能力來增強與提高獨立分析問題、解決問題的有效手段,如何幫助學生快速、準確地理解并掌握課程的理論知識,是課程設計的目的之一。而學習遷移理論正是這樣一種研究先驗知識與后續知識之間轉換關系的理論,這給數據結構課程尤其是課程設計環節帶來了有力的指導。正因為如此,我們將學習遷移理論應用于數據結構課程設計。實驗結果表明,這次課程設計比較成功,取得了較好的效果,基本達到了增強數據結構理論與提高編程能力的目的。