摘要:“數(shù)據(jù)結(jié)構(gòu)與算法”是計算機科學(xué)技術(shù)專業(yè)重要的專業(yè)課程,該課程的教與學(xué)都有相當(dāng)?shù)碾y度。近年來,我們在該課程中引入了項目式教學(xué)方法,通過精心設(shè)計項目,以軟件工程思想指導(dǎo)項目式教學(xué)過程,將師范教師教育與專業(yè)教育相融合等一系列教學(xué)改革,取得了顯著的教學(xué)成效。本文介紹了我院的這些經(jīng)驗。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)與算法;教學(xué)改革;項目;教學(xué)模式
中圖分類號:G642文獻標識碼:B
“數(shù)據(jù)結(jié)構(gòu)與算法”是計算機科學(xué)技術(shù)相關(guān)專業(yè)的重要基礎(chǔ)課程。該課程是計算機科學(xué)技術(shù)專業(yè)研究生入學(xué)考試國家統(tǒng)一考試的統(tǒng)考科目之一,也是設(shè)計和實現(xiàn)各種應(yīng)用軟件的重要基礎(chǔ)。課程教學(xué)效果對學(xué)生專業(yè)素養(yǎng)的形成具有重要的影響作用。近年來,本課程組圍繞課程建設(shè),對“數(shù)據(jù)結(jié)構(gòu)與算法”課程教學(xué)進行了有益的改革與探索。
1課程教學(xué)改革的必要性與緊迫性
我?!皵?shù)據(jù)結(jié)構(gòu)與算法”是江西省高等學(xué)校首批精品課程,它是一門理論性和實踐性都很強的課程。在過去的教學(xué)中,一部分老師重理論輕實踐,而且由于該課程內(nèi)容比較抽象,不好講解,有時教師即使花了很多的時間準備,但由于學(xué)生個體的差異,也很難從整體上取得理想的教學(xué)效果。從學(xué)生的學(xué)習(xí)態(tài)度來看,學(xué)生對這門課程的認識僅停留在這門課是研究生入學(xué)考試的必考課程,知道這門課程非常重要,但起初并不能體會到這門課程在專業(yè)體系中的作用,對它在軟件設(shè)計與開發(fā)中的作用更是缺乏感性認識,學(xué)生學(xué)習(xí)的興趣有待提高。
“數(shù)據(jù)結(jié)構(gòu)與算法”作為實踐性很強的計算機專業(yè)的基礎(chǔ)課,教學(xué)中必然離不開實踐。過去,我們往往采用一般性實驗作為課程實踐的主要內(nèi)容,即布置針對本次課堂教學(xué)內(nèi)容的小型練習(xí)題,讓學(xué)生獨立完成程序設(shè)計與實現(xiàn)。這樣的實踐主要存在兩個方面問題:
(1) 練習(xí)題一般為驗證型的,所需要用到的知識點就是課堂教學(xué)剛講授過的內(nèi)容,學(xué)生不需要自己去考慮各種可能的解決方案并找到最合適的方法,學(xué)生受到的鍛煉相對較少。
(2) 學(xué)生獨立完成小型程序,可以一定程度上鍛煉個體的編程能力,但現(xiàn)代軟件開發(fā)的規(guī)模,使得團隊合作在大多數(shù)情況下成為必須。為了在課程實踐環(huán)節(jié)加強團隊協(xié)作,盡早地讓學(xué)生接受軟件工程訓(xùn)練,必須對傳統(tǒng)的實踐環(huán)節(jié)進行改革。
從2003年起我校全面實行以學(xué)科類招生的全面學(xué)分制教學(xué)體制,為了保證學(xué)分制下專業(yè)課程的教學(xué)質(zhì)量,學(xué)校提出了“以生為本,全面發(fā)展”的人才培養(yǎng)模式。對“數(shù)據(jù)結(jié)構(gòu)與算法”等省校級精品課程提出了新的建設(shè)目標,要求以課程教學(xué)改革為手段,確實提升課程教學(xué)質(zhì)量,服務(wù)于學(xué)校人才培養(yǎng)模式改革與實踐。為此,課程組在省校級教學(xué)研究課題的支助下開展了基于項目的數(shù)據(jù)結(jié)構(gòu)與算法教學(xué)改革與實踐。
2基于項目的教學(xué)模式
基于項目的教學(xué)模式是指基于項目的學(xué)習(xí)(Project based Learning,PBL)模式。它是以學(xué)習(xí)/研究某種或多種學(xué)科的概念和原理為中心,在真實世界中借助多種資源開展探究活動,并在一定時間內(nèi)解決一系列相互關(guān)聯(lián)問題的一種教學(xué)/學(xué)習(xí)模式。
2.1項目教學(xué)模式構(gòu)成要素
基于項目的學(xué)習(xí)模式主要由“內(nèi)容、活動、情境、結(jié)果”四大要素構(gòu)成。
(1) 內(nèi)容:學(xué)科的核心觀念和原理
PBL模式的主要學(xué)習(xí)內(nèi)容是在現(xiàn)實生活和真實情境中表現(xiàn)出來的各種復(fù)雜的、非預(yù)測性的、多學(xué)科知識交叉的問題。這種內(nèi)容的定位體現(xiàn)了當(dāng)今教育教學(xué)改革發(fā)展的價值取向,因為它使得師生集中精力,對學(xué)科知識核心概念和觀點進行深度學(xué)習(xí)和研究。
(2) 活動:生動有效的學(xué)習(xí)策略
PBL模式的活動主要是指學(xué)生采用一定的技術(shù)工具和一定的研究方法對問題求解所采取的探究行動。通常開展
課題支助:江西師范大學(xué)實驗教改項目,江西省高等學(xué)校教學(xué)研究課題《“數(shù)據(jù)結(jié)構(gòu)”綜合性課程設(shè)計教學(xué)改革》,江西省教育廳科技項目#GJJ08155。
這種活動的順序是:(A)結(jié)學(xué)生呈現(xiàn)有一定難度的問題;(B)學(xué)生通過各種途徑搜尋資料,如實地調(diào)查研究、上網(wǎng)搜索;(C)對所掌握的資料進行相應(yīng)的處理、加工并生成一定的信息,從而找到問題的答案。
(3) 情境:特殊的學(xué)習(xí)環(huán)境
PBL模式注重促進學(xué)生之間的合作學(xué)習(xí),同時也支持學(xué)生的個別化學(xué)習(xí)。PBL模式中的情境作用定位主要表現(xiàn)在:(A)促進個人與個人之間以及個人和社會團體間的合作;(B)鼓勵學(xué)生使用并掌握技術(shù)工具。
(4) 結(jié)果:豐富的學(xué)習(xí)成果
PBL模式強調(diào)促進學(xué)生掌握豐富的工作技能并將這些技能運用于終身學(xué)習(xí)中。其成果主要包括:(A)運用知識的技能和策略;(B)特定的技能、計劃/部署、態(tài)度以及成功開展工作的信念。
2.2項目教學(xué)模式操作流程
PBL模式強調(diào)的是以學(xué)生為中心,強調(diào)小組合作學(xué)習(xí),要求學(xué)生對現(xiàn)實生活中的真實性問題進行探究。通常,其操作流程分為“選定項目—制定計劃—活動探究—作品制作—成果交流—活動評價”等六個步驟。
項目的選擇由學(xué)生來進行,教師在此過程中作為指導(dǎo)者。計劃的內(nèi)容包括學(xué)習(xí)時間的詳細安排和活動計劃?;顒犹骄渴琼椖繉W(xué)習(xí)的核心或主體部分。制作作品是PBL模式區(qū)別于一般活動教學(xué)的典型特征,該過程與活動探究交融在一起,在作品制作的過程中,學(xué)生運用在學(xué)習(xí)過程中所獲得的知識和技能來完成作品的制作。要求對他們所研究的項目進行描述,并且展示他們的研究成果,作品是學(xué)生在項目學(xué)習(xí)中所獲知識和技能的直接反映。
協(xié)作是計算機工作者應(yīng)該具備的基本素質(zhì),基于項目的教學(xué)模式要求學(xué)生以項目小組的形式開展團隊合作,共同完成作品的制作,顯然這對提高他們的創(chuàng)新能力、團隊協(xié)作能力都是非常有益的。
正是因為項目協(xié)作教學(xué)模式的上述顯著優(yōu)點,2005年起,我們就在“數(shù)據(jù)結(jié)構(gòu)與算法”的教學(xué)中引入項目教學(xué)模式作為一種課堂教學(xué)的輔助手段。利用信息技術(shù)支持下的PBL模式輔助教學(xué)過程,幫助學(xué)生提高解決問題與分析問題的能力,培養(yǎng)信息技術(shù)工作者所必須的團隊合作精神。實踐表明,項目教學(xué)模式指導(dǎo)下的教學(xué)實踐對促進課程建設(shè)起到了十分明顯的作用。近年來,培養(yǎng)的學(xué)生在算法分析與設(shè)計方面的能力有了明顯的提高,大大提高了“數(shù)據(jù)結(jié)構(gòu)與算法”課程的教學(xué)質(zhì)量。
3課程教學(xué)改革的舉措
信息技術(shù)的發(fā)展,為開展項目教學(xué)模式提供了很好的資源平臺。近三年,我們圍繞項目教學(xué)模式在“數(shù)據(jù)結(jié)構(gòu)與算法”課程上進行了以下的改革舉措。
(1) 借助信息技術(shù)支持PBL活動設(shè)計
建構(gòu)主義認為,學(xué)習(xí)者的知識是在一定的情境下,借助他人的幫助,利用必要的學(xué)習(xí)資源,通過意義自主建構(gòu)的方式而獲得。因此,設(shè)計一定的情境和活動是PBL教學(xué)設(shè)計最重要的一環(huán)。我們在“數(shù)據(jù)結(jié)構(gòu)與算法”課程中以PBL模式流程為主線,來設(shè)計教師和學(xué)生所從事的各類活動。為幫助學(xué)生選定題目,教師除了在日常的課程教學(xué)中引導(dǎo)學(xué)生選題外,還專門開展專題講座,目的是引發(fā)學(xué)生對某一個或若干專題感興趣,期間也可以給學(xué)生感興趣的專題講授一些概括性的知識。例如,我們結(jié)合數(shù)據(jù)結(jié)構(gòu)介紹“互聯(lián)網(wǎng)搜索引擎原理”的講座后,極大地激發(fā)了學(xué)生的學(xué)習(xí)興趣,老師在這個講座中可以適當(dāng)?shù)亟榻B搜索引擎需要用到的數(shù)據(jù)結(jié)構(gòu)與算法知識,如模式匹配、散列檢索等算法,進一步增強了學(xué)生學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)與算法”的興趣。
作品展示也是一種有效的激勵手段,通過展示一些學(xué)生比較好的作品,可以讓學(xué)生增強自信力。如在講到線性表一章時,我們給學(xué)生演示上一級學(xué)生所做的“基于線性表的學(xué)生信息管理系統(tǒng)”,對于剛接學(xué)完C程序設(shè)計接觸數(shù)據(jù)結(jié)構(gòu)的學(xué)生來講,學(xué)長們留下的這些好的作品給了他們巨大的榜樣,許多學(xué)生躍躍欲試,希望自己很快能投入到項目的制作中。
為了便于學(xué)生通過網(wǎng)絡(luò)進行協(xié)作學(xué)習(xí),我們開發(fā)了數(shù)據(jù)結(jié)構(gòu)網(wǎng)絡(luò)教學(xué)平臺如圖1所示。借助于網(wǎng)絡(luò)平臺,構(gòu)建了一個虛擬學(xué)習(xí)情境。
我們精心設(shè)計了與數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的項目,根據(jù)學(xué)生的興趣及其選題,再將學(xué)生分成若干個小組,然后指定或由學(xué)生推選出各組的組長。組長相當(dāng)于軟件項目中的項目經(jīng)理,負責(zé)整個軟件項目的組織協(xié)調(diào)。學(xué)生通過聽專題報告、文獻查閱,頭腦風(fēng)暴等環(huán)節(jié),每個成員提出自己的各種想法并對其他組員的意見進行評價,然后由小組長綜合意見,確定本小組的研究項目。
(2) 采用軟件工程思想指導(dǎo)項目教學(xué)模式
在項目教學(xué)模式中,我們按照軟件工程的思想,要求學(xué)生進行需求分析、確定時間計劃,確定行動方案、確定最終作品的形式、確定小組內(nèi)的任務(wù)分工,教師負責(zé)審定教學(xué)計劃、并進行必要的修改。值得一提的時,剛開始進行項目教學(xué)模式改革時教師的工作量是非常大的,每個教師在完成教學(xué)工作的同時,還要額外地完成多個項目的指導(dǎo)。但經(jīng)過一屆的教學(xué)后,上一屆留下的資源可以給下一屆學(xué)生借鑒,上一屆學(xué)生中選拔的優(yōu)秀學(xué)生可以作為我們開展項目教學(xué)的“助理教師”,讓他們參與項目的審定,一方面節(jié)省了任課教師大量的時間,另一方面大大提高了這批學(xué)生的實際工作能力。
項目組在確定題目后,在“助教”和老師的共同參與下開展項目制定項目實施計劃,開展項目研究,定期提交項目階段性的研究成果或文檔報告,并在工作室定期介紹項目組的階段性成果。
(3) 師范教育技能與專業(yè)教育相融合
為了提高師范生教師教育技能,我們還要求學(xué)生在匯報時精心制作演示文稿,精心準備,在規(guī)定的時間內(nèi)完成項目介紹,這種將師范教育技能的培養(yǎng)融合到專業(yè)課程的教學(xué)中的做法收效很好。對于每個項目組進行項目成品匯報時,要求匯報人以教師的角度來向大家介紹本項目組的成果,同時要求其展示軟件項目的成品,通過這種訓(xùn)練方式,使得學(xué)生在講述一個問題時,不經(jīng)意地就會站在教師的角度去考慮問題,通過一段時間的煅煉,很多學(xué)生的教師教育技能得到了很大的提高。很多受過這種訓(xùn)練的學(xué)生在參加省校師范生教師教育技能大賽上獲獎。很多學(xué)生表示,這種訓(xùn)練比起他們單純地接受教育學(xué)原理教育的效果要好得多。
除了教師指定項目外,學(xué)生也可自定項目。例如,一次我們布置了一道算法設(shè)計習(xí)題如下:給定一個w*h的方陣。每個小方塊可能有也可能沒有游戲塊。如圖2所示。
需要判斷任意給定兩個游戲塊是否有一條路線連通。并且這條路滿足以下兩個條件:①它必須由直線段構(gòu)成,每條線段只能是橫向或豎向。②它不能穿過任意的游戲塊(允許路徑暫時的離開方陣)。
部分學(xué)生在完成這道習(xí)題后,主動提交了一份設(shè)計一個動態(tài)演示該算法的程序設(shè)計項目報告。程序采用Java語言編寫,用圖形界面模擬廣度優(yōu)先搜索路徑的過程。圖3是該項目作品演示搜索過程的一個界面。
圖中所示的卡通人物在算法自動生成的游戲方格中可以動態(tài)演示從入口到出口采用廣度優(yōu)先搜索路徑的過程。在匯報該項目時,這些學(xué)生還制作了講解用的演示文稿,整個匯報層次清晰,讓很多同學(xué)受益蜚淺。通過這個項目,學(xué)生不僅對數(shù)據(jù)結(jié)構(gòu)中的廣度優(yōu)先算法有了深刻的理解,更為重要的是,通過Java語言開發(fā),鍛煉了學(xué)生的軟件開發(fā)能力,使他們盡可能早地接受到了軟件工程訓(xùn)練。
(4) 改革成績評價機制,充分調(diào)動學(xué)生的學(xué)習(xí)主動性
為了讓學(xué)生有激情參與到項目教學(xué)模式中來,我們改革了傳統(tǒng)的教學(xué)成績評定機制,期末理論成績考試只占總成績的50%,另外50%成績來源于學(xué)生的項目實踐成績。學(xué)院建有的機器人開放實驗室,實驗室成員從數(shù)據(jù)結(jié)構(gòu)與算法方法具有較強動手能力的學(xué)生中選拔。學(xué)校ACM程序設(shè)計競賽隊的成員也基本上來自其中的優(yōu)秀學(xué)生。在課程項目中表現(xiàn)突出的學(xué)生有更多的機會參與到學(xué)院各類橫向或縱向課題的研究梯隊。以上激勵措施,極大的調(diào)動了學(xué)生的學(xué)習(xí)主動性。
5教學(xué)改革效果
近3年來,在“數(shù)據(jù)結(jié)構(gòu)與算法”教學(xué)綜合改革中,我們以項目教學(xué)模式為指導(dǎo),在“數(shù)據(jù)結(jié)構(gòu)與算法”教學(xué)中精心設(shè)計項目,以軟件工程理論為指導(dǎo),使學(xué)生從低年級開始就對軟件工程思想有了較深的感性認識。強化師范生的教師教育技能訓(xùn)練,率先將師范技能訓(xùn)練融合到專業(yè)課程的教學(xué)中,取得了非常好的教學(xué)成效,學(xué)生直接參與制作的《數(shù)據(jù)結(jié)構(gòu)課件》獲江西省高校第三屆優(yōu)秀多媒體課件大賽一等獎。通過這種項目訓(xùn)練,不僅加深了學(xué)生對課程理論知識的理解,更為重要的是,學(xué)生學(xué)會了協(xié)作與探究學(xué)習(xí)。近年來,學(xué)生多次在全國機器人大賽中獲獎,設(shè)計的軟件作品多次獲得電子大賽獎勵,這些成績的取得都與學(xué)校積極開展教學(xué)研究,改革課堂教學(xué)方法,將理論與實際應(yīng)用相結(jié)合,注重啟發(fā)式教學(xué),注意學(xué)生創(chuàng)新能力的培養(yǎng)等舉措直接相關(guān)。
以上工作使得“數(shù)據(jù)結(jié)構(gòu)與算法”課程的教學(xué)質(zhì)量從質(zhì)的方面得到了很大的提高。達到了教師滿意、學(xué)生受益的雙重教學(xué)效果。課程組為此獲江西省高等學(xué)校第10批優(yōu)秀教學(xué)成果二等獎。
參考文獻
[1] 游海,徐曉泉,鐘志賢著. 培養(yǎng)創(chuàng)新精神 提高實踐能力—以學(xué)生為主體的教學(xué)模式,第1版[M]. 南昌:江西高校出版社,2005:42-61.
[2] 王珠珠,陳慶貴. 《基于現(xiàn)代信息技術(shù)環(huán)境下的學(xué)與教的理論與實踐研究》報告(上)[J]. 中國電化教育,2006,(238):5-11.
[3] 揭安全. 基于網(wǎng)絡(luò)協(xié)作教學(xué)模式的數(shù)據(jù)結(jié)構(gòu)課程資源建設(shè)與教學(xué)實踐[C]. 2007大學(xué)計算機課程報告論壇論文集[M]. 北京:高等教育出版社,2008.
[4] 鄭曉麗,王峰. 精品課程協(xié)作探究式學(xué)習(xí)平臺的構(gòu)建[J]. 中國教育信息化,2007,(2):33-35.
[5] 李云清,楊慶紅,揭安全. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:人民郵電出版社,2004.
[6] 陳越,何欽銘,馮雁.“數(shù)據(jù)結(jié)構(gòu)”綜合性課程設(shè)計教學(xué)探索與實踐[J]. 計算機教育,2008,(8).