前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇數(shù)據(jù)結(jié)構(gòu)實驗報告范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);實驗教學(xué);教學(xué)改革
作者簡介:劉志鵬(1980-),男,江蘇南京人,南京郵電大學(xué)計算機學(xué)院,講師;段衛(wèi)華(1977-),男,江蘇南京人,南京郵電大學(xué)計算機學(xué)院,講師。(江蘇 南京 210003)
基金項目:本文系南京郵電大學(xué)計算機學(xué)院教學(xué)改革項目(項目編號:12)的研究成果。
中文圖書分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)01-0132-02
“數(shù)據(jù)結(jié)構(gòu)”課程是計算機科學(xué)與信息管理等專業(yè)的核心課程之一,它在計算機領(lǐng)域的重要性僅次于編程基礎(chǔ)。[1]我國制定的CCC2002體系強調(diào)了“數(shù)據(jù)結(jié)構(gòu)”在計算學(xué)科及電子信息學(xué)科中的作用與地位。該課程一般以“計算機高級程序設(shè)計語言”為先修課程,也是“操作系統(tǒng)”、“數(shù)據(jù)庫”、“編譯原理”等專業(yè)課程的基礎(chǔ)。“數(shù)據(jù)結(jié)構(gòu)”課程涉及的知識點較多、實踐性很強,除了要求學(xué)生有嚴密的邏輯思維外,還需要擁有較好的編程實踐基礎(chǔ)。目前,大多數(shù)高校“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)工作均在一學(xué)期內(nèi)完成。學(xué)生學(xué)習任務(wù)較重,往往在學(xué)習過程中出現(xiàn)“重理論、輕實踐”的現(xiàn)象。許多學(xué)生在設(shè)計和實現(xiàn)算法方面表現(xiàn)不佳。為了在有限的學(xué)時中得到更好的教學(xué)效果,使學(xué)生在算法設(shè)計和實現(xiàn)兩個方面的能力都有所提高,筆者從“數(shù)據(jù)結(jié)構(gòu)”課程實驗教學(xué)環(huán)節(jié)入手,嘗試了一系列的探索和研究。
一、實踐教學(xué)目前存在的問題
“數(shù)據(jù)結(jié)構(gòu)”是一門實踐性很強的課程。實踐有助于學(xué)生更好地理解和應(yīng)用所學(xué)習的理論知識,實踐環(huán)節(jié)是無法替代的,直接影響學(xué)生的學(xué)習效果。然而,目前的“數(shù)據(jù)結(jié)構(gòu)”實驗教學(xué)環(huán)節(jié)普遍存在如下的一些問題:
1.學(xué)生對實踐環(huán)節(jié)重視不夠
目前,學(xué)生對“數(shù)據(jù)結(jié)構(gòu)”課程實踐環(huán)節(jié)普遍不夠重視。主要原因如下:
第一,主流開發(fā)語言和集成開發(fā)環(huán)境,如C++、Java等,均提供了現(xiàn)成的數(shù)據(jù)結(jié)構(gòu)程序庫。程序員可直接調(diào)用程序庫中的函數(shù)而無需重頭編寫底層數(shù)據(jù)結(jié)構(gòu)。部分學(xué)生認為,只要掌握程序庫的使用方法,便無需實踐數(shù)據(jù)結(jié)構(gòu)的底層實現(xiàn)。然而,無論是C++的STL和Boost程序庫,還是Java語言的集合類,均無法滿足某些程序苛刻的性能要求。因此對學(xué)生而言,僅僅掌握某種特定編程語言的程序庫是不夠的。
第二,由于“數(shù)據(jù)結(jié)構(gòu)”課程以筆試作為衡量學(xué)生學(xué)習成果的主要方式,加上實踐環(huán)節(jié)考查指標并不明確,造成很多同學(xué)不重視實踐環(huán)節(jié),導(dǎo)致實踐環(huán)節(jié)效果不理想。
第三,學(xué)生對“數(shù)據(jù)結(jié)構(gòu)”在操作系統(tǒng)、數(shù)據(jù)庫、編譯器中的實際應(yīng)用知之甚少,部分同學(xué)雖然知道“數(shù)據(jù)結(jié)構(gòu)”課程十分重要,但并不知道數(shù)據(jù)結(jié)構(gòu)在各個領(lǐng)域的廣泛應(yīng)用。
2.學(xué)生程序設(shè)計能力薄弱
學(xué)生程序設(shè)計能力薄弱,是部分高校長期普遍存在的現(xiàn)象。究其原因,主要包括以下兩個方面:
首先,部分學(xué)生程序設(shè)計基礎(chǔ)較薄弱。對于C++的某些基本語法并不熟悉,也不了解使用封裝、繼承和多態(tài)型在編寫大規(guī)模代碼過程中帶來的好處。大量的對語法知識的要求導(dǎo)致學(xué)生難以閱讀和編寫程序,造成學(xué)生思想上的困惑。
其次,對程序設(shè)計能力薄弱、基礎(chǔ)較差的學(xué)生而言,某些優(yōu)秀教材[2,3]并不適合。學(xué)生閱讀這些教材時,雖然能夠理解算法的含義,但是卻無法將偽代碼轉(zhuǎn)換成對應(yīng)編程語言的程序代碼。這一方面導(dǎo)致學(xué)生無法動手實踐,另一方面也進一步削弱了學(xué)生的編程能力。
3.實踐過程中無法得到及時的反饋
許多學(xué)生在“數(shù)據(jù)結(jié)構(gòu)”實踐課中采用先編寫、后調(diào)試的方法,這種編寫代碼的方式對代碼量較少、代碼邏輯較簡單的程序是有效的。但對于代碼量較多、代碼邏輯復(fù)雜的“數(shù)據(jù)結(jié)構(gòu)”程序則不可取。由于拼寫和邏輯錯誤,導(dǎo)致最終程序錯誤較多,難以調(diào)試。由于在代碼編寫過程中無法得到及時的反饋,導(dǎo)致學(xué)生喪失了進一步學(xué)習的興趣。
此外,編寫代碼、正確執(zhí)行后,許多同學(xué)不及時總結(jié)經(jīng)驗教訓(xùn),反復(fù)犯相同錯誤。對待實驗報告撰寫工作態(tài)度不端正。教師沒有及時將實驗報告成績和其中存在的問題及時反饋給學(xué)生,部分學(xué)生不了解實驗報告和實驗的評分細則,對實踐環(huán)節(jié)最終成績不滿,也反過來削弱了學(xué)生學(xué)習該門課程的興趣。
二、實踐環(huán)節(jié)的教學(xué)改革
針對教學(xué)中存在的以上情況,筆者主要從以下幾個方面進行實踐環(huán)節(jié)的探索和改革:
1.引導(dǎo)學(xué)生重視實踐環(huán)節(jié)
第一,加重實踐環(huán)節(jié)占用總評成績的比例,從原先的10%-15%增加到20%。改變傳統(tǒng)模式下主要依靠平時作業(yè)、課堂表現(xiàn)和期末考試成績的評價模式。增強實踐環(huán)節(jié)比重,旨在督促學(xué)生參與實踐、編寫程序和撰寫報告。
第二,在課堂教學(xué)中,提綱挈領(lǐng)地講解C++、Java語言程序庫的不足之處,使學(xué)生明確具備編寫數(shù)據(jù)結(jié)構(gòu)代碼能力的重要性。
第三,針對多種數(shù)據(jù)結(jié)構(gòu),講解其在操作系統(tǒng)、[4]數(shù)據(jù)庫[5]和編譯器中的實際應(yīng)用。開源軟件為“數(shù)據(jù)結(jié)構(gòu)”教學(xué)提供了大量的實際案例。通過介紹數(shù)據(jù)結(jié)構(gòu)的實際應(yīng)用,提升學(xué)生的學(xué)習興趣,提高學(xué)生對實踐環(huán)節(jié)的重視程度和興趣。
最后,盡早明確實驗任務(wù)和目標。讓學(xué)生在教學(xué)過程和實踐環(huán)節(jié)中明確認識到,只有按部就班,才可以完成實驗任務(wù)。在實踐環(huán)節(jié)中,不能隨著學(xué)生的完成情況無限制地增加題目的要求和難度,而應(yīng)做到因材施教,因人而異。
2.提升學(xué)生程序設(shè)計能力
教材是學(xué)生入門和提高的主要材料。筆者選用人民郵電出版社陳慧南編著的《數(shù)據(jù)結(jié)構(gòu):使用C++語言描述(第2版)》作為“數(shù)據(jù)結(jié)構(gòu)”課程的教材。該教材2007年入選普通高等教育“十一五”國家級規(guī)劃教材,其中對每一種主要的數(shù)據(jù)結(jié)構(gòu)均給出了C++代碼實現(xiàn)。與傳統(tǒng)經(jīng)典教材[2,3]相比,省略了學(xué)生將偽代碼轉(zhuǎn)換為可執(zhí)行代碼的中間過程。學(xué)生在實現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)時可直接參考教材程序完成。該教材列出了“數(shù)據(jù)結(jié)構(gòu)”中使用的C++知識點,并指導(dǎo)學(xué)生在課后自行開展有針對性的復(fù)習。通過邊復(fù)習、邊學(xué)習的方式,部分同學(xué)能夠克服程序設(shè)計能力不足的缺陷,建立理解和實踐“數(shù)據(jù)結(jié)構(gòu)”課程的信心。
針對許多學(xué)生僅能理解C++代碼片段,無法將這些代碼片段合成完整的程序問題,筆者通過課堂教學(xué)和實踐環(huán)節(jié)兩個方面加以彌補。在課堂教學(xué)中,教師至少編寫一個完整的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。通過演示,使學(xué)生了解編寫代碼的具體動態(tài)流程和技巧。實踐環(huán)節(jié)中,采用循序漸進的代碼編寫方式,即課堂上先給出對應(yīng)算法完整程序的框架,并演示程序得到的最終結(jié)果,讓學(xué)生去填寫框架中的函數(shù)內(nèi)容,接下來要求學(xué)生獨立完成一些函數(shù)模塊,具體操作方法與文獻[6]中的第一項研究方法相同。實踐表明,采用結(jié)對編程、獨立完成實驗報告的方式與獨自完成實踐環(huán)節(jié)的效果相比較,實踐環(huán)節(jié)學(xué)生平均成績高5~7分。
3.及時反饋實踐結(jié)果
鼓勵學(xué)生在編寫代碼前,首先編寫測試用例。一方面有助于學(xué)生了解代碼中的邊界條件,考慮代碼實現(xiàn)中的各種特殊情況。另一方面也有助于學(xué)生在編寫代碼的過程中及時獲得反饋。避免傳統(tǒng)編寫代碼方式所導(dǎo)致的程序無法正常運行的情況,增強學(xué)生的信心。
第二,指導(dǎo)學(xué)生編寫代碼的正確次序。例如,在編寫單鏈表類時,先實現(xiàn)構(gòu)造函數(shù)和析構(gòu)函數(shù),再實現(xiàn)插入函數(shù)和打印函數(shù)。這樣便可先檢測插入函數(shù)是否正常工作,在此基礎(chǔ)上,再完成刪除函數(shù)等其他功能函數(shù)。這種迭代開發(fā)、單元測試,將錯誤局部化的思想對于培養(yǎng)學(xué)生正確的程序設(shè)計觀念十分重要。指導(dǎo)學(xué)生重視代碼重構(gòu)的工作并鼓勵學(xué)生重構(gòu)代碼,通過介紹編碼規(guī)范,強調(diào)良好代碼風格的重要性。
第三,指導(dǎo)學(xué)生調(diào)試程序。針對Visual C++ 6.0集成開發(fā)環(huán)境和gcc編譯器,總結(jié)學(xué)生在編碼時常犯的各種編程錯誤,并給出相應(yīng)的代碼調(diào)試方法。通過不斷完善文檔、分發(fā)并反饋,從而減輕教師的工作量,培養(yǎng)學(xué)生的參與精神和不斷總結(jié)的能力。
最后除課后答疑外,筆者還及時通過電子郵件反饋疑難解答和平時成績。教師將有代表性的提問進行總結(jié)和群發(fā)郵件,使學(xué)生能及時掌握自己的最新成績,并允許學(xué)生質(zhì)疑分數(shù)的公平性和公正性,制定較詳細的實踐環(huán)節(jié)評分標準,明確實驗報告的結(jié)構(gòu),要求學(xué)生重視需求分析、概要設(shè)計,并要如實撰寫總結(jié)和體會部分。許多同學(xué)的總結(jié)都停留在表面,并沒有總結(jié)實際學(xué)到的編程知識和調(diào)試方法。
以下是在“數(shù)據(jù)結(jié)構(gòu)”課程實踐環(huán)節(jié)中的的評分標準:
能獨立查閱文獻資料,較好地理解課題任務(wù)并提出實施方案;內(nèi)容詳實準確、文字流暢,符合規(guī)定內(nèi)容及字數(shù)要求;論證、分析、設(shè)計、計算、結(jié)構(gòu)、建模、實驗正確合理;用語符合技術(shù)規(guī)范,圖表、公式清楚;努力學(xué)習,遵守紀律,作風嚴謹務(wù)實,按期完成規(guī)定的任務(wù)。
三、實踐環(huán)節(jié)教學(xué)效果
1.課堂和實驗課教學(xué)效果
通過課堂講授和實踐性環(huán)節(jié)鍛煉,學(xué)生能端正學(xué)習態(tài)度,樹立編寫代碼的信心和決心。通過制定合理的編程任務(wù),每個學(xué)生都能動手編寫程序。通過動手實踐,加深了對數(shù)據(jù)結(jié)構(gòu)相關(guān)知識點的理解。采用結(jié)對編程、測試優(yōu)先和代碼重構(gòu),學(xué)生認識到編寫能夠運行的代碼和優(yōu)秀代碼的差異。有些同學(xué)能夠進一步完成更高難度的編程任務(wù),并參加國家級的比賽,如挑戰(zhàn)杯等。
2.實踐環(huán)節(jié)效果反饋
本次共有97名學(xué)生學(xué)習“數(shù)據(jù)結(jié)構(gòu)”課程,每個學(xué)生需要完成4份實驗報告。統(tǒng)計結(jié)果表明,上交報告的積極性、分析設(shè)計的規(guī)范性和總結(jié)體會,與去年相比,均有很大程度的提高。拖延上交實驗報告的情況從去年的11.0%降低到3.1%,實驗報告的內(nèi)容更加規(guī)范,總結(jié)體會內(nèi)容大多集中在編程過程中遇到的問題及解決方案上。通過填充和擴充代碼兩種編程方法,絕大多數(shù)學(xué)生完成了數(shù)據(jù)結(jié)構(gòu)實踐環(huán)節(jié)的基本任務(wù),如單鏈表的實現(xiàn)等。51.5%的同學(xué)能夠完成更加復(fù)雜的程序設(shè)計任務(wù),如雙向鏈表等。
“數(shù)據(jù)結(jié)構(gòu)”課程是計算機專業(yè)的專業(yè)基礎(chǔ)課程,應(yīng)用范圍非常廣泛。本文分析了數(shù)據(jù)結(jié)構(gòu)實踐教學(xué)中目前存在的一些問題,積極探索和嘗試新的教學(xué)方式,在一定程度上調(diào)動了學(xué)生的積極性,為學(xué)生的軟件開發(fā)打下了良好的基礎(chǔ)。但對于課程體系的建設(shè)及教學(xué)方法的改進等問題,仍然需要開展進一步的研究。
參考文獻:
[1]Mehran Sahami.Expanding the Frontiers of Computer Science Education[EB/OL].http://wccce11.unbc.ca/wccce11-sahami.pdf.
[2]嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,2011.
[3]科曼,等.算法導(dǎo)論[M].潘金貴,等譯.北京:機械工業(yè)出版社,
2006.
[4]毛德操,胡希明.Linux內(nèi)核源代碼情景分析[M].杭州:浙江大學(xué)出版社,2001.
論文摘要:在建構(gòu)式教育理論的指導(dǎo)下,以就業(yè)需求為目標,針對數(shù)據(jù)結(jié)構(gòu)教學(xué)中教與學(xué)目標不明、學(xué)習信心和動力不足、編程基礎(chǔ)薄弱等問題,提出建構(gòu)式的數(shù)據(jù)結(jié)構(gòu)教學(xué)方法,在實際教學(xué)中取得較好的教學(xué)效果,這些措施也可作為其他計算機專業(yè)課程教學(xué)的參考。
近年來,在產(chǎn)業(yè)界急需大量軟件開發(fā)人員的情況下,普通本科院校計算機專業(yè)學(xué)生的就業(yè)率持續(xù)走低。網(wǎng)絡(luò)、報紙等媒體對計算機本科教育現(xiàn)狀多有批評,甚至出現(xiàn)了大學(xué)不如培訓(xùn)公司的極端觀點,嚴重影響了學(xué)生對專業(yè)課程的學(xué)習興趣、動力和信心。數(shù)據(jù)結(jié)構(gòu)是計算機專業(yè)的核心基礎(chǔ)課程,上承程序設(shè)計語言、離散數(shù)學(xué),下啟操作系統(tǒng)、編譯原理等課程,其重要性不言而喻。一方面,數(shù)據(jù)結(jié)構(gòu)學(xué)科具有難度大、抽象層次高、概念繁雜等特點,學(xué)生很難掌握,更不要說將抽象理論與就業(yè)實踐需求相結(jié)合。另一方面,國內(nèi)主流數(shù)據(jù)結(jié)構(gòu)教材和相應(yīng)的傳統(tǒng)教學(xué)模式側(cè)重于培養(yǎng)學(xué)生的計算機學(xué)科基礎(chǔ)理論素養(yǎng),而將如何通過組織數(shù)據(jù)結(jié)構(gòu)教學(xué)活動積極推動就業(yè)的問題留給了任課教師[1]。這造成了學(xué)生學(xué)習數(shù)據(jù)結(jié)構(gòu)的目標不明、信心和動力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結(jié)構(gòu)的兩大主要教學(xué)目標,并在實際教學(xué)過程中實踐建構(gòu)式教育理論,嘗試解決學(xué)生對專業(yè)認識不清、學(xué)習興趣不足、編程基礎(chǔ)薄弱等問題。一些做法得到了學(xué)生的認可和配合,成功地激發(fā)了學(xué)生的學(xué)習主動性、在一定程度上培育了學(xué)生的創(chuàng)新精神。
1面向就業(yè)需求的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標
教育要服務(wù)于社會生產(chǎn)需求。數(shù)據(jù)結(jié)構(gòu)教學(xué)也必須緊扣這一根本目標。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結(jié)構(gòu)教學(xué)的兩個主要目標:
1) 培養(yǎng)超越具體程序設(shè)計語言技巧的編程技術(shù)。
現(xiàn)階段是一個傳統(tǒng)的生產(chǎn)生活方式迅速向電子化、信息化轉(zhuǎn)變的時期。人們需要開發(fā)和維護更多、規(guī)模更大的計算機系統(tǒng)來滿足生產(chǎn)和生活的需要[2]。這就決定了具有熟練編程技術(shù)的程序員在很長時期內(nèi)都將受到產(chǎn)業(yè)界的青睞。大學(xué)對學(xué)生編程技術(shù)的培養(yǎng)始于程序設(shè)計語言的教學(xué),如C語言,Java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學(xué)生無所適從或者質(zhì)疑某門語言課程已經(jīng)過時無用的現(xiàn)象。甚至很多教師也在爭論講授何種編程語言。筆者看來掌握編程技術(shù)(而不僅僅是語言),回歸編程的本質(zhì)問題更加重要,無謂地追趕時髦不可取。作為編程語言課程的后續(xù),數(shù)據(jù)結(jié)構(gòu)教學(xué)的重要目標就是幫助學(xué)生理解編程的本質(zhì)、鍛煉編程技術(shù)以及學(xué)習提高編程技術(shù)的方法。
2) 培養(yǎng)圍繞復(fù)用的軟件開發(fā)方式。
隨著軟件規(guī)模的日益增大,軟件開發(fā)模式逐漸從“從無到有”的模式過渡到“從有到有”的模式,即復(fù)用現(xiàn)有的豐富的軟件資產(chǎn),開發(fā)新的應(yīng)用系統(tǒng)。事實上,復(fù)用的思想已經(jīng)被廣泛的用于軟件開發(fā)實踐之中,從各種各樣的程序庫、軟件開發(fā)包、軟件構(gòu)件、Web服務(wù)等各種可復(fù)用資產(chǎn)已經(jīng)簡化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結(jié)構(gòu)學(xué)科本身就是對軟件復(fù)用思想的一種實踐,它通過總結(jié)大量軟件系統(tǒng)中反復(fù)出現(xiàn)的數(shù)據(jù)結(jié)構(gòu)(如表、樹、圖、集合等),定義和實現(xiàn)處理這些數(shù)據(jù)結(jié)構(gòu)的基本操作,最終達到能夠在不同項目開發(fā)中反復(fù)應(yīng)用的目的。這些基本數(shù)據(jù)結(jié)構(gòu)和算法已經(jīng)被實現(xiàn)為可復(fù)用的產(chǎn)品隨著程序設(shè)計語言,如C++ STL、C# collections, Java collections等,并得到了廣泛的使用。因此,數(shù)據(jù)結(jié)構(gòu)教學(xué)的另一個重要目標就是引導(dǎo)學(xué)生習慣圍繞復(fù)用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結(jié)構(gòu)和算法庫。
其他傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標,如培養(yǎng)學(xué)生面向?qū)嶋H問題進行算法設(shè)計和分析的能力,培養(yǎng)學(xué)生計算機學(xué)科的基本理論素養(yǎng)和思維方式等也非常重要。但普通本科院校學(xué)生對理論內(nèi)容的接受能力以及將理論和現(xiàn)實就業(yè)需求相聯(lián)系的能力相對較弱且教學(xué)時間有限[3],筆者認為重點突破本節(jié)給出的兩個更具體、更可達的教學(xué)目標,并在實現(xiàn)這種具體教學(xué)目標的過程中潛移默化地培育學(xué)生的計算思維和理論素質(zhì),將會取得更佳的效果。
2建構(gòu)式數(shù)據(jù)結(jié)構(gòu)教學(xué)
教學(xué)理論研究以及教學(xué)實踐反饋均表明,學(xué)生主動學(xué)習的效果遠較被動地接受老師灌輸?shù)男Ч玫亩唷R虼耍瑸閷崿F(xiàn)上述教學(xué)目標,在建構(gòu)式教育理論的指導(dǎo)下,筆者探索并采用了一系列建構(gòu)式教學(xué)措施,激發(fā)學(xué)生的主動性和興趣,取得了較好效果。
建構(gòu)主義認為,學(xué)習并非學(xué)習者對教師所授知識的被動接受,而是學(xué)習者以自身已有知識和經(jīng)驗為基礎(chǔ)的主動建構(gòu)過程[4]。知識不僅是通過教師傳授而得到,更是學(xué)習者在一定的情境中,利用必要的學(xué)習資料,通過同化新知識、順化自身知識結(jié)構(gòu)的方式而獲得。建構(gòu)主義提倡在教師指導(dǎo)下的、以學(xué)習者為中心的學(xué)習,也就是說,既強調(diào)學(xué)習者的認知主體作用,又不忽視教師的指導(dǎo)作用,教師是意義建構(gòu)的幫助者、促進者,而不僅僅是知識的傳授者與灌輸者。學(xué)生是信息加工的主體、是意義的主動建構(gòu)者,而不僅僅是外部刺激的被動接受者和被灌輸?shù)膶ο蟆O旅鎻睦碚摻虒W(xué)和實踐教學(xué)兩個方面介紹我們采用的一些教學(xué)措施。
2.1理論教學(xué)措施
課堂教學(xué)是數(shù)據(jù)結(jié)構(gòu)教學(xué)活動的主要部分,充分利用課堂教學(xué)時間,激發(fā)學(xué)生學(xué)習數(shù)據(jù)結(jié)構(gòu)的興趣和信心,幫助學(xué)生建立學(xué)習數(shù)據(jù)結(jié)構(gòu)的環(huán)節(jié)非常重要。我們采用了如下措施:
1) 組織小型討論。
好的開始是成功的一半,好的課堂教學(xué)須在上課之初就抓住學(xué)生的注意力,讓學(xué)生帶著輕松、愉快的心情聽課。我的做法是在課堂的前5分鐘,提出一個學(xué)生感興趣的話題,組織若干個有3~5位同學(xué)參與的小型討論。到一個學(xué)期結(jié)束時,每位同學(xué)都有至少一次的發(fā)言機會。討論的主題可以靈活設(shè)置,如時事、技術(shù)、社會熱點等。有時,課堂中間學(xué)生比較疲憊、注意力下降的時候,也可以穿插一點討論,改善課堂環(huán)境。大多數(shù)學(xué)生非常喜歡這種討論活動,積極參與其中,成為課堂的一部分,從被動上課轉(zhuǎn)變?yōu)橄矚g上課。
2) 重建理論知識所針對的問題。
國內(nèi)的經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材側(cè)重嚴謹?shù)睦碚摚^少討論各種概念、算法出現(xiàn)的背景以及探討的問題是否仍然具有現(xiàn)實價值。而回答這些問題能夠幫助學(xué)生重建理論知識所針對的問題原型,重現(xiàn)解決方案的提出、發(fā)展乃至最終成熟的整個過程,更有助于培養(yǎng)學(xué)生解決實際問題的能力,養(yǎng)成批判性、創(chuàng)新性思考的習慣。眾所周知,關(guān)于樹的存儲方法很多,有雙親表示法,孩子表示法和二叉鏈表表示法[5],其中以樹的二叉鏈表表示法使用最廣,但其他存儲方法也有其適合的應(yīng)用。例如,在利用樹表示各個集合,求集合中的等價類時,雙親表示法更為合適。每一個集合都用樹的雙親表示法存儲時,并設(shè)樹的根結(jié)點的值為集合名,集合中的每個成員都對應(yīng)一個結(jié)點,這樣很容易找到一個元素所屬的子集(順著雙親指針找樹的根結(jié)點)。
3) 組織“我來講”活動。
數(shù)據(jù)結(jié)構(gòu)涉及很多抽象的概念和算法,初學(xué)者很難理解。而教師則對理論內(nèi)容比較精熟,常常傾向于從理論的角度逐步遞進、展開講解,這就增加了學(xué)生的學(xué)習難度。教師和學(xué)生在教學(xué)語言上的鴻溝是影響教學(xué)效果的一個重要障礙。教師當然可將抽象的理論概念與生活中更形象的概念進行類比,幫助學(xué)生理解,也可以將復(fù)雜的算法過程用多媒體動畫模擬出來,直觀地展示給學(xué)生,幫助學(xué)生掌握。但一方面,根據(jù)建構(gòu)主義理論,教師和學(xué)生的知識背景不同,由教師設(shè)計概念類比語境和算法模擬動畫實際上仍然是基于教師的知識結(jié)構(gòu)對知識點進行的同化和順化,而不是對學(xué)生知識體系的直接建構(gòu)。另一方面,教師的經(jīng)驗和智慧有其局限性,未必總能夠找到最適合的類比語境和動畫模擬。為此,筆者采用了充分發(fā)揮學(xué)生智慧的方法,組織“我來講”活動,要求學(xué)生通過設(shè)計算法的動畫模擬,創(chuàng)建概念的類比語境等方式進行學(xué)習,并隨機選擇學(xué)生走上講臺對抽象理論概念和復(fù)雜算法進行說明。這樣不但能夠調(diào)動學(xué)生思考問題,還能幫助那些無法完成自我知識體系建構(gòu)的同學(xué)從學(xué)生的視角去理解同一個問題。例如,對于n維數(shù)組是元素為n-1維數(shù)組構(gòu)成的線性表這一遞歸的類型定義,可采用符號推理的方式,培養(yǎng)學(xué)生的理論素養(yǎng),而同時可鼓勵學(xué)生根據(jù)自己的理解將抽象理論具體化,建立幫助理解和記憶的現(xiàn)實語境。
2.2實踐教學(xué)措施
數(shù)據(jù)結(jié)構(gòu)是幫助具有基本編程語言基礎(chǔ)的學(xué)生錘煉編程技術(shù)的關(guān)鍵課程。它揭示了程序設(shè)計的基本面,即如何處理相互之間存在一種或多種數(shù)據(jù)關(guān)系的數(shù)據(jù)元素所構(gòu)成的集合、如何設(shè)計算法并分析算法的優(yōu)劣。若沒有相應(yīng)的配套實驗指導(dǎo)學(xué)生如何將理論應(yīng)用于實際問題,只是泛泛而談、紙上談兵,學(xué)生容易迷失在數(shù)據(jù)結(jié)構(gòu)的一連串復(fù)雜概念和算法之中,而不知道學(xué)習數(shù)據(jù)結(jié)構(gòu)的意義何在。為實現(xiàn)教學(xué)目標,筆者鎖定實驗內(nèi)容設(shè)置和實驗考核等兩個關(guān)鍵環(huán)節(jié),實踐了如下措施,取得了較好效果。
2.2.1實驗內(nèi)容設(shè)置
實驗內(nèi)容設(shè)置是進行實踐教學(xué)的最重要部分。從覆蓋知識點的角度看,實驗內(nèi)容須面向數(shù)據(jù)結(jié)構(gòu)教學(xué)目標,即實驗內(nèi)容須能夠鍛煉學(xué)生的編程技巧,如算法設(shè)計、調(diào)試、測試以及調(diào)優(yōu)等能力,還能夠讓學(xué)生體會到圍繞復(fù)用開展軟件開發(fā)的威力以及思路。從覆蓋教育對象的角度來看,實驗內(nèi)容須面向大多數(shù)同學(xué)并充分考慮優(yōu)秀同學(xué),即實驗內(nèi)容須劃分不同的層次,讓大多數(shù)學(xué)生能夠很容易入手,并讓有能力、有余力的學(xué)生能夠不斷地深入,直至形成綜合型課程設(shè)計。
基于以上考慮,并借鑒同行經(jīng)驗,筆者開展三個層次的實驗教學(xué)活動,一是要求所有學(xué)生都完成的實驗內(nèi)容,要求學(xué)生采用不同的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)同一個問題并進行對比分析,例如,分別使用靜態(tài)數(shù)組和動態(tài)分配的連續(xù)內(nèi)存區(qū)實現(xiàn)順序表,使用整型、字符型數(shù)組或者鏈表實現(xiàn)長整數(shù)的乘法,使用帶頭結(jié)點或不帶頭結(jié)點的循環(huán)鏈表模擬約瑟夫環(huán)等;二是組織程序設(shè)計競賽,讓部分學(xué)有余力的同學(xué)能夠在算法設(shè)計、程序?qū)崿F(xiàn)和調(diào)試、優(yōu)化等方面得到鍛煉和提高;三是設(shè)計綜合型課程設(shè)計鍛煉學(xué)生解決問題的綜合能力,并通過適當分組,培養(yǎng)學(xué)生團隊協(xié)作精神和能力,鍛煉學(xué)生解決問題的綜合能力的目標,最終達到以點帶面全面提高學(xué)生能力的目的。
2.2.2實驗考核手段
考核手段在教學(xué)環(huán)節(jié)中至關(guān)重要。考核手段是學(xué)生學(xué)習和鍛煉自身能力的風向標。為保證每位同學(xué)都能積極完成實驗并有所收獲,避免抄襲和敷衍的現(xiàn)象,筆者采取了綜合型的考核手段。其一,提交實驗成果,即程序及其運行結(jié)果;其二,記錄實驗過程、分析實驗結(jié)果以及總結(jié)實驗得失的實驗報告,對實驗報告進行選優(yōu)講評,培養(yǎng)學(xué)生撰寫科學(xué)實驗報告的能力;其三,每位同學(xué)必須面向教師講解自己編寫的程序,包括主要思路和細節(jié)性語法,優(yōu)秀的同學(xué)可走上講臺宣講自己的實驗方案和程序設(shè)計技巧。這就基本杜絕了學(xué)生相互之間抄襲程序和實驗報告的現(xiàn)象,使得學(xué)生真正能夠思考問題,并盡力動手完成實驗。綜合上述三種手段的綜合型考核方法既能夠達到督促大部分同學(xué)完成實驗、鍛煉動手能力目的,又能夠達到培養(yǎng)優(yōu)秀同學(xué)的目的。特別地,優(yōu)秀同學(xué)宣講活動能夠使學(xué)生觀摩到如何從學(xué)生的視角從無到有的解決問題的過程,這能夠培養(yǎng)學(xué)生解決實際問題的信心并激發(fā)其學(xué)習積極性。
3應(yīng)用中遇到的問題
建構(gòu)式教學(xué)模式在應(yīng)用和推廣過程中遇到的主要問題來自三個方面。其一,目前學(xué)生的課業(yè)負擔較重,習慣于被動“填鴨”而不習慣于主動“求索”,這是推動和開展建構(gòu)式教學(xué)模式的主要障礙。其二,建構(gòu)式教學(xué)活動,需要師生的密切交流,但現(xiàn)有師資不足難以滿足實際需求。一個可能的解決方法是綜合多門課程和多個老師,建構(gòu)整體的知識框架和學(xué)習體系,避免課程教學(xué)中的重復(fù)勞動,提高師資的利用率。另一個可能的解決方法是利用互聯(lián)網(wǎng)技術(shù),建立在線教學(xué)園地。其三,建構(gòu)式教學(xué)模式仍然處于探索階段,各學(xué)科缺乏建構(gòu)式教學(xué)素材。從筆者在實踐教學(xué)的體驗來看,應(yīng)盡量從學(xué)生的學(xué)習背景和能力成長規(guī)律出發(fā)而不僅僅是從學(xué)科背景出發(fā),為學(xué)生建構(gòu)知識體系設(shè)計更平滑的路線。
4結(jié)語
筆者提出將“培養(yǎng)超越具體程序設(shè)計語言技巧的編程技術(shù)”和“培養(yǎng)圍繞復(fù)用的軟件開發(fā)方式”作為普通本科院校的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標,在建構(gòu)式教育理論的指導(dǎo)下,設(shè)計并實踐了一系列建構(gòu)式教學(xué)措施,分析了應(yīng)用建構(gòu)式教學(xué)模式所遇到的一些問題。
未來將開展兩個方面的工作。一是通過問卷調(diào)查、統(tǒng)計分析等手段定量地分析建構(gòu)式教學(xué)方法的實際效果;二是創(chuàng)造和積累建構(gòu)式教學(xué)素材,如研究數(shù)據(jù)結(jié)構(gòu)課程設(shè)計過程中不同類型學(xué)生的知識建構(gòu)路線,挖掘并推廣其中優(yōu)秀的知識建構(gòu)方法。
參考文獻
[1] 教育部高等學(xué)校計算機科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會. 高等學(xué)校計算機科學(xué)與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)[M]. 北京:高等教育出版社,2006:8-101.
[2] 蔡敏,鄭尚志,梁寶華.“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革之我見[J]. 計算機教育,2009(4):50-51.
[3] 揭安全,李云清,楊慶紅,等. 項目教學(xué)模式指導(dǎo)的“數(shù)據(jù)結(jié)構(gòu)與算法”教學(xué)改革[J]. 計算機教育,2008(22):21-23.
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);高職高專;實踐教學(xué)改革
中圖分類號:G642 文獻標識碼:A 文章編號:1007-9599 (2012) 15-0000-02
1 課題研究的背景及意義
“數(shù)據(jù)結(jié)構(gòu)”是計算機專業(yè)及相關(guān)專業(yè)的一門重要專業(yè)基礎(chǔ)課程,是計算機專業(yè)教學(xué)計劃中的核心課程之一,在整個專業(yè)教學(xué)中占有極其重要的地位。對于高職高專學(xué)生來說,該課程具有一定的抽象性和動態(tài)性,在學(xué)習和理解上有較大的困難。因此,必須通過實驗環(huán)節(jié)加強對理論知識的理解和掌握,通過算法設(shè)計和上機實踐,培養(yǎng)學(xué)生數(shù)據(jù)抽象和程序設(shè)計能力是“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)別需要重視的環(huán)節(jié)。
實驗教學(xué)是高職高專院校教學(xué)過程中一個重要的環(huán)節(jié),是理論聯(lián)系實踐的橋梁。它不僅要培養(yǎng)學(xué)生掌握和深化知識的能力,更重要的是要引導(dǎo)學(xué)生掌握科學(xué)的思維方法,提高綜合分析問題和解決問題的能力,進而提高學(xué)用結(jié)合的實踐能力。所以,進行“數(shù)據(jù)結(jié)構(gòu)”課程實踐教學(xué)改革,一者是提高教學(xué)質(zhì)量,改變高職院校教學(xué)現(xiàn)狀的迫切需要,勢在必行;二者,學(xué)生能力的培養(yǎng)已成為現(xiàn)代教育的重心,教師應(yīng)該在促進學(xué)生一般能力全面提高的同時,更應(yīng)該對學(xué)生分析問題和解決問題的綜合創(chuàng)造能力給予特別的關(guān)注,該課題的研究對提高學(xué)生的綜合素養(yǎng)和能力有一定的作用;再者,本課題的研究過程和成果對于提高其它實踐類課程具有借鑒的作用,進而對整個高職高專院校實驗教學(xué)改革的探究起到了基礎(chǔ)性的支持。
2 目前數(shù)據(jù)結(jié)構(gòu)課程實踐教學(xué)中存在的問題
數(shù)據(jù)結(jié)構(gòu)課程是計算機相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)課程,在相關(guān)專業(yè)學(xué)習過程中起著承上啟下的重要作用。因其專業(yè)性、理論性強,內(nèi)容抽象等特點,被大多數(shù)高職高專院校公認為是一門既難學(xué)又難教的課程,教學(xué)效果一直不理想,教學(xué)質(zhì)量難以提高。經(jīng)調(diào)研,目前大部分高職高專院校在數(shù)據(jù)結(jié)構(gòu)課程實踐教學(xué)中存在以下問題。
其一,數(shù)據(jù)結(jié)構(gòu)課程本身較強的邏輯性和抽象性決定該課程的難度較大,學(xué)生首先從心理上畏懼數(shù)據(jù)結(jié)構(gòu),害怕實踐,拿到實驗任務(wù)到上機實習,常常茫然不知如何動手。
其二,在傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)教學(xué)中,大多數(shù)實驗配套教材詳細描述了理論課中所有算法的程序?qū)崿F(xiàn)。每次實驗之前,教師會向?qū)W生詳細講解算法的理解、實現(xiàn)過程和運行結(jié)果,學(xué)生只需照搬教材機械錄入,驗證結(jié)果就可以。這樣的教學(xué)模式使學(xué)生毫無學(xué)習興趣,也不用動腦思考,使上機調(diào)試變得十分被動,這就失去了開設(shè)該課程的意義。
其三,C語言程序設(shè)計是數(shù)據(jù)結(jié)構(gòu)的前導(dǎo)課程之一,學(xué)生對它的熟悉掌握程度,直接關(guān)系到數(shù)據(jù)結(jié)構(gòu)課程的實踐教學(xué)效果。數(shù)據(jù)結(jié)構(gòu)課程的理論教學(xué)重在算法思想的描述,實驗過程中,大多數(shù)學(xué)生因程序設(shè)計語言基礎(chǔ)差,不能很好的將類C算法描述轉(zhuǎn)換成計算機能夠接受的程序,甚至有些學(xué)生直接復(fù)制算法,這樣數(shù)據(jù)結(jié)構(gòu)的實驗就更困難了。
其四,近年來由于我國高校綜合素質(zhì)教育要求地不斷提高,各高職高專院校的專業(yè)課程普遍存在壓縮課堂學(xué)時,導(dǎo)致理論教學(xué)進度急促,“重在實踐”的教學(xué)理念不知不覺就被忽視。
3 數(shù)據(jù)結(jié)構(gòu)課程實踐教學(xué)改革措施
為了能夠更好的發(fā)揮實驗課程的作用,使學(xué)生提高程序設(shè)計能力,加深理解數(shù)據(jù)結(jié)構(gòu)研究數(shù)據(jù)處理方法的意義,同時,提高學(xué)生分析問題和用計算機解決實際問題的能力,筆者針對高職高專學(xué)生的特點,在實驗課程教學(xué)內(nèi)容設(shè)計、培養(yǎng)學(xué)生興趣、改進教學(xué)方法和過程管理,以及考核方式等經(jīng)過調(diào)研、分析進行了初步探索。
3.1 重視實踐教學(xué)內(nèi)容的設(shè)計
以往的實踐教學(xué)中大都由教師統(tǒng)一組織實驗,先理論后實踐,實踐只是對理論知識的簡單驗證,教師只關(guān)心學(xué)生是否來做實驗,而是否會做實驗,實驗的效果如何則并不關(guān)注。長此以往,學(xué)生對實驗越來越?jīng)]有興趣,更談不上實踐能力的提高。
筆者對實踐教學(xué)內(nèi)容體系進行了層次化的設(shè)計。嘗試著按基礎(chǔ)性、綜合性、實用性和創(chuàng)新性四個層次構(gòu)建數(shù)據(jù)結(jié)構(gòu)課程的實驗教學(xué)內(nèi)容。第一層次,基礎(chǔ)性實驗。針對學(xué)生的基本要求,設(shè)計基本操作技能方面的實驗項目,其目的是通過實驗讓學(xué)生理解并掌握掌基本概念、基礎(chǔ)知識和基本操作,并及時消化課堂教學(xué)內(nèi)容。同時,從基礎(chǔ)性實驗中也會獲得一定的成就感,學(xué)習熱情會進一步得到提高。第二層次,綜合性實驗。在一個實驗項目中設(shè)計并整合某種數(shù)據(jù)結(jié)構(gòu)的綜合性實驗,其目的是通過實驗使學(xué)生綜合把握某種數(shù)據(jù)結(jié)構(gòu)的特點,建立完整的概念和設(shè)計思路,提高學(xué)生綜合運用知識的能力。第三層次,實用性實驗。開發(fā)一些實用性強,具有實際意義的實驗項目進行實戰(zhàn)訓(xùn)練,增強數(shù)據(jù)結(jié)構(gòu)能夠處理現(xiàn)實問題的依據(jù),提升學(xué)生的興趣和自信心,提高實踐能力。如給出“城市間最佳路徑”問題,通過這個實驗項目的分析、設(shè)計、編程實現(xiàn),讓學(xué)生體會圖這樣的數(shù)據(jù)結(jié)構(gòu)如何從現(xiàn)實問題中抽象出來,又如何用來解決現(xiàn)實問題;第四層次,創(chuàng)新性實驗。該部分的實驗主要是針對基礎(chǔ)較好,且能在短時間內(nèi)完成基礎(chǔ)性和綜合性實驗的學(xué)生,給學(xué)生自主設(shè)計自主選擇的空間,引導(dǎo)學(xué)生深化問題,同時鼓勵學(xué)生提出新問題,分析新問題,解決新問題。
3.2 開設(shè)“數(shù)據(jù)結(jié)構(gòu)”興趣小組,培養(yǎng)學(xué)生的團隊協(xié)作精神
學(xué)生是教學(xué)的主體,只有充分調(diào)動學(xué)生的學(xué)習積極性,激發(fā)學(xué)習的興趣,才能使實踐教學(xué)收到良好的教學(xué)效果。在以往的實驗課中,我們不專門分組,要么是自由組合,要么是一窩蜂,多數(shù)學(xué)生都是蒙混其中,根本起不到實驗的目的。筆者在數(shù)據(jù)結(jié)構(gòu)實驗課中建立實驗興趣小組,每組4-5人,組中的成員按學(xué)習成績和實踐能力優(yōu)劣搭配,好的帶動差的,差的追趕好的,形成一種濃厚的學(xué)習氛圍。在實驗教學(xué)的實施中,教師將每次實驗的內(nèi)容分解且具體到每一個人,既存在各自獨立,又有相互協(xié)作,共同完成實驗任務(wù),這樣有助于對知識認識的升華,綜合素質(zhì)的培養(yǎng),更有助于長期形成協(xié)作習慣,培養(yǎng)學(xué)生團隊精神。
3.3 實踐教學(xué)方法及過程管理的改進
傳統(tǒng)的實驗教學(xué)方法基本上以灌輸、驗證為主,學(xué)生學(xué)習主動性沒有得到充分發(fā)揮。其次,因高職高專院校大量壓縮課時,導(dǎo)致實驗學(xué)時受總學(xué)時的約束,不可能很多,第三,我們先前采用的課內(nèi)課外相結(jié)合的方式又缺乏全程跟蹤考核與管理。因此,筆者對實踐教學(xué)方法以及實驗過程管理提出了實驗項目驅(qū)動教學(xué)法,以實驗項目為載體構(gòu)建學(xué)習情境,以加強監(jiān)督實驗過程管理為主體,學(xué)生在教師老師的指導(dǎo)下,通過共同學(xué)習,相互協(xié)作完成一個完整的綜合性實驗。
在實驗項目驅(qū)動教學(xué)過程中,主要有四個中心的轉(zhuǎn)變。其一是由以教師為中心轉(zhuǎn)變?yōu)橐詫W(xué)生為中心。之前的教學(xué)老師講、學(xué)生聽,課堂氣氛沉悶,缺乏師生交流;轉(zhuǎn)變后以學(xué)生為主體,教師放開手腳,學(xué)生積極參與學(xué)習和討論,最大限度地發(fā)揮其主觀能動性。其二是由以理論為中心轉(zhuǎn)變?yōu)橐皂椖繛橹行摹_^去以理論講授為主,照本宣科,注重基礎(chǔ)理論知識的學(xué)習;現(xiàn)在需要教師針對每個單元的知識點,選擇有代表性、難度適中、綜合性的典型算法,合理設(shè)計實驗項目,供興趣小組選擇。其三是由以課堂為中心轉(zhuǎn)變?yōu)橐詫嵺`為中心。在實驗項目開發(fā)過程中,教師對實驗項目進行具體的指導(dǎo),要求學(xué)生寫出每一階段的設(shè)計思路和設(shè)計原理,撰寫實驗報告和測試結(jié)果,寫出自己調(diào)試過程中遇到的問題,以及如何解決問題,且對實驗項目設(shè)計與實現(xiàn)的回顧討論與分析。四是由以課內(nèi)管理為中心轉(zhuǎn)變?yōu)橐赃^程管理為中心。過去教師檢查以實驗課堂為主,注重實驗結(jié)果,忽視實驗過程;現(xiàn)在要求教師重視課外指導(dǎo),全程管理實驗進度。教師要詳細制定實驗計劃,合理安排實驗進度,按時下發(fā)各階段任務(wù),耐心指導(dǎo)實驗過程,認真驗收各階段任務(wù),及時總結(jié)存在問題并反饋于學(xué)生。緊緊圍繞這四個中心,開展實驗項目驅(qū)動教學(xué)法活動,加深理論知識的學(xué)習,提高實踐教學(xué)效果。
3.4 改革考試方式,加強實驗考核
考試是檢驗教學(xué)質(zhì)量和檢查學(xué)生掌握知識水平的一種重要手段。目前我校所有科目的考核模式采用統(tǒng)一的標準,其組成是平時成績占30%(包括課堂提問、到課情況、作業(yè)、實驗報告等),期末考試成績占70%,應(yīng)該說基本體現(xiàn)了重在平時的考核理念。但隨著教學(xué)方法和教學(xué)環(huán)境的改變,該考核模式比較適合理論性強的課程,而對于理論和實踐并重,甚至實踐強于理論的課程,該考核模式就不能取得良好的實驗效果,不能真實地反映學(xué)生的學(xué)習情況,不能切實達到促進學(xué)習的目的。
因此,合理的考核方式是數(shù)據(jù)結(jié)構(gòu)實驗課程取得良好效果的保證。筆者在遵循學(xué)校考試模式的前提下,對該模式進行了細分量化,平時成績的10%是平時表現(xiàn),主要包括課堂提問、到課情況,以及書面作業(yè);平時成績的20%是實驗表現(xiàn),主要包括實驗項目的前期準備、實驗過程記錄、實驗問題記錄、實驗結(jié)果、實驗報告及實驗總結(jié)。筆者在期末卷面考試中,增加了10%~15%的實驗課內(nèi)容的考核。總之,教師要針對實驗的各個環(huán)節(jié)提出具體要求和考核標準,定性定量地從各個方面評定實驗成績,調(diào)動學(xué)生的積極性和自主性,保證實驗教學(xué)的學(xué)習效果。
4 教學(xué)效果分析
為了驗證實踐教學(xué)改革措施在數(shù)據(jù)結(jié)構(gòu)實驗課程中的效果,筆者先后選取信息工程學(xué)院計算機應(yīng)用技術(shù)專業(yè)09級和10級進行試驗,兩個年級的學(xué)生計算機基礎(chǔ)和水平都差不多(參考表1),男女比例也接近(參考表2)。在同一個教師教學(xué)的前提下,09級采用傳統(tǒng)未改進的實驗教學(xué)模式,10級采用改革后的實驗教學(xué)模式,綜合成績測評也采用統(tǒng)一的新考核標準,現(xiàn)將兩個年級的平均綜合成績測評結(jié)果統(tǒng)計如下(參考表3):
從以上表格數(shù)據(jù)可以看出,在保證試驗條件基本相同的條件下,實驗教學(xué)改革后的教學(xué)模式,提高了學(xué)生實驗的積極性和學(xué)習興趣,培養(yǎng)了學(xué)生對實驗項目實施的解決實際問題的能力,同時,加深了學(xué)生對理論知識的理解和鞏固,促進實驗教學(xué)效果。
5 結(jié)束語
當然,同傳統(tǒng)的實驗教學(xué)相比,數(shù)據(jù)結(jié)構(gòu)實驗教學(xué)的一系列改革措施對教師在知識結(jié)構(gòu)和知識素養(yǎng)方面無疑有了更深層次的要求,但教師付出的艱辛與得到的“回報”也是成正比的。因為這是一種集內(nèi)容設(shè)計、興趣培養(yǎng)、教學(xué)方法改進、考核制度合理化為一體的過程管理的學(xué)習和參與,學(xué)生和教師都從中受益匪淺。因此,只要我們提高對數(shù)據(jù)結(jié)構(gòu)實驗教學(xué)目的地認識,端正教學(xué)態(tài)度,就會不斷探索新的、更適合高職高專院校實驗教學(xué)效果的方法。
參考文獻:
[1]黃桂敏,周婭.實踐教學(xué)模式的探討[J].桂林電子工業(yè)學(xué)院學(xué)報,2009,5
[2]陳雪剛.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革與實踐[J].計算機教育第4期
[3]孟佳娜,孫雪蓮.數(shù)據(jù)結(jié)構(gòu)實驗教學(xué)改革探討[J].大連民族學(xué)院學(xué)報第3期,2010,5
[4]王楠.“層次性、實例化、開放式”實驗教學(xué)模式的探索與實踐[D].大連廣播電視大學(xué)
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);理論教學(xué);實踐教學(xué);教學(xué)改革
中圖分類號:TP311.12-4 文獻標識碼:A 文章編號:1007-9599 (2012) 17-0000-02
1 課程內(nèi)容
《數(shù)據(jù)結(jié)構(gòu)》是計算機科學(xué)中一門綜合性的專業(yè)基礎(chǔ)課,也是其它輔修計算機專業(yè)的必修課程。本課程討論了軟件設(shè)計中經(jīng)常遇到的線性表、堆棧、隊列、串、數(shù)組、樹和二叉樹、圖等典型數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和操作的實現(xiàn)方法,以及遞歸算法設(shè)計方法和各種典型排序和查找算法的設(shè)計方法。并對算法進行性能分析和比較,內(nèi)容非常豐富。數(shù)據(jù)結(jié)構(gòu)課程是一門理論和實踐相結(jié)合的課程。本課程包括講授和課內(nèi)上機實驗兩部分教學(xué)內(nèi)容。課內(nèi)上機實驗是為訓(xùn)練學(xué)生的實際程序設(shè)計能力安排的。
課程的目標是使學(xué)生掌握數(shù)據(jù)基本的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)、一些典型的數(shù)據(jù)結(jié)構(gòu)算法及程序設(shè)計方法和技巧,要求學(xué)會分析數(shù)據(jù)對象特征,掌握數(shù)據(jù)組織方法和計算機的表示方法,為數(shù)據(jù)選擇適當?shù)倪壿嫿Y(jié)構(gòu)、存儲結(jié)構(gòu)以及相應(yīng)的處理算法,要求具備算法分析的基本技術(shù)和能力,并培養(yǎng)良好的程序設(shè)計風格,掌握開發(fā)復(fù)雜、高效程序的技能。
2 理論教學(xué)方法與手段的探索
遵循以學(xué)生為主體,以教師為主導(dǎo)的教育理念,針對理論教學(xué)和實踐教學(xué)的不同特點,合理進行教學(xué)設(shè)計,推進教學(xué)方法和教學(xué)手段改革。課堂上引入啟發(fā)式教學(xué),充分發(fā)揮學(xué)生的學(xué)習主動性,重視自學(xué)能力的培養(yǎng),引導(dǎo)學(xué)生積極思考,活躍課堂氣氛,適當壓縮授課時數(shù), 留給學(xué)生更多的思維空間和自學(xué)空間,增加學(xué)生閱讀參考書、科技文獻和寫讀書報告的時間。數(shù)據(jù)結(jié)構(gòu)的教學(xué)策略:
(1)激發(fā)學(xué)生的學(xué)習興趣
興趣是最好的老師,只有激發(fā)了學(xué)生的學(xué)習興趣,才能事半功倍,取得更好的學(xué)習效果。在教學(xué)中通過具體的實例說明數(shù)據(jù)結(jié)構(gòu)在程序設(shè)計中的重要性,從而激發(fā)學(xué)生的求知欲,讓學(xué)生充分感受到數(shù)據(jù)結(jié)構(gòu)算法設(shè)計的魅力,調(diào)動學(xué)生思考的積極性。鼓勵學(xué)生對教學(xué)內(nèi)容提出疑問,師生共同討論,從而提高教學(xué)和學(xué)習水平。在課堂上隨時提出一些思考題,對一個結(jié)構(gòu)從不同角度討論。例如,對于線性結(jié)構(gòu),討論線性表、棧和隊列各自的操作特點。鼓勵學(xué)生在學(xué)習過程獨立思索,提出不同的算法,深化對問題的理解。例如在講解循環(huán)隊列時,如何判斷隊空和隊滿,有的同學(xué)提出三種解決方法。對于這樣的同學(xué),我們及時給與表揚和鼓勵。
(2)教學(xué)內(nèi)容的有機組合
在現(xiàn)有教學(xué)大綱的內(nèi)容的基礎(chǔ)上,不斷吸收新知識、新內(nèi)容,補充考研試題。對教學(xué)內(nèi)容的安排重新進行拆分和重組,突出重點、細化難點。運用面向?qū)ο蟮膶W(xué)習方法講解數(shù)據(jù)結(jié)構(gòu),每一種數(shù)據(jù)結(jié)構(gòu)的學(xué)習方法都是相似的,重點介紹數(shù)據(jù)結(jié)構(gòu)的邏輯關(guān)系、基本操作和在不同存儲方式下基本操作的實現(xiàn),介紹數(shù)據(jù)的邏輯結(jié)構(gòu)和物理存儲之間的關(guān)系,及物理存儲在類C語言中的描述,數(shù)據(jù)結(jié)構(gòu)的主要內(nèi)容可用以下的體系結(jié)構(gòu)來表示。
學(xué)生在了解了數(shù)據(jù)結(jié)構(gòu)課程的核心內(nèi)容后,算法的實現(xiàn)就不難理解了。例如:我們在講授線性表的復(fù)雜操作有序表的合并時,先從邏輯上看是如何實現(xiàn)的,介紹算法設(shè)計思想,然后講解兩種實現(xiàn)算法:順序存儲方式和鏈式存儲方式下的算法,讓學(xué)生自己比較兩種算法,加深理解。
(3)雙向互動式的教學(xué)
改變原來“填鴨式”的教學(xué)模式,變以教師為主的教學(xué)方式為以學(xué)生為中心的教學(xué)模式,教師只起畫龍點睛的作用。課堂上引入啟發(fā)式教學(xué),充分發(fā)揮學(xué)生的學(xué)習主動性,重視自學(xué)能力的培養(yǎng),引導(dǎo)學(xué)生積極思考,活躍課堂氣氛,適當壓縮授課時數(shù),留給學(xué)生更多的思維空間和自學(xué)空間,增加學(xué)生閱讀參考書、科技文獻和寫讀書報告的時間。為了更方便和鼓勵學(xué)生自主學(xué)習,我們建設(shè)了數(shù)據(jù)結(jié)構(gòu)精品課程網(wǎng)站,有授課視頻、教學(xué)課件、各章習題和考研輔導(dǎo)等學(xué)生內(nèi)容,教師還可以通過網(wǎng)站進行網(wǎng)上答疑,與學(xué)生及時交流。
(4)注重各知識點的有機統(tǒng)一
若想讓學(xué)生做到融會貫通,舉一反三,在教學(xué)中就必須注重各知識點的有機統(tǒng)一。比如在講授內(nèi)部排序算法時,綜合比較各種排序算法的時間復(fù)雜度、空間復(fù)雜度、穩(wěn)定性、最好及最差情況等。讓學(xué)生通過比較,提高解決問題的能力,會根據(jù)不同形式的待排序表選擇合適的存儲方式和排序方法。再就是講授鏈隊列時,講完用一個帶有頭尾指針的單鏈表表示的隊列后,再讓學(xué)生思考如何用一個循環(huán)鏈表表示隊列,在給出啟示后讓學(xué)生自己寫成隊列的初始化、入隊和出隊算法,通過這種方式的教學(xué)不僅培養(yǎng)了學(xué)生的思維能力,而且有助于培養(yǎng)學(xué)生的創(chuàng)新能力,會綜合運用所學(xué)知識,用計算機解決較復(fù)雜的問題。
(5)運用現(xiàn)代化教學(xué)手段
重視現(xiàn)代教育方法、技術(shù)手段的運用,采用多媒體教學(xué),加大課程信息量,提高教學(xué)效率。在采用多媒體技術(shù)講授本門課程的過程中,在深入研究多媒體教學(xué)的特點以及學(xué)生現(xiàn)有知識架構(gòu)的基礎(chǔ)上,重新組織、優(yōu)化、補充教材內(nèi)容,精心制作多媒體課件。在多媒體課堂上,通過教師有機地組織電子教案、演示課件等,使得學(xué)生能形象地領(lǐng)悟到算法的效果,教學(xué)變得豐富、有趣。在授課過程中,首先還原問題的本來面目——提出問題,引導(dǎo)同學(xué)積極參與——嘗試解決問題,在討論的基礎(chǔ)上給出結(jié)論——講授教學(xué)內(nèi)容,最后采用課件進行算法的動態(tài)演示,加大了課堂信息量,提高了教學(xué)效率。
3 實踐教學(xué)的探索
實踐教學(xué)是數(shù)據(jù)結(jié)構(gòu)課程教學(xué)的一個重要組成部分,對本門課程的學(xué)習起著至關(guān)重要的決定。通過實踐教學(xué),讓學(xué)生能夠?qū)W會運用書上學(xué)到的知識來解決實際問題,培養(yǎng)軟件工作所需要的動手能力。
實踐活動通過兩個環(huán)節(jié)來實現(xiàn),第一個環(huán)節(jié)課程實驗,較偏重于對課程內(nèi)容的理解。實驗講義完備,開出率100%。保證了學(xué)生理解和掌握課程的基本理論和基本概念,又提高他們的動手能力。第二個環(huán)節(jié)課程設(shè)計實習,讓學(xué)生有機會自己提出實驗項目、實驗方案,在教師指導(dǎo)下按其方案進行實驗,最后讓學(xué)生自己得出應(yīng)有的結(jié)論,進一步培養(yǎng)學(xué)生的學(xué)習興趣和實踐動手能力,從而激發(fā)創(chuàng)造力,也初步實現(xiàn)了對學(xué)生進行一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風的培養(yǎng)。
(1)實驗教學(xué)內(nèi)容
依據(jù)實驗教學(xué)大綱,合理安排實驗教學(xué)內(nèi)容。我在教學(xué)時把實驗項目按照不同內(nèi)容和難度分成三種類型:基礎(chǔ)型實驗項目、設(shè)計性實驗項目、和綜合性和創(chuàng)新型實驗項目,實現(xiàn)了實驗教學(xué)內(nèi)容的創(chuàng)新。基礎(chǔ)型實驗項目安排在各個章節(jié)中,主要圍繞數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識內(nèi)容,目的是讓學(xué)生掌握各種基本數(shù)據(jù)結(jié)構(gòu)的邏輯關(guān)系和存儲方式,通過實驗驗證算法,理解數(shù)據(jù)結(jié)構(gòu)的基本操作的定義和實現(xiàn)。設(shè)計型實驗項目是在基礎(chǔ)型實驗項目的基礎(chǔ)上,讓學(xué)生自己設(shè)計數(shù)據(jù)結(jié)構(gòu)和算法,提高學(xué)生解決問題的能力和良好的編程能力。例如一元多項式求和,要求學(xué)生選擇合適的數(shù)據(jù)結(jié)構(gòu)自己編寫算法。綜合型實驗項目涉及數(shù)據(jù)結(jié)構(gòu)中多個知識點的重點內(nèi)容,要求學(xué)生自己進行設(shè)計和實現(xiàn),主要訓(xùn)練學(xué)生綜合運用知識的能力,協(xié)作能力和創(chuàng)新實踐能力。
(2)考核方式探索
為了培養(yǎng)學(xué)生的創(chuàng)新意識和團隊協(xié)作精神,促進學(xué)生之間的交流和協(xié)作,使不同水平的學(xué)生都能在大型實驗項目中擔負起相應(yīng)的工作,特別設(shè)計了一套針對綜合型實驗和探索創(chuàng)新型實驗的考核方式和考核方法。
根據(jù)不同的實驗項目采取不同的考核方式,基礎(chǔ)型和設(shè)計型實驗項目安排在平時每周的上機實驗課進行,根據(jù)學(xué)生提交的實驗報告進行考核。綜合型和創(chuàng)新型實驗項目較大,需要學(xué)生分工合作,共同完成,一般對學(xué)生進行分組,每組完成一個實驗項目,在課程設(shè)計環(huán)節(jié)完成,一般有兩周時間,教師根據(jù)每個學(xué)生在組內(nèi)的表現(xiàn)給出一個考核成績,項目完成后,再根據(jù)各組提交的項目報告和項目的質(zhì)量給出合理考核成績。這樣既激發(fā)了學(xué)生的創(chuàng)新能力,又提高了學(xué)生的團隊合作精神。
4 結(jié)論
在研究課程的教學(xué)方法時,要因內(nèi)容制宜,因?qū)W生制宜,采取不同的教學(xué)方法。本人通過近十年對數(shù)據(jù)結(jié)構(gòu)教學(xué)的實踐與探索,取得了一定的教學(xué)效果,使得學(xué)生在學(xué)習數(shù)據(jù)結(jié)構(gòu)時,不在感覺那么抽象,理解數(shù)據(jù)結(jié)構(gòu)和算法不再那么困難,讓學(xué)生真正理解了數(shù)據(jù)結(jié)構(gòu)的作用,會選擇和使用合適的數(shù)據(jù)結(jié)構(gòu)解決問題。為學(xué)生后繼課程的學(xué)習打下良好的基礎(chǔ),乃至對學(xué)生今后從事軟件方面的工作都會提供較大的幫助。
參考文獻:
[1]嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2002.
[2]李治軍,廖明宏,張巖.數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計教學(xué)模式的探討[J].計算機教育,2006(2).
[3]殷人昆,陶永雷,謝若陽,盛絢華.數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcC++描述)[M].北京:清華大學(xué)出版社,2002.
[4]李鋒,孫莉.任務(wù)驅(qū)動式方法在離散數(shù)學(xué)教學(xué)中的應(yīng)用[J].計算機教育,2006(3).
[5]王銳.基于網(wǎng)絡(luò)的《數(shù)據(jù)結(jié)構(gòu)》新型教學(xué)模式研究[J].中州大學(xué)學(xué)報,2006(10).
[6]莫家慶.《數(shù)據(jù)結(jié)構(gòu)》程序教學(xué)模式探索[J].計算機教育,2008(9).
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);實驗教學(xué)方案;棧;隊列
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)24-0274-03
一、引言
實驗教學(xué)是學(xué)生從學(xué)習理論知識到走向社會的橋梁,對提高學(xué)生綜合素質(zhì)、培養(yǎng)學(xué)生創(chuàng)新精神和實踐能力有著理論教學(xué)不可替代的特殊作用[1]。特別是主干課程的實踐教學(xué),它是應(yīng)用型人才培養(yǎng)中的關(guān)鍵環(huán)節(jié)[2]。課內(nèi)實驗是指與理論課相捆綁的實踐教學(xué),即嵌入到專業(yè)基礎(chǔ)課或?qū)I(yè)課內(nèi)的實驗實踐教學(xué)[3]。它是與理論教學(xué)并行實施的實踐教學(xué)環(huán)節(jié),能夠幫助學(xué)生深入理解和掌握所學(xué)的專業(yè)知識。
數(shù)據(jù)結(jié)構(gòu)是隨著處理對象的復(fù)雜性不斷增加而發(fā)展起來的一門課程,作為計算機專業(yè)的核心課程,在專業(yè)人才培養(yǎng)鏈條中占有舉足輕重的地位[4-7]。數(shù)據(jù)結(jié)構(gòu)主要研究數(shù)據(jù)在抽象視圖和實現(xiàn)視圖中的表示和處理方法[8,9]。抽象視圖涉及的是數(shù)據(jù)結(jié)構(gòu)的理論性部分,實現(xiàn)視圖主要體現(xiàn)的是數(shù)據(jù)結(jié)構(gòu)的實踐性,理論指導(dǎo)實踐,實踐支撐理論,因此設(shè)計有助于課堂理論教學(xué)的實驗教學(xué)方案是非常有必要的[10]。它可以解決學(xué)生對所學(xué)知識缺乏必要感性認識的問題,將知識傳授、技能訓(xùn)練、能力培養(yǎng)融于一體,使所學(xué)理論知識在實驗中得到驗證和應(yīng)用[11]。
棧和隊列是兩種非常重要的數(shù)據(jù)結(jié)構(gòu),它們有非常多的實際應(yīng)用并且是實現(xiàn)其他復(fù)雜結(jié)構(gòu)的基礎(chǔ),因此為了幫助學(xué)生掌握并靈活運用這兩種結(jié)構(gòu),本文給出一種棧和隊列的實驗教學(xué)方案。該方案的設(shè)計思路也可以應(yīng)用于其他數(shù)據(jù)結(jié)構(gòu)或課程的實驗教學(xué)方案的設(shè)計。
二、認識兩種重要的數(shù)據(jù)結(jié)構(gòu)――棧和隊列
棧和隊列是兩種運算受限的線性表,它們的插入和刪除運算都被限制在表的端點處進行,只是具體的受限規(guī)則不一樣[12,13]。
(一)學(xué)習對象
棧(stack)是運算受限的線性表,它被限制在表的一端進行插入和刪除操作。能進行插入和刪除的一端稱為棧頂,另一端稱為棧底。正是由于它插入和刪除操作上的限制使得它具有了一種獨特的“后進先出”(LIFO)的特性。棧的LIFO特性使得它具有非常多的應(yīng)用,如:符號平衡問題、中綴表達式轉(zhuǎn)換為后綴表達式問題、后綴表達式的計算問題、函數(shù)調(diào)用的實現(xiàn)(包括遞歸函數(shù)的實現(xiàn))、在股票市場中查找劃分、Web瀏覽器中的網(wǎng)頁訪問歷史、文本編輯器中的撤銷序列等。此外,棧還是其他很多算法的輔助數(shù)據(jù)結(jié)構(gòu)和其他數(shù)據(jù)結(jié)構(gòu)的組成部分。
隊列(queue)也是一種運算受限的線性表,它被限制在表的一端進行插入操作,在表的另一端進行刪除操作。進行插入操作的一端稱為隊尾,進行刪除操作的一端稱為隊首。正是由于它插入和刪除操作上的限制使得它具有了一種獨特的“先進先出”(FIFO)的特性。隊列的FIFO特性使得它具有非常多的應(yīng)用,如:操作系統(tǒng)中的作業(yè)調(diào)度、異步數(shù)據(jù)轉(zhuǎn)換、多道程序設(shè)計等。此外,隊列還是其他很多算法的輔助數(shù)據(jù)結(jié)構(gòu)和其他數(shù)據(jù)結(jié)構(gòu)的組成部分。
(二)學(xué)習目標
學(xué)習這兩種重要的線性結(jié)構(gòu)需要學(xué)生重點消化的知識點有:(1)棧/隊列的概念、類型定義及基本操作的定義和實現(xiàn);(2)棧/隊列的結(jié)構(gòu)特性;(3)棧/隊列的靈活應(yīng)用。
為了配合棧和隊列的理論教學(xué),幫助學(xué)生理解和掌握上述知識點,我們需要精心設(shè)計棧和隊列的實驗教學(xué)方案。
三、棧和隊列的實驗教學(xué)方案設(shè)計
(一)實驗題目設(shè)計
根據(jù)棧和隊列的學(xué)習目標和遵循循序漸進的學(xué)習和教學(xué)原則,實驗題目被分為以下三個層次:基礎(chǔ)型實驗題目、設(shè)計型實驗題目和加強理解型實驗題目。
所謂基礎(chǔ)型實驗是指圍繞課程講授的棧/隊列的物理實現(xiàn)和其基本運算的實現(xiàn)來設(shè)置的實驗題目。設(shè)計基礎(chǔ)型實驗的目的是,通過實踐的方式驗證課堂上講授的重要知識點,給學(xué)生切身的感受,擺脫“紙上談兵”的感覺,這種立體的感受有助于學(xué)生深入理解和掌握這些知識點。設(shè)計型實驗要求學(xué)生能分別運用棧/隊列解決簡單應(yīng)用問題。這類實驗題目主要是用來引導(dǎo)和加強學(xué)生對棧/隊列的靈活運用。設(shè)計加強理解型實驗的目的是強化學(xué)生對棧和隊列的結(jié)構(gòu)特性的理解和體會。為了達到這個目的,加強理解型實驗題目的設(shè)計思路有兩個方面:(1)引導(dǎo)學(xué)生去思考并解決這樣兩個問題:能否利用棧的LIFO特性來實現(xiàn)隊列的FIFO特性?能否利用隊列的FIFO特性來實現(xiàn)棧的LIFO特性?(2)讓學(xué)生實現(xiàn)其他更為復(fù)雜的棧和隊列。
在棧的理論教學(xué)過程中可以開設(shè)棧的基礎(chǔ)型實驗,在棧的理論教學(xué)結(jié)束后可以開設(shè)棧的設(shè)計型實驗,在隊列的理論教學(xué)過程中可以開設(shè)隊列的基礎(chǔ)型實驗,在隊列的理論教學(xué)結(jié)束后可以開設(shè)隊列的設(shè)計型實驗和加強理解型實驗題目。表1給出了具體的實驗安排。
學(xué)生必須在相關(guān)內(nèi)容的理論教學(xué)過程中利用自己的課外時間完成全部基礎(chǔ)型實驗題目,教師根據(jù)學(xué)時安排選擇1~2道設(shè)計型實驗題目讓學(xué)生在上機課上完成,未選擇的題目應(yīng)向?qū)W生提供完整的源代碼和設(shè)計說明。相關(guān)內(nèi)容的理論教學(xué)結(jié)束后,學(xué)生必須利用自己的課外時間完成加強理解型實驗題目中的第1題和第2題,剩下兩題可以選做。
(二)教學(xué)方法
因為三種類型實驗的要求、難易程度不同,因此在學(xué)生參與形式、教師參與程度、教師參與方式等方面需要區(qū)別對待。表2給出了對三種類型實驗在上述這幾個方面的設(shè)計。
基礎(chǔ)型實驗要求每位學(xué)生利用課外時間獨立完成,教師全程參與指導(dǎo)。所謂全程參與指導(dǎo)是指從算法基本思想到算法實現(xiàn)的各個環(huán)節(jié)(包括編程技巧、程序調(diào)試與測試等)都要參與指導(dǎo)。參與方式多種多樣,例如利用QQ等即時通訊工具進行指導(dǎo),約定時間和地點進行答疑,等等。
設(shè)計型實驗要求每位學(xué)生在上機課上獨立完成,教師前期參與指導(dǎo)。所謂前期參與指導(dǎo)是指教師參與學(xué)生在算法設(shè)計環(huán)節(jié)的討論,教師可以給出提示,同時鼓勵學(xué)生設(shè)計不同的算法。參與方式是面對面的交流。
加強理解型實驗要求每位學(xué)生利用課外時間獨立完成,教師后期參與指導(dǎo)。所謂后期參與指導(dǎo)是指教師在收齊學(xué)生提交的源碼和設(shè)計報告后,對其進行分析總結(jié),并將總結(jié)結(jié)果以班級為單位采用面對面的方式反饋給學(xué)生。
(三)考核方法
對三種類型的實驗采用不同的考核辦法。表3給出了這方面的設(shè)計。
對基礎(chǔ)型實驗不做專門考核的原因是學(xué)生基礎(chǔ)型實驗完成的好壞會直接影響設(shè)計型實驗和加強理解型實驗的完成,因此對其他兩種類型實驗的考核間接考核了基礎(chǔ)型實驗。
對設(shè)計型實驗的考核分兩個部分:一是本次上機課上實驗的完成情況,包括程序是否調(diào)試成功、程序的運行結(jié)果是否正確,代碼編寫的質(zhì)量等;二是本次上機課結(jié)束后提交的實驗報告的完成情況,包括內(nèi)容是否完成、書寫是否規(guī)范等。
對加強理解型實驗的考核主要是考核學(xué)生提交的源代碼和設(shè)計報告的完成質(zhì)量。
設(shè)計型實驗的成績占總實驗成績的70%,加強理解型實驗的成績占總實驗成績的30%。
四、結(jié)語
數(shù)據(jù)結(jié)構(gòu)是一門理論性和實踐性很強的課程,其理論教學(xué)環(huán)節(jié)與實驗教學(xué)環(huán)節(jié)相輔相成。棧和隊列是兩種重要的線性結(jié)構(gòu),為了提高它們的教學(xué)效果,增強實驗教學(xué)對其理論教學(xué)的促進作用,本文提出了一種棧和隊列的實驗教學(xué)方案。該方案的設(shè)計思路同樣適用于其他數(shù)據(jù)結(jié)構(gòu)或課程的實驗教學(xué)方案設(shè)計。
參考文獻:
[1]朱金秀,金紀東,周妍,等.實踐教學(xué)與就業(yè)能力培養(yǎng)相融合的研究與探索[J].實驗室研究與探索,2011,30(4):105-107.
[2]榮瑞芬,閆文杰,李京霞,等.實踐教學(xué)課程考核評價模式探索[J].實驗技術(shù)與管理,2011,28(3):232-234.
[3]張純?nèi)荩郧?問題與案例驅(qū)動的課內(nèi)實踐教學(xué)分級模式探索[J].實驗室研究與探索,2012,31(1):145-148.
[4]教育部高等學(xué)校計算機科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會.高等學(xué)校計算機科學(xué)與技術(shù)專業(yè)人才專業(yè)能力構(gòu)成與培養(yǎng)[M].北京:機械工業(yè)出版社,2010:143-147.
[5]董麗薇.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)方法的改進[J].沈陽師范大學(xué)學(xué)報(自然科學(xué)版),2012,30(2):307-309.
[6]劉城霞,董宛,蔡英.數(shù)據(jù)結(jié)構(gòu)中基本教學(xué)案例的研究[J].計算機教育,2010,(03):144-146.
[7]韓建民,鐘發(fā)榮,趙相福,等.基于ACM-ICPC訓(xùn)練模式的數(shù)據(jù)結(jié)構(gòu)實踐教學(xué)探討[J].計算機教育,2013,(10):103-107.
[8]沈華.數(shù)據(jù)結(jié)構(gòu)、算法和程序之間關(guān)系的探討[J].計算機教育,2013,(04):58-61.
[9]沈華.數(shù)據(jù)結(jié)構(gòu)入門教學(xué)中的實例法[J].計算機教育,2013,(24):64-66.
[10]沈華.數(shù)據(jù)結(jié)構(gòu)課內(nèi)實踐教學(xué)方案[J].實驗室研究與探索,2013,32(10):396-400.
[11]劉光蓉.以計算思維能力培養(yǎng)為導(dǎo)向的C程序設(shè)計實驗教學(xué)[J].實驗技術(shù)與管理,2013,30(1):154-156,191.
數(shù)據(jù)報告 數(shù)據(jù)采集論文 數(shù)據(jù)安全論文 數(shù)據(jù)采集 數(shù)據(jù)挖掘總結(jié) 數(shù)據(jù)安全 數(shù)據(jù)統(tǒng)計論文 數(shù)據(jù)挖掘 數(shù)據(jù)理論論文 數(shù)據(jù)通信論文 紀律教育問題 新時代教育價值觀