數據結構課程設計總結范文
時間:2023-04-04 15:02:39
導語:如何才能寫好一篇數據結構課程設計總結,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
關鍵詞:數據結構;教學效果;存在問題;改革總結
一、課程的重要性
《數據結構》課程是計算機專業(yè)中一門重要的專業(yè)基礎必修課,它為操作系統、數據庫原理、編譯原理、單片機原理等后續(xù)專業(yè)課程的學習奠定了基礎。其次,數據結構課程是計算機相關專業(yè)的考研專業(yè)課之一。該課程的重要性顯而易見。
二、教學中存在的問題
《數據結構》課程的教學目標是全面系統地介紹數據的邏輯結構、存儲結構和算法實現,并介紹常用的非數值計算方法,如數據插入、刪除、排序、查找檢索等,使學生掌握各種數據結構的特點和算法思想,并能結合具體應用,運用各種數據結構和算法解決實際問題。但大部分高校《數據結構》課程的教學效果都不盡如人意,影響課程學致有如下原因:
1.程序設計課程掌握較差,基礎薄弱。
2.實踐機會少,動手能力差。
3.缺乏課外輔導,學生自學時障礙重重。
三、解決方法
鑒于以上幾點,可以從這幾方面進行教學改革:
1.加大對先行課程的重視程度。首先加大C程序設計課程的課時。C程序設計課程是數據結構課程的直接先行課,因此,學好C語言,為后續(xù)若干課程的學習打好堅實的基礎。另外,增加數學及線性代數課程的課時。學習算法離不開數學的思想,學習數組的存儲結構也離不開線性代數的應用。最后,增加了32課時的C程序設計課程設計。
2.實際操作方面,計算機專業(yè)要求有很高的實際操作技能,而我們的學生在長期被動的學習過程中卻養(yǎng)成了勤于動腦,懶于動手的學習特點,這樣教出的學生卻是不能滿足實際工作要求的。因此,數據結構的實驗教學要緊密配合理論教學,通過相關實驗與課程設計,幫助和加深對數據結構的整體理解,所以在本課程結束前安排兩周實踐進行課程設計,不要求實現過多的項目,但每個學生都要動手去做,親身經歷從需求分析到算法分析,最后的代碼編寫與調試這樣的過程,從而更深刻的理解數據結構的邏輯結構、存儲結構以及在某種具體的存儲結構下的運算及其實現方法。
3.構建《數據結構》網絡視頻課程,加強師生互動環(huán)節(jié)。為了彌補課外輔導的缺陷,制作與《數據結構》課程內容相適應的視頻,尤其是該課程中典型的算法及其實現過程,學生在課外學習時遇到問題可隨時登錄校園網觀看視頻,進行查漏補缺,達到鞏固知識的效果。另外,在網站上可以設置在線答疑或留言功能,從而實現師生互動。
四、改革成果
根據以上改革方法,經過實施,數據結構課程教學效果頗見成效,簡單做以總結:
1.加大C語言程序設計課程的課時,教師能夠在足夠的課堂時間將課程內容系統化的進行講解,尤其是數組、指針、結構體等重要知識。從而給數據結構課程的學習打下了夯實的基礎。
2.網絡視頻的構建,給學生提供了更為豐富的學習參考資料。學生在課外復習時遇到不理解的算法,隨時登錄校園網觀看視頻,好像再一次回到了課堂,從而解決了疑難問題。另外,校園網上開通了該課程的在線答疑功能,學生可以通過在線答疑功能隨時和任課教師進行溝通。
3.加強數據結構課內實踐與課程設計的實施,學生可以將課堂上的理論知識應用于實踐中。尤其是課程設計的開設,如:簡單文本編輯器的設計與實現、科學計算器的設計與實現等,通過案例讓學生真正體會到數據結構課程的實用性,并從本質上理解該課程的內容。
五、結束語
《數據結構》不僅是計算機科學與技術專業(yè)的專業(yè)基礎課,也是大多數院校研究生入學考試的專業(yè)必考課,因此,《數據結構》課程教學的討論將會持續(xù)下去,最終能找到一條行之有效的教學方法。以上是作者結合自己多年教學經驗和體會,提出的若干改革方法,不足之處會繼續(xù)探討研究。
參考文獻:
[1]李春葆.數據結構(C語言)[M].北京:清華大學出版社,2013
[2]嚴蔚敏.數據結構(C語言)[M].北京:清華大學出版社,2011
篇2
關鍵詞:數據結構;數據結構課程設計;評價方式
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2013)05-1088-02
數據結構課程內容抽象,信息量大;在學習過程中所用到的技術多,而之前所介紹的專業(yè)性知識又不多,因而加大了學習難度;隱含在各部分的技術和方法豐富,也是學習的重點和難點。根據數據結構課程本身的技術特性,設置數據結構課程設計環(huán)節(jié)十分重要。通過實踐內容的訓練,能達到學生程序思維的訓練和動手上機調試程序能力的增強 , 提高學生組織數據及編寫大型程序的能力。
1 概述
當前我國工程教育面臨的普遍問題是:工程教育與社會和產業(yè)的需求脫節(jié),包括,工程教育的培養(yǎng)目標與社會需求不一致;工程教育中的質量評估結果不能真實的反映學生的能力;工程教育環(huán)境與職場環(huán)境相差甚遠。當前工程教育中,很少能體現課程體系,學科之間的關聯很少。關于課程評價和反饋,包括師生雙方地互評。老師評價學生的手段是在學期結束時,給學生一個或好或差的成績。學生從這個結果中,無法得知他需要進一步努力的方向。用人單位無法依據這份成績來判斷這個學生是否符合他們的需求。學生評教制度就是讓學生在某個時間段(比如第14周到第16周)給老師一份評價。學校根據這份評價來考核老師的教學工作是否合格。而評教的根本目的:促使教師改進教學,服務學生,滿足學生學習需求并實現學生學習利益,在很大程度上被忽略。
數據結構課程設計作為工程教育的一個環(huán)節(jié),同樣存在上述問題。另外總共32學時的課時太少,導致學生沒有充分時間去實施系統分析、設計和實施的完整過程。
學生的語言掌握程度較大程度地影響到數據結構課程設計的實施。往往系統實施的思路是正確的,由于語言不熟練,又缺乏正確的調試手段和調試方法,導致程序無法通過調試或者花費大量時間進行調試。由于沒有軟件工程的思想,系統事先沒有經過周密的設計,程序調試通過,驗收時發(fā)現題目理解錯誤,與老師的要求相差甚遠。需要重新設計,編寫代碼,造成學生大量時間的浪費。
最后,學生的創(chuàng)新能力、溝通和團隊協作能力有待于進一步提高,而這些能力是作為一名工程型和創(chuàng)新型的計算機專業(yè)人才所必需具備的。比較顯著的就是溝通問題。在驗收階段,一個簡單問題無法用恰當的語言回答教師。
2 課程改革的理念和思路
課程改革的理念是充分利用本校本學院已有資源,結合CDIO理念,提高學生整體計算機專業(yè)能力,訓練良好的思維方式,培養(yǎng)扎實的實踐能力,具備創(chuàng)新能力和團隊合作精神。
課程改革的思路:課程改革從課時數、教學內容、教學方法和評價與反饋等多方面展開。首先是在教學大綱上增加本門課程的學時數。在教學內容上,把程序語言和軟件工程的內容以恰當地形式加入課程設計中。
在教學方法上,加強思維方式的訓練,強調產學結合,增加學生工程經驗,訓練實踐能力。思維方式的訓練從兩方面展開:在布置任務時,提醒學生按照一定的方法進行抽象,盡量避免手工操作(自動化手段);在驗收階段,針對具體的代碼和算法設計思路,教師提具體的改進方案,并相應地指出可能存在思維誤區(qū)。思維方式的形成不是一天就可以完成,希望經過一學期的訓練可以有效地改變部分同學的思維方式。工程實踐(包括工程開發(fā)各個環(huán)節(jié)的實踐)能力提高也是從兩方面展開:一是讓學生經歷工程開發(fā)的整個過程;二是提業(yè)界真實地案例供學生模仿分析學習。
評價和反饋從師生雙方互評入手。教師對學生的評價要真實反映當前的知識和能力,讓學生明白自己的優(yōu)勢和不足。學生對教師的評價真實反映這一學期教師的教學能力和教學態(tài)度。讓教師進一步清楚學生具體的學習需求和自身能力提高的方向。
課程改革的目標包括加深學生數據結構基礎知識的理解,拓展知識面,增強學生實踐動手能力,激發(fā)學生的創(chuàng)新和團隊協作能力,訓練學生的溝通表達和思維能力,培養(yǎng)學生具備良好的職業(yè)素質,使學生成為一名工程型和創(chuàng)新型的優(yōu)秀計算機專業(yè)人才。
3 課程改革的內容
該綜合課程設計預計需要32學時。其中6學時用來幫助學生加強程序設計能力,先由老師講解部分的難點重點(主要是在數據結構實施過程中常用的知識點),然后學生完成一個相對復雜的程序。
數據結構的課程設計占用中間的26學時。一學期的課程設計需要學生完成3到4個不同章節(jié)的題目。由于學生能力水平參差不齊,每章教師給出3到4個難度不同的題目供選擇。這些題目部分來自配套教材,部分由教師自行設計。學生根據自身能力選擇完成其中的一個題目(也可以自主選擇題目,經教師審核后去實施),然后提交教師驗收。在此過程中,誘導學生按照軟件工程的思想去完成各個題目。具體的手段是給學生一個合理的、按照軟件工程思想設計的課程設計指導書。(先設計后實現)
充分利用學院已有資源,在ACM網站開辟一個數據結構專區(qū),按照ACM競賽的模式設計一些題目供有余力的學生選擇。對于已完成教師安排任務的學生,建議他們注冊登錄學院ACM網站去完成額外的題目,以此增強他們的實踐動手能力。
課程設計的其中一個重要環(huán)節(jié)是驗收。它不僅起著評定成績的作用,而且還承擔著訓練思維,提高算法設計和溝通表達能力的作用。程序測試通過后,教師選擇部分感興趣的代碼,要求學生解釋。如果得不到滿意的解釋,教師可以暫停此次驗收。這個環(huán)節(jié)可以考驗學生的溝通表達能力,以及對系統的理解程度。在一定程度上的杜絕拷貝這種現象,退一步,就算是拷貝也必須完全理解整個系統,強制學生必須實際參與課程設計。
接著去提高代碼的質量和效率。先一起分析具體的代碼,研究算法的效率有無進一步提高的空間。若有該如何修改,教師根據學生的具體情況,討論確定方案后,交由學生完成。效率提高后的系統,可以在下一次課再次要求驗收。另外,教師需要明確指出明顯不符合計算思維的代碼,要求學生當堂修改。
最后根據題目難度、完成的質量以及驗收時的表現,給出一個成績并登錄在冊,作為最終成績的一部分。每個驗收的系統必須提交一個配套的課程設計報告。課程設計報告能讓學生學會正確的測試和事后的分析總結,起到部分的自我評價功能。每份課程設計報告也有成績,同樣登記在冊,作為評定最終成績的一個標準。
在課程設計結束時,老師除了給每位學生的一個成績以外,再對出現的問題進行分析總結并以文檔的形式反饋給學生。內容包括語言的掌握程度以及還存在的問題;數據結構的基本內容掌握情況,提交程序的效率、有無按照軟件工程的思想完成,還需重點解決的問題;創(chuàng)新能力、溝通和團隊協作能力如何等等。
參考文獻:
[1] John Malmqvi st. The Application of CDIO Standards in the Evaluation of Swedish Engineering Degree Programmers[J].World Transaction on Engineering and Technology Education,2006,5(2):361-364.
[2] 查建中. 面向經濟全球化的工程教育改革戰(zhàn)略[J].計算機教育,2010(11):2-7.
[3] 中國CDIO網站. CDIO簡介[EB/OL].http:///vNews.asp?typeID=30&parentID=29. 2011.
[4] 茍喜霞.車載導航系統最優(yōu)路徑規(guī)劃的研究[D]. 北京:北京交通大學,2009.
[5] 任雪萍,王立波,趙葆華.融入PIC-CDIO理念的“數據結構”課程教學改革[J].計算機教育,2012(7):29-32.
篇3
Key words:project driven;course design;applied college
1.《數據結構》課程授課現狀
《數據結構》課程是計算機及其相關專業(yè)的核心基礎課程,是一門理論與實踐相結合的課程,在整個計算機專業(yè)教學體系中處于舉足輕重的地位,特別在軟件方向的課程體系中處于承上啟下的中心地位。長期以來,《數據結構》課程的教學備受相關學院領導高度重視,然而,大部分高校《數據結構》課程的教學效果都不盡如人意,影響教學效果的原因大致如下:
(1)理論教學與實踐教學嚴重脫節(jié)。目前對于《數據結構》的理論教學主要是教師首先講解基本的結構思想,然后再引導學生讀懂由類C++語言編寫的算法,最后布置作業(yè)讓學生思考針對這些算法的問題。在實踐教學方面,學生通常要做的事是將課本上寫的很詳細的代碼翻譯成相應的高級程序語言并調試通過,甚至不會去自己解決一個稍微復雜點兒的綜合問題。基于上述兩種原因,學生在學習的過程中可以不用費神思考就能將問題解決,但是離開課本遇到一個新的具體的問題就不知所措,體現不出學生獨立思考問題的能力,實踐教學環(huán)節(jié)更是流于形式,加之學生程序設計的基本功不扎實,久而久之對學習編程和思考問題失去興趣。
(2)傳統單一的考核形式,不能體現學生的技能水平。現階段大多數高校對于《數據結構》課程的考試形式總是以筆試為主,考核的內容還是單一的理論知識,盡管最后有編程題目或者分析題,但是均不能體現學生的技能掌握的如何,90%的學生感覺學習了《數據結構》這門課程對自己以后的學習和工作沒有用處,進而減弱了學習的信心,導致學生再學習后續(xù)的數據庫和編程方面的課程的時候,缺乏模型構建的能力。
2.項目驅動教學法在《數據結構》課程中的應用分析
項目驅動教學法是以學生為主體,以項目知識為主線,教師參與引導的教學方法,它不再是“教師講,學生聽”的被動教學模式[1]。該教學方法的主要目的是讓學生真正的參與到課堂中來,培養(yǎng)他們主動思考問題和創(chuàng)新的能力,特別適合于像《數據結構》這種內容延伸性強、抽象思維要求特別高的課程。
2.1 項目驅動教學法的特點
項目驅動不同于簡單的任務驅動,它更側重于培養(yǎng)學生解決未遇到的關鍵問題的能力,在教學過程中表現為以項目為本位、以學生為主體的重要特征,要求教師設計的項目要具有一定的應用價值,并且最好與企業(yè)實際生產過程或具體問題有直接的關系。項目教學法的特點如下:
(1)具有實踐性:項目的主體與現實世界密切相連,學生的學習內容更加的具有針對性和實用性。
(2)具有自主性:學生自由、自主的分組進行學習,根據自己的理解發(fā)揮想象力,從而促進學生創(chuàng)造能力的發(fā)展。
(3)具有發(fā)展性:長期項目與階段項目相結合,構成為實現教育目標的認知過程。
(4)具有綜合性:項目的設計本身需要綜合多個學科,所以培養(yǎng)了學生綜合運用知識的能力。
(5)具有開放性:學生需要圍繞問題進行探索和解決,所以學生的學習形式不再局限于課堂[2]。
2.2 師生角色的相互轉變
項目驅動教學方法要求每位學生均要真正的參與課堂中來,在老師的引導下,發(fā)揮想象、參與研究、參與創(chuàng)造。因此,項目驅動教學法較以往的傳統教學實現了兩個打破:
第一,打破教材章節(jié)順序,以項目為主線完成課程的培養(yǎng)目標。教師須在完全吃透課程培養(yǎng)目標的基礎上,熟悉教材知識點,然后根據要傳授的知識點結合該專業(yè)的就業(yè)方向和崗位構建項目,教師的主要精力應放在項目的設計、布置和引導方面,教師設計項目的優(yōu)劣直接影響學生的學習效果。另外,在教學的初級階段,教師還應該全面把握項目實施過程中學生可能出現的問題以及如何解決。在項目的實施階段,教師只是起到引導和督促的作用,而不參與討論,當各組學生都提出普遍不懂的問題時,可以先引導其查閱相關的資料或略微指導一二,教師在整個的過程中完全成了一名向導和顧問。當然,如何引導學生在項目實踐中發(fā)現新問題和掌握新知識,這對老師提出了更高的要求。
第二,打破教師在臺上泛泛的講,學生在臺下靜靜的聽的局面。項目驅動教學法要求先將學生分組,每一組學生接到教師的項目后就開始自行分配任務,并且在指定的時間內將相關的問題解決,這期間可能會查資料、相互討論、請教師長等,學生的教材理所當然的當成了查找知識的工具書,或者有些教材甚至可以不用給學生征訂,節(jié)約了教育成本。這樣,我們的教學才真正做到了注重過程、以學生為本。
2.3 項目驅動下的《數據結構》課程劃分
以《數據結構》課程的教學為例,在采用了項目驅動教學法后,我們將課程的知識點劃分成了10個項目:
表1 《數據結構》課程項目示例表
項目名稱 相關知識點 參考課時
通訊錄信息管理系統 線性表、查找、排序 6
某高校學生成績管理系統 線性表、串、查找、排序 6
婚姻的穩(wěn)定性情況調查 數組、棧 8
理發(fā)館的經營狀況分析 線性表、隊列 6
十進制四則運算器設計 棧、樹結構、浮點數運算 8
汽車零部件的庫存模型設計 廣義表、查找、排序 8
因特網域名查詢系統 樹結構、查找 6
小型汽車牌照的快速查找系統 線性表、查找、排序 10
管道鋪設施工方案設計和選擇 圖結構 8
文章系統設計 文件、查找、排序 10
受現階段高校授課時間的限制,針對不同的學生層次,這10個項目可能不能全部做完。根據學生的特點,教師可以有針對性的選作期中的5-8個,進而分配相關的課時。實踐證明:在標準課時之內,只有30%的學生能夠完成一個完整的項目,但是90%的學生能夠利用課后的時間積極的查閱資料和咨詢老師,這種授課方法對學生的主動學習起到了一個積極的推動作用,并且學生愿意犧牲課后休息的時間泡在圖書館。
3.具體項目實施過程
下面以“通訊錄信息管理系統”為例,闡述在《數據結構》課程中實施項目驅動教學法的過程。
3.1 項目名稱:通訊錄管理系統。
3.2 培養(yǎng)目標:第一,使學生掌握線性結構的特點、線性結構的表現形式。第二,使學生領會數據在計算機中存儲的概念,并掌握兩種重要的存儲形式。第三,掌(下轉第179頁)(上接第171頁)握線性表和鏈表的區(qū)別,能夠根據實際情況選擇不同的存儲結構。第四,能夠對實施的算法進行性能評價。
3.3 項目預備知識:C語言編程基礎、線性表的定義、線性表的存儲結構、線性表的創(chuàng)建、線性表中元素的查找、插入、刪除、修改等操作。
3.4 項目延伸知識:線性表中元素的排列(按照某種規(guī)則進行排序)。
3.5 項目的功能描述:該系統是普通的電話通訊錄管理系統,要求實現能夠根據姓名或者電話號碼查詢一個用戶,能夠實現對新用戶的添加操作和刪除一個用戶,能夠統計出該通訊錄中的用戶總數。比如:用戶有一個電話號碼,但不知道此電話號碼是誰的,則需要輸入號碼來查詢該號碼是不是此通訊錄中已記錄的人的號碼,若是可以輸出該號碼及姓名,若不是可以輸出“無記錄”。同學們在此基礎上發(fā)揮想象力,結合實際可以擴展更多的功能。
3.6 項目實施步驟:
(1)根據學生的特長進行團隊劃分。按照一個班級35人的標準,我們將學生分成5-6個團隊,每個團隊在5-6人,然后推薦一名隊長。
(2)教師開始下發(fā)項目書,要求每一個團隊根據項目書撰寫項目的可行性報告,每個團隊以文字的形式上交一份報告,在此期間至少要保證每個團隊的隊長明白項目的完成目標,然后由隊長寫出項目過程的具體劃分和階段性成果。
(3)教師要不間斷的引導,當完成項目的可行性報告之后,每個團隊就開始查找資料和相互討論,教師在旁邊起到一個引導和監(jiān)督的作用,對于學生普遍問及的問題可以進行統一解答。教師有目的的講課,學生有目的的聽課,所以實現了共贏的局面。
(4)教師總結階段,每個項目完成之前,教師要對各個團隊的成果進行演示和評價,指出每個團隊的不足之處。
(5)學生整改階段,學生根據教師的評價,完善自己的不足,然后形成階段性課程設計報告。
4.《數據結構》課程的考核形式及評價
《數據結構》課程不同于其他的專業(yè)課,該課程中所設計到的算法和思想具有可收縮性,它應強調對于問題求解能力的培養(yǎng),我們需要在學生的課程設計過程中,鼓勵學生對其解決問題的方案進行理論分析和實驗分析,鼓勵學生積極主動的創(chuàng)新并大膽提出優(yōu)化設計方案。對于該課程的考核形式是讓學生根據自己平時的課程項目,將項目整理成課程設計報告,最終上交紙質的課程設計報告書,然后教師對報告進行評價。
考慮到《數據結構》這類課程一直以來是計算機相關專業(yè)學生學歷層次提升考試的重要專業(yè)課,在進行課程考核的時候,有些學校除了讓學生形成最終的課程設計報告書之外,還讓學生參加一次筆試考試,以了解學生對于基礎知識的掌握水平。
采用了項目驅動+課程設計的教學模式以后,學生普遍反映對數據結構的學習非常感興趣,老師們則感覺采用這種方式以后,學生的學習積極性提高了,但是同時老師們的教學壓力也變得大了,因為增加了老師準備課堂的負擔,但是總體感覺是利大于弊的。
5.實施項目教學法的總結與展望
通過《數據結構》教學中實施項目驅動教學法,我體會到項目教學在專業(yè)基礎課中實施的必要性,當然該教學方法也不是萬能的,它不是適合于所有的課程,通常來講:這種教學方法比較適合實踐操作性強,學科比較綜合的課程,同時,我有如下幾點體會:
(1)項目教學法重要的是項目的設計,它可能直接影響教學的效果。在進行項目設計時,我們需要考慮學生對項目的理解、項目包括的知識點的范圍、課程的前驅后繼關系等,否則,我們設計的項目將是沒有意義的。
(2)教師的有力引導是確保項目順利完成的重要保障,學生在進行項目設計的過程中遇到棘手的問題需要老師第一時間進行指導。再者教師要事前全面掌握學生的學習層次,進行有目的性的指導,并能給學生留有思考的空間。
篇4
摘要:本文從政策支持、課程規(guī)劃、教學內容、教學條件和教學方法等各個方面介紹了煙臺大學在建設“數據結構”省級精品課程過程中的一些體會。
關鍵詞:數據結構;精品課程;課程規(guī)劃
中圖分類號:G642
文獻標識碼:B
煙臺大學“數據結構”課程組在多年的教學實踐中踏踏實實地做了許多有益的工作,取得了一定的成績。課程組承擔的“‘數據結構’課程的教學改革創(chuàng)新與實踐”課題,獲得了2004年煙臺大學優(yōu)秀教學成果一等獎,并獲得2005年山東省優(yōu)秀教學成果二等獎;“數據結構”課程在2002年被煙臺大學評為首批校級優(yōu)秀課,并于2004年被山東省教育廳評為煙臺大學首批三門省級精品課之一;2007年又被煙臺大學作為學校唯一一門推薦課程參加國家精品課的評選。在精品課程的建設過程中,我們有如下一些體會。
1學校各級各部門高度重視
各級領導高度重視和支持是精品課程建設的關鍵。在一系列相關文件的基礎上,早在2004年學校又出臺了《煙臺大學關于開展精品課程建設工作實施意見》。在此基礎上,制訂了國家、省、校、院(系)四級精品課程十年建設規(guī)劃,積極組織精品課程建設立項,全面推進精品課程建設工作,以精品課程建設全面帶動課程建設,推進教學改革,為本科教學提供高水平的課程教學平臺。
根據精品課程建設規(guī)劃,學校有計劃、有目標、分階段、分層次地開展精品課程建設工作,形成并執(zhí)行了行之有效的政策和措施。學校對各級精品課程建設項目實行目標管理,定期聘請專家評估。精品課程重點建設項目實行激勵滾動機制。學校投入大量的專項經費,支持精品課程建設特別是精品課的網絡建設、網絡維護與資源共享。此外學校在職稱評聘、崗位津貼等各個方面也向精品課教師做出傾斜,學校的這一系列相關政策,充分調動了教師參加精品課建設的積極性。
2抓住切入點及早規(guī)劃
“數據結構”是計算機科學專業(yè)的一門核心課程,在80年代初,“數據結構”課程才逐步在國內高校計算機專業(yè)開設,并成為國內計算機專業(yè)教學計劃中的核心課程。ACM/IEEE CC-2004仍將“數據結構”課程列為核心課程之首,“數據結構”愈顯出其在計算機學科中的重要地位。正是在這樣的背景下,在學校的支持下計算機系把“數據結構”課程確立為計算機專業(yè)的重點課程之一,并有計劃、有目的的給予重點扶持。
“數據結構”課程在我校的發(fā)展沿革可以分為以下幾個階段:
學習、初創(chuàng)階段:煙臺大學是一所80年代在清華大學、北京大學的支援下新創(chuàng)建的地方性綜合大學,1984年開始招生。“數據結構”是煙臺大學計算機系成立伊始即開設的課程。當時計算機專業(yè)的核心主干課程都由清華大學的骨干教師擔任。在此期間,煙臺大學計算機系就有目的選擇了具有敬業(yè)精神、教學效果優(yōu)良的本系幾位年輕教師組成了“數據結構”課程組,全面接受清華老師的幫助,接受他們的教學新理念、好經驗和好方法。
初始發(fā)展階段:1990年清華援建老師返回清華后,“數據結構”課的全面教學由煙臺大學教師擔任。由于學習、初創(chuàng)階段的良好基礎,這一階段基本上形成了我校“數據結構”的課程體系結構,從教學大綱的制定、教學內容和實驗內容的確定等一系列教學環(huán)節(jié)上都認真嚴格按照計算機人才培養(yǎng)的高標準要求。
初級提高階段:1999年學校提出了百門優(yōu)秀課建設規(guī)劃,“數據結構”課程進入了一個全面建設和提高的階段。首先從教師隊伍建設著手,一方面派教師出去攻讀博士學位,另一方面吸取教學認真、效果好的老師進入到課程組,進一步充實課程組教師隊伍。其次從教材建設和實驗體系結構等方面做了精心的準備,并把課程建設的目標定位在:2002年達到校優(yōu)秀。在此階段,課程組進行了一系列教學內容和教學法的研究,發(fā)表了多篇課程教改論文,取得了優(yōu)異的成績,實現了2002年達到校優(yōu)秀課程的目標。
提高階段:隨著“數據結構”的發(fā)展,算法在“數據結構”中的重要作用越來越被人們認識。為了把算法與數據結構緊密聯系,2004年課程組教師在多年使用的教材和講義的基礎上編寫了系列教材(《算法與數據結構》、《算法與數據結構實驗與習題》、《算法與數據結構考研試題精析》)3部,2004年9月由機械工業(yè)出版社出版。教材把算法放在了“數據結構”教學中的重要位置。該系列教材覆蓋了從課堂授課、課后復習和練習到考研復習材料等多個方面,滿足了我校“數據結構”課程的各層次學生的需要,因此2005年至今開始采用自編教材。
從1984年至2003年,采用課堂講授和實習相結合的方式,實習時間為16個機時。從2004年開始,增加了“數據結構”課程設計,學時為24學時。在授課學期結束后采用集中的形式用一周的時間讓學生設計一個綜合性的數據結構設計題,通過此環(huán)節(jié)讓學生對數據結構的應用有了更為深刻和良好的理解,效果較為顯著。從2002年開始,制作電子教案,采用多媒體教學方式教學,并在每一輪授課過程中進行更新,確保在課件中體現新的技術和理論。從2004年開始,使用自編教材配備的多媒體課件。同時在學校多方幫助下建立了“數據結構”教學網站,網址為,將課程的教學大綱、教案、習題、網絡課程、網絡課件、考研試題等教學資料上網開放,實現優(yōu)質教學資源共享。同時設立了網上答疑系統,為學生自主學習、個性化學習提供了方便的平臺。
2006年,在學校各級單位的支持下,64學時的全程教學錄像工作完畢,并且全部都掛到網上,實現了教學資源的全方位共享。
這一階段又吸收更加年輕的教師進入課程組,使教學隊伍進一步壯大和年輕化。
通過各階段不斷的改革和建設努力,課程組取得了顯著的成績。“‘數據結構’課程的教學改革創(chuàng)新與實踐”獲得2004年煙臺大學優(yōu)秀教學成果一等獎,并獲得2005年山東省優(yōu)秀教學成果二等獎。在此期間,課程負責人被評為“數據結構”課程群首席教師。2004年“數據結構”課程被評為我校首屆山東省精品課立項課程,2007年該課程被推薦參評國家級精品課立項。
縱觀“數據結構”課程在煙臺大學的發(fā)展歷程,可以明顯的看到正是由于首先選好了切入點并及早做好長期規(guī)劃,課程組有計劃地從一開始就得到了名校高水平教師的傳、幫、帶,課程組基本功扎實,師資隊伍力量雄厚,為課程改革和建設的進一步發(fā)展和提高奠定了堅實的基礎。
3重點抓好課程教學內容的改革
“數據結構”課程一直是計算機科學與技術專業(yè)的一門理論性和實踐性并重的核心課程。課程的目標是使學生掌握數據的基本的邏輯結構和存儲結構、一些典型的數據結構算法及程序設計方法和技巧,要求學會分析數據對象特征,掌握數據組織方法和計算機的表示方法,為數據選擇適當的邏輯結構、存儲結構以及相應的處理算法;要求具備算法分析的基本技術和能力,并培養(yǎng)良好的程序設計風格,掌握開發(fā)復雜、高效程序的技能。課程組主要從課程內容體系結構、教學內容組織方式和實踐性教學的設計等幾個方面進行了重點建設。
根據課程的重點(如線性表、二叉樹、排序等)和課程的難點(如圖、集合等),課程組提出了相應的解決辦法:采用多媒體授課的方法,將算法思想通過CAI課件進行動態(tài)的演示,使學生通過直觀的認識掌握抽象的理論。堅持理論聯系實際,觀察分析實例,讓學生通過各章的基本實驗理解抽象數據類型的概念,在此基礎上設計復雜的程序,培養(yǎng)學生的學習興趣和實踐動手能力,從而激發(fā)創(chuàng)造力和想象力,從實踐中理解并掌握本課程的重點與難點。課程組進一步提出了“以理論學習為主線,以課程實驗、項目設計為補充”的數據結構課程體系的構建方案,讓學生學會如何把書上學到的知識用于解決實際問題,培養(yǎng)軟件工作所需要的動手能力。為了便于學生掌握基本知識,實踐活動通過兩個環(huán)節(jié)來實現,第一個環(huán)節(jié)為課程實驗(16機時),較偏重于對課程內容的理解,實驗題目與章節(jié)內容相呼應,隨課堂授課內容分散在整個學期進行。第二個環(huán)節(jié)為課程設計實習,用集中的一周時間(24學時)進行。課程設計是進行軟件設計的綜合訓練的第一門課,包括問題分析、總體結構設計、用戶界面設計、程序設計基本技能和技巧,以至一整套軟件工作規(guī)范的訓練和科學作風的培養(yǎng)。課程設計規(guī)定若干難度較大的題目,學生可在這些題目中任選一題或兩題完成。
通過實驗實踐內容的訓練,提高了學生組織數據和編寫較大型程序的能力;更好地理解和掌握了算法設計所需的技術,為整個專業(yè)學習打下了良好的基礎。課程設計課從設立以來,受到了學生的普遍歡迎,學生普遍反映通過課程設計才更加真正了解了數據結構,對課程期末考試的算法設計題目也更加胸中有數。
4積極創(chuàng)造良好的教學條件
學校和院系各級部門為本課程提供了大力支持,從教材、配套實驗教材、實驗設備以及實踐性教學環(huán)境和網絡教學環(huán)境等各方面都為課程建設提供了良好的條件。
本課程在教材的選擇上,一直選用獲國家級優(yōu)秀教材獎的教材。對于應用型高等學校,教材的應用性和實踐性尤為重要。本著有利于培養(yǎng)學生獲取知識的能力、運用知識的能力和科學創(chuàng)新能力的原則,課程組根據多年教學經驗的總結和教學實際編寫了“數據結構”系列教材三部。其中的《算法與數據結構(C語言版)》在每章最后都單獨增加一節(jié)算法設計舉例,這個內容實際上把本章進行了一個高度的概括,使得學生能夠從更高層次理解本章的內容。三部教材是課題組多年教學研究結果的結晶,在教材教學的內容安排及順序以及所選的例子等方面都做了精心的安排,覆蓋了從課堂理論授課和學習、課后練習和作業(yè)、實驗課到考研復習材料等有關教學的各個方面,把理論學習和實踐環(huán)節(jié)融為一體,滿足了我校“數據結構”課程各層次學生的需要。通過三年的教學實踐和考研成績的檢驗,證明我們所編寫教材的科學性。通過不斷的教學實踐,課程組教師對所編教材多次開會進行研究,對教材中出現的疏漏之處進行了修訂,到目前為止教材均已重印多次,并于2008年出版了第一部教材的第二版。
實驗環(huán)節(jié)采用自編教材《數據結構實驗與習題》,該教材詳細列出了具體的實驗要求和內容,使學生充分了解每次課的實驗目的和步驟,消除了學生實驗的盲目性,使學生有預習和編寫靜態(tài)代碼的時間,增強了知識的系統性。同時將每次的實驗內容上網,在實驗結束后將程序代碼放到網上供學生參考。經過各學期的教學檢驗表明教學效果良好。
實踐教學一直在我校的實驗中心機房進行,做到了人手一臺機器,指導實驗采取教師加實驗員加學生小教員相結合的方法,盡最大程度保證指導的時間和質量。2005年計算機學院創(chuàng)建了本院的開放性實驗室,該課程的實驗采取了在開放性實驗室進行的方法,提高了實驗的效果和質量。
網絡建設方面,在學校、學院和網絡中心的大力支持下,課程的網絡建設有了一定的成效。課程網絡主頁的內容十分豐富,包含了教學文件、教學系統、輔助教學系統、考研輔導、遠程教學系統等不同的模塊。目前課程的全程教學錄像也已經上網,學生可以隨時在線或者下載收看學習。該課程網站的訪問點擊率已經達到近16萬人次。經常有不少兄弟院校的教師或學生通過不同的渠道向課程組教師索取相應資料并進行探討。該課程網絡主頁在學校服務器無故障的情況下全天24小時對校內外開放。這些網絡資源對增加學生學習的主動性和實現個性化學習起到了非常重要的作用。
課程組同時還創(chuàng)造條件讓學生進行各種實踐活動。計算機學院與大型企業(yè)東方電子集團公司合作建立了“東方電子實習基地”,通過在基地的參觀和實習,使學生學到了很多在課本上學不到的東西。盡管或許和課程內容看上去沒有什么直接的聯系,但通過參觀學習開拓了他們的視野,豐富了他們的想象,進一步激發(fā)了他們的學習興趣。
5充分應用多種教學方法和教學手段
在教學方法上:從傳統的粉筆+黑板模式為主過渡到“計算機+大屏幕”為主的授課模式。授課的電子教案開始時使用以靜態(tài)文字為主的Powerpoint幻燈片方式提供,現在采用以動態(tài)算法演示為主的CAI和多媒體課件;對于一些重點和難點算法用形象的動畫在屏幕上展示這些抽象算法的執(zhí)行過程,輔之以板書交流,大大增加了從教師到學生傳遞的信息量和信息種類,有助于建立從感性到理性的深入理解與掌握。
在教學手段上:通過研制和引入課程輔助教學軟件CAI,融入新的教學理念。通過采用模擬方法、單步顯示、自動演示多種方式,突出實質觀察算法實現過程。在CAI個性、針對性和交互性的基礎上,滲透模塊化、抽象和信息隱蔽等新觀點、新技術,使教師在講課中可以對內容進行重新組合,為教師教學的個性化發(fā)揮提供基礎。課件和CAI教學已在我校5屆學生的教學中應用,課件作為遠程教育的教學工具,便于學生課后的學習和答疑,使授課過程突出重點,發(fā)揮傳統教學與多媒體教學的能力優(yōu)勢,提高了教學質量、效率與效果。
此外課程組還開發(fā)了計算機輔助教學系統――基于Internet的數據結構試題庫系統。根據教學的需要,自主開發(fā)和建設了標準化試題庫,將多年搜集的各個高校的考試試題和考研試題加入到該系統之中。該系統可以根據教師的需要,進行隨機抽題或手工選題,能夠生成完整的試卷和試卷答案。
教學輔導方式上:從傳統的輔導老師面對面的輔導教學逐步過渡到教師輔導與通過校園網進行實時聯網輔導相結合的方式。答疑系統開通后,收到了很好的效果,在同學中的影響也很大,現在許多同學都將自己的疑問提交到網上,教師基本上都能在第一時間給出問題的解答。網上答疑也是精品課建設的一個重點,讓同學們將自己在學習過程中遇到的一些疑難問題提交到答疑系統,教師統一作出回答。開通答疑系統有三個好處:消除學生提問時的恐懼心理;避免重復回答;不受時間地點限制。
目前,學校已經投入專項資金建立起了Blackboard教學平臺,學校將分期分批地把學校各級各類精品課和優(yōu)秀課接入到該教學平臺上,以實現真正意義上的網絡教學和優(yōu)秀教學資源的共享。”數據結構”課程將被首批接入到網絡教學平臺,課程組將很快在該平臺上創(chuàng)建在線課程,并將使用該平臺和學生開展在線討論。該教學平臺的使用必將為課程建設水平的提高提供強有力的支持。
6教學法研究常抓不懈
教學法研究在課程建設中始終不斷線。課程組除了在教學過程中定期討論、交流教學心得,共同探討某個章節(jié)某個內容的教學方法以外,課程組在有關方面的支持下于2005年成功的舉辦了山東省高校首屆“數據結構”課程建設研討會,來自29所高校的教師代表們熱烈的討論了“數據結構”的教學內容和教學手段的改革、課程的教材建設、課程的課件建設、課程的實驗教學改革、課程的考試改革以及建設精品課程的經驗。大家普遍反映這次會議開得好,問題討論得透徹,希望今后能定期召開。課程組也通過此次會議的成功舉辦在一定程度上擴大了該精品課的影響,同時也為該課程的進一步建設吸取了很多兄弟院校的很多有益的經驗。此外,通過課程組積極協調,于2007年11月專門邀請全國“數據結構”課程知名教授、國家《數據結構》教材特等獎獲得者、清華大學嚴蔚敏教授,到我院講授了6學時的“數據結構”(集合一章)課,課程組全體教師全程聆聽了嚴教授的講課,課程組還和嚴教授進行了多次直接的面對面的交流,這對課程組的教學工作是一個巨大的促進。
篇5
該系列教材的作者不僅具有豐富的教學經驗,也具有豐富的科研經驗,是浙江大學計算機科學與技術學院和軟件學院的教學核心力量。這支隊伍目前已經獲得了四門國家精品課程(C語言程序設計基礎及實驗、操作系統、嵌入式系統、計算機輔助工業(yè)設計)以及六門省部級精品課程,出版了幾十部教材。該系列教材涵蓋了計算機和軟件專業(yè)絕大部分專業(yè)必修課程和部分選修課程,是一部比較完整的專業(yè)課程設計系列教材,也是國內首部由研究型大學計算機學科獨立組織編寫的專業(yè)課程設計系列教材。
系列教材由《C程序設計基礎課程設計》、《軟件工程課程設計》、《數據結構課程設計》、《數值分析課程設計》、《編譯原理課程設計》、《邏輯與計算機設計基礎實驗教程與課程設計》、《操作系統課程設計》、《數據庫課程設計》、《Java程序設計課程設計》、《面向對象程序設計課程設計》、《計算機組成課程設計》、《計算機體系結構課程設計》、《計算機圖形學課程設計》等十三門課程的綜合實驗教材所組成。
下面舉例介紹其中幾本教材的主要內容及特點。
《C程序設計基礎課程設計》:在分析C語言高級編程技術的基礎上,通過對“通訊錄”、“計算器”、“俄羅斯方塊”等3個完整案例的解析,指導讀者按照軟件工程的生命周期開發(fā)過程,從問題分析、設計、編碼到測試,循序漸進地完成大型程序的開發(fā)。教材還提供了9個大型程序訓練的題目及簡要分析,供讀者練習。本教材還針對教學需要,提供了可參考的實施過程說明、開發(fā)文檔模版、考核方法和評價標準,特別強調學生團隊合作精神的培養(yǎng)。
《數據結構課程設計》:針對堆棧、樹、圖、排序、哈希查找、算法設計等方面的內容提供了8個課程設計案例,分別從基本知識回顧、設計題目、設計分析、設計實現、測試方法、評分要點等幾個方面進行分析。教材還提供了8個課程設計習題,并對實現要點進行了簡要的分析。
《計算機組成課程設計》:要求實驗者用硬件描述語言(Verilog HDL)設計單元電路、功能部件和指令條數有限而功能較齊全的單時與多時鐘CPU。在計算機功能單元仿真模擬正確后, 實驗者能把自己設計的結果寫入到Spartan-3 Starter Kit Board開發(fā)板的FPGA可編程芯片上, 并能直接實驗自己的設計(芯片)是否達到預期目標。實驗設計由淺入深, 內容豐富。
《數據庫課程設計》:以圖書管理系統的開發(fā)為例,從需求分析開始,到數據庫設計、數據庫應用和應用開發(fā)等過程。其中應用開發(fā)的環(huán)境和工具包括MySQL數據庫和ODBC接口技術,以及SQL Server和JDBC等。本書側重于介紹“怎么做”和做的過程,而非原理性和全面性的闡述。
篇6
關鍵詞:數據結構 實驗教學
0 引言
《數據結構》是計算機專業(yè)課程體系的核心課程之一。課程主要講述各種數據的邏輯結構、物理結構及基本操作的實現算法以及數據查找、排序算法,并對各種算法進行性能分析和比較。
根據調查發(fā)現,目前大多數院校《數據結構》課程教學現狀不容樂觀。學生普遍反映課程學習比較困難,教師也感覺教學效果不理想。實驗教學更是因為程序設計語言基礎不扎實、課程內容太抽象等原因而較難開展,有些學校因此而縮短學時甚至不開設實驗。一些專家和教師就課程實驗教學改革已經提出了一些具體的教學方法,如案例驅動、課題答辯等。這些方法都具有比較重要的借鑒價值,但某些文章過于片面的強調某一種教學方法。筆者認為根據學生的實際情況完善教學設計、加強教學管理,通過行之有效的教學手段使學生學有所獲才是根本。下面結合自己的實際教學工作,談談對數據結構實驗教學方法的認識。我校《數據結構》課程理論學時48,實踐學時16,教材選用嚴蔚敏的《數據結構(C語言版)》)。
1 講好理論第一課,明確課程性質
僅從課程名稱來看,《數據結構》就很容易被誤解為實踐性不強的理論課。講好第一堂理論課非常重要,應讓學生明確課程性質并理解實踐學習的重要性。
結合程序設計語言、操作系統等課程內容,筆者設計了一些學生比較熟悉并容易理解的應用實例和學生一起探討,如:int a[10]和a[i]=5的確切含義;文件簇的鏈式形態(tài);國際象棋大師與超級計算機的對決;圖的著色問題等。在講解圖的著色問題時引導學生思考圖的存儲中需要關心什么,怎么存以及大致的程序邏輯等。通過對實例的分析,引入課程主要內容,學生也可明確課程的性質和專業(yè)地位并思考課程學習目標。
2 制定實驗教學計劃,設計實驗內容
程序設計語言是數據結構的前驅課程之一,多數院校都是以C語言程序設計作為學生程序邏輯訓練的課程。數據結構教材中采用類C語言來描述算法,對指針、結構體等內容并未作詳細的介紹。對于剛剛學完C語言的學生來說,指針等內容本來就比較模糊,要將類C算法轉換為程序實現就更加困難。
在制定實驗教學計劃時,可以采用由易到難、逐步加深的方式來安排實驗內容。結合實驗學時數和教學大綱要求,筆者將實驗內容作了如下設計和安排:
2.1 第一次上機任務只要求學生運用以前學過的C語言知識來編寫一個程序:給定一個整數序列,要求①用冒泡或選擇算法進行排序;②輸入一個整數X,在此有序序列中進行查找,如成功,則返回其位置;③如查找不成功,將X插入到序列中并使序列仍然有序。此題目運用到數組的定義、排序、查找、數組元素插入算法等相關內容。通過此實驗,不僅能了解學生程序語言的熟悉程度,也能了解學生對排序和查找等基礎算法的掌握情況,為后面教學內容設計作好鋪墊。
2.2 結合教學進度要求學生實現常見數據結構的基本操作,并能作一些驗證性的實驗。如用數字菜單的形式實現單向鏈表的基本操作,并完成兩個有序鏈表合并算法的驗證。實驗要求學生能實現大多數基本操作算法,完成頭文件的設計,并能利用已實現的基本操作完成復雜算法的驗證。通過此類實驗,學生對數據結構的理解更直觀,程序邏輯更清晰,C語言的掌握能力逐漸增強,同時也為面向對象課程的學習打下一定的基礎。
2.3 設計性實驗即課程設計安排。課程設計的目的在于培養(yǎng)學生分析和解決實際問題的能力,訓練和提高學生規(guī)范的程序設計方法。教師可推出一些典型的并與后續(xù)課程有一定聯系的題目供學生選擇。每個題目規(guī)模不能太小,并能反映相關數據結構在程序設計中起的關鍵作用。如:①實現一個串的基本操作演示程序,提供命令行的輸入(仿照COMMAND),并對命令行能進行簡單的編譯和出錯處理,最后根據命令動詞的功能來執(zhí)行命令;②利用哈夫曼編碼算法實現簡單文本文件的壓縮和解壓。題目隨著理論教學進度推出,有難有易,學生結合自己實際來選擇并可提前完成。
3 規(guī)范實驗過程,加強實驗教學管理
為保障計劃的有效實施,必須規(guī)范實驗過程并加強實驗教學管理。
3.1 根據計劃制定實驗指導書。指導書中給出每個實驗的目的、學時、內容等。其中設計性實驗另給出一些基本的分析思路,每個實驗都適當的添加一些選作題。學生通過閱讀實驗指導書能進一步明確每次實驗的具體內容和要求。
3.2 要求學生做好上機前的準備。大二學生的編碼速度普遍較慢,如果把實驗課時間主要用于輸入代碼是非常不值得的,應將主要精力放在程序調試上面。這樣不僅有充足的提問時間,也便于教師歸納并集中講解學生調試過程中所遇到的常見問題。
3.3 要求學生實驗后完成實驗報告。報告中須給出問題分析、數據描述、算法描述、程序描述、測試結果和心得體會等內容。教師對學生提交的實驗報告進行分析,總結并指出實驗的成功和不足之處。
3.4 加強實驗教學管理, 從正面引導學生。隨著網絡信息技術的發(fā)展,網絡中提供的各種信息服務和娛樂方式使部分學生的學習積極性逐漸降低,學習目標也越來越不明確。如果管理松懈,有些學生就會把實踐學習當成是簡單的Ctrl-C和Ctrl-V,不能達到實驗教學的預期目標。因此,教師應了解學生的學習動態(tài),加強實踐教學管理,并根據實際情況進行相應調整和改進。
4 豐富教學手段,搞好實驗指導
在實踐教學過程,教師不能只停留于解決學生提出的問題,還應不斷摸索教學方法,豐富教學手段。
4.1 演示基本算法實現時可采用互動的方式進行。先按類型定義初始化輸入測試數據輸出的實現順序和學生一起得到結果;再讓學生逐個實現其余算法,最后完成頭文件的設計。學生通過教師演示和實際操作可以更快的掌握類C算法和C程序的轉換思路。
4.2 數據結構中的程序規(guī)模相比C語言來說更大。由于缺乏經驗,很多學生在程序調試中會出現較多的語法和邏輯錯誤,可利用多媒體網絡教學手段在學生機上直接演示并講解程序調試的方法和技巧。
4.3 學生實驗過程中盡力營造一種你追我趕的競爭氛圍,通過激勵機制提高學生學習積極性。如果有同學較早實現了某些算法,可有選擇性的適當的“刺激”部分學生以激發(fā)其不服輸的心理,從而帶動其他學生。
4.4 鼓勵學生多實踐,要求學生通過實踐來找出理論學習中存在的問題,提高自己的抽象思維和邏輯推理能力。對于編程能力較強的學生,鼓勵他們多做題,做難題,為今后參加各種資格水平考試和專業(yè)競賽作好準備。
5 總結
《數據結構》是一門理論和實踐結合性非常強的課程,其課程性質決定了教學過程的復雜性。作為承擔課程教學的老師,不管是理論教學還是實驗教學,都應結合學生的特點,從教學設計、教學手段、教學管理等多方面進行深入具體的探討和研究,并運用到教學實踐中。只有這樣,才能真正使學生理解《數據結構》課程意義和課程核心地位。
參考文獻
[1]嚴蔚敏,吳偉民.《數據結構(C語言版)》[M].北京:清華大學出版社.1997.
篇7
關鍵詞:數據結構;網絡教學;教學模式;教學方法
創(chuàng)新是教育發(fā)展的根本,是社會發(fā)展的必然,課堂教學中的創(chuàng)新教育是教育創(chuàng)新的重要組成部分。
2009年及以后,《數據結構》是計算機碩士研究生入學必考科目,也是計算機專業(yè)學生專升本的必考專業(yè)課。《數據結構》所涉及的內容和方法,無論是對學習計算機領域的其他課程,還是對從事軟件項目的開發(fā)都有著重要的作用。但該課程具有相當的抽象性和動態(tài)性,容易造成教學低效和學時膨脹。如何使學生更好地掌握最常用的數據結構,理解數據結構內在的邏輯關系,數據與關系在計算機中存儲表示以及在這些數據結構上的運算和實際的執(zhí)行算法,培養(yǎng)學生發(fā)現問題、分析問題、解決問題的能力,是這一門課程的關鍵。
一、教學原則
隨著科技的的不斷發(fā)展,多媒體教學已經成為現代教學改革和未來教學手段發(fā)展的方向,多媒體教學集講課、習題課、演示算法為一體,具有生動、形象、直觀的特點,有助于學生很好地理解和掌握所學內容。多媒體教學在講具體的算法實現方面顯得特別優(yōu)越,可以先給學生講解算法,然后給出數據來執(zhí)行算法,學生一邊對照著語句一邊執(zhí)行觀察數據的變化,或用動畫演示執(zhí)行過程。尤其對于遞歸算法,其執(zhí)行過程不易理解,采用動畫演示遞歸算法,生動、形象,學生很容易看出何時發(fā)生遞歸調用,何時返回到上一層調用處。
為了使多媒體輔助教學達到最佳教學效果需做到:樹立“以學生為主體”的現代教育觀,把學生創(chuàng)新能力的培養(yǎng)放在重要的地位;利用指導法教學、“啟發(fā)”式教學來體現“以教為主導,以學為主體”的教學原則。在教學方法和教學體系上采用現代教學模式,將多種現代教學模式應用于課堂和網絡教學中。
二、現代教學模式
教學模式是教學基礎理論的具體化,也是教學具體經驗的概括化。目前,國內外有影響的現代教學模式主要有:
(1)掌握學習模式。強調個別化教學,利用及時反饋和強化作為控制教學的有效手段,而編寫得當的習題是獲得反饋的重要途徑。
(2)發(fā)現學習模式。首先提出問題,帶著問題意識觀察具體事實,然后再上升到一般的概念。
(3)范例教學模式。教師用特例具體直觀地闡明“個體”的具體特征;根據范例“個體”的知識推論特點,分析掌握整個“類別”事物的特征。
(4)最優(yōu)化教學模式。一個好的最優(yōu)化教學方案形成的過程是:①分析教學目的與教學任務;②分析學生學習情況與教師自我分析;③學時分析;④選擇已知條件下最佳教學任務的綜合性手段與方案;⑤對教學質量進行評價。
傳統的教學方法和手段,制約了以上教學模式的推廣應用,CAI系統的建立和以可視化為特征的多媒體技術的應用,有利于綜合這些模式的長處,創(chuàng)建各種現代教學模式。
三、課堂教學設計
1.教學目標分析
根據最優(yōu)化教學模式,設計一個好的最優(yōu)化教學方案,首先要對教學對象的情況進行分析,了解學生的基礎知識掌握程度、使用計算機的能力等實際情況,做到心中有數。
2.課堂教學方案設計
(1)講授內容安排。根據教學大綱及指定教材,提煉出該課程每章、每節(jié)的框架體系,從邏輯、存儲結構和數據的運算三個方面去組織教學內容,要重點突出,簡潔明了。
(2)教學策略應用。①積累知識,重視直覺。直覺是建立在豐富的實踐經驗和寬厚的知識積累之上的。例如,講到樹型結構時,為了了解各個結點之間的關系,我們用“家譜”來學習樹形結構。這種方法的調整,極大地提高了教學效果,同時加強了學生直覺思維的培養(yǎng);②問題驅動。問題驅動是指學生在教師創(chuàng)設的情境下應用已有知識提出新問題、解決新問題的過程,也是學生高度自主學習的過程。教師在講課時,要體現教學思想,引入3W的教學理念,采用發(fā)現學習模式,應用啟發(fā)式教學。在講每一種基本的數據結構之前,準備一些實際應用的例子,讓學生一邊逐步學習理論知識,一邊思考如何應用;③范例教學。課堂講授應符合學生的認知規(guī)律,從感性到理性,從理性到實踐,從直觀到抽象,再從抽象到具體實踐,范例教學在《數據結構》的算法思想講解中能發(fā)揮其無法比擬的優(yōu)勢。在教學過程中宜多畫圖,多舉例,多解釋。例如:講解隊列的概念時,可通過日常生活中的購物排隊的過程來反映隊列中插入、刪除的原則。
3.實驗環(huán)節(jié)的教學設計
(1)實驗目的。《數據結構》是實踐性很強的一門課,培養(yǎng)學生的實踐能力是教學的首要目的。本門課的實驗教學的目的是:通過實驗將各門課程學到的知識融會貫通,思考與發(fā)現利用《數據結構》解決實際應用問題的有效方法;強化學生“結構一算法一編程”三者密切相關的意識。平時的練習較偏重于編寫功能單一的“小”算法,最后一周實訓時設計大的具體應用實例研究。
(2)實驗選題。依據實驗教學的目的,考慮學生的個體差異,將實驗設置為必做和選做實驗。兩類實驗都是結合相關的教學需要由授課教師設計,前者目的在于幫助學生掌握基礎知識和實驗研究方法,后者則培養(yǎng)和鼓勵學生的學習興趣、擴大知識面以及培養(yǎng)學生的應用能力和創(chuàng)新意識。
篇8
關鍵詞:數據結構;建構式教育理論;理論教學;實踐教學
近年來,在產業(yè)界急需大量軟件開發(fā)人員的情況下,普通本科院校計算機專業(yè)學生的就業(yè)率持續(xù)走低。網絡、報紙等媒體對計算機本科教育現狀多有批評,甚至出現了大學不如培訓公司的極端觀點,嚴重影響了學生對專業(yè)課程的學習興趣、動力和信心。數據結構是計算機專業(yè)的核心基礎課程,上承程序設計語言、離散數學,下啟操作系統、編譯原理等課程,其重要性不言而喻。一方面,數據結構學科具有難度大、抽象層次高、概念繁雜等特點,學生很難掌握,更不要說將抽象理論與就業(yè)實踐需求相結合。另一方面,國內主流數據結構教材和相應的傳統教學模式側重于培養(yǎng)學生的計算機學科基礎理論素養(yǎng),而將如何通過組織數據結構教學活動積極推動就業(yè)的問題留給了任課教師[1]。這造成了學生學習數據結構的目標不明、信心和動力不足。筆者面向就業(yè)需要明確了數據結構的兩大主要教學目標,并在實際教學過程中實踐建構式教育理論,嘗試解決學生對專業(yè)認識不清、學習興趣不足、編程基礎薄弱等問題。一些做法得到了學生的認可和配合,成功地激發(fā)了學生的學習主動性、在一定程度上培育了學生的創(chuàng)新精神。
1面向就業(yè)需求的數據結構教學目標
教育要服務于社會生產需求。數據結構教學也必須緊扣這一根本目標。本節(jié)從滿足就業(yè)需要的角度闡明了數據結構教學的兩個主要目標:
1) 培養(yǎng)超越具體程序設計語言技巧的編程技術。
現階段是一個傳統的生產生活方式迅速向電子化、信息化轉變的時期。人們需要開發(fā)和維護更多、規(guī)模更大的計算機系統來滿足生產和生活的需要[2]。這就決定了具有熟練編程技術的程序員在很長時期內都將受到產業(yè)界的青睞。大學對學生編程技術的培養(yǎng)始于程序設計語言的教學,如C語言,Java語言等。但是現今編程語言繁多,各種新概念層出不窮,常常出現學生無所適從或者質疑某門語言課程已經過時無用的現象。甚至很多教師也在爭論講授何種編程語言。筆者看來掌握編程技術(而不僅僅是語言),回歸編程的本質問題更加重要,無謂地追趕時髦不可取。作為編程語言課程的后續(xù),數據結構教學的重要目標就是幫助學生理解編程的本質、鍛煉編程技術以及學習提高編程技術的方法。
2) 培養(yǎng)圍繞復用的軟件開發(fā)方式。
隨著軟件規(guī)模的日益增大,軟件開發(fā)模式逐漸從“從無到有”的模式過渡到“從有到有”的模式,即復用現有的豐富的軟件資產,開發(fā)新的應用系統。事實上,復用的思想已經被廣泛的用于軟件開發(fā)實踐之中,從各種各樣的程序庫、軟件開發(fā)包、軟件構件、Web服務等各種可復用資產已經簡化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數據結構學科本身就是對軟件復用思想的一種實踐,它通過總結大量軟件系統中反復出現的數據結構(如表、樹、圖、集合等),定義和實現處理這些數據結構的基本操作,最終達到能夠在不同項目開發(fā)中反復應用的目的。這些基本數據結構和算法已經被實現為可復用的產品隨著程序設計語言,如C++ STL、C# collections, Java collections等,并得到了廣泛的使用。因此,數據結構教學的另一個重要目標就是引導學生習慣圍繞復用的軟件開發(fā)方式,能夠使用和定制已有的數據結構和算法庫。
其他傳統的數據結構教學目標,如培養(yǎng)學生面向實際問題進行算法設計和分析的能力,培養(yǎng)學生計算機學科的基本理論素養(yǎng)和思維方式等也非常重要。但普通本科院校學生對理論內容的接受能力以及將理論和現實就業(yè)需求相聯系的能力相對較弱且教學時間有限[3],筆者認為重點突破本節(jié)給出的兩個更具體、更可達的教學目標,并在實現這種具體教學目標的過程中潛移默化地培育學生的計算思維和理論素質,將會取得更佳的效果。
2建構式數據結構教學
教學理論研究以及教學實踐反饋均表明,學生主動學習的效果遠較被動地接受老師灌輸的效果好的多。因此,為實現上述教學目標,在建構式教育理論的指導下,筆者探索并采用了一系列建構式教學措施,激發(fā)學生的主動性和興趣,取得了較好效果。
建構主義認為,學習并非學習者對教師所授知識的被動接受,而是學習者以自身已有知識和經驗為基礎的主動建構過程[4]。知識不僅是通過教師傳授而得到,更是學習者在一定的情境中,利用必要的學習資料,通過同化新知識、順化自身知識結構的方式而獲得。建構主義提倡在教師指導下的、以學習者為中心的學習,也就是說,既強調學習者的認知主體作用,又不忽視教師的指導作用,教師是意義建構的幫助者、促進者,而不僅僅是知識的傳授者與灌輸者。學生是信息加工的主體、是意義的主動建構者,而不僅僅是外部刺激的被動接受者和被灌輸的對象。下面從理論教學和實踐教學兩個方面介紹我們采用的一些教學措施。
2.1理論教學措施
課堂教學是數據結構教學活動的主要部分,充分利用課堂教學時間,激發(fā)學生學習數據結構的興趣和信心,幫助學生建立學習數據結構的環(huán)節(jié)非常重要。我們采用了如下措施:
1) 組織小型討論。
好的開始是成功的一半,好的課堂教學須在上課之初就抓住學生的注意力,讓學生帶著輕松、愉快的心情聽課。我的做法是在課堂的前5分鐘,提出一個學生感興趣的話題,組織若干個有3~5位同學參與的小型討論。到一個學期結束時,每位同學都有至少一次的發(fā)言機會。討論的主題可以靈活設置,如時事、技術、社會熱點等。有時,課堂中間學生比較疲憊、注意力下降的時候,也可以穿插一點討論,改善課堂環(huán)境。大多數學生非常喜歡這種討論活動,積極參與其中,成為課堂的一部分,從被動上課轉變?yōu)橄矚g上課。
2) 重建理論知識所針對的問題。
國內的經典數據結構教材側重嚴謹的理論,較少討論各種概念、算法出現的背景以及探討的問題是否仍然具有現實價值。而回答這些問題能夠幫助學生重建理論知識所針對的問題原型,重現解決方案的提出、發(fā)展乃至最終成熟的整個過程,更有助于培養(yǎng)學生解決實際問題的能力,養(yǎng)成批判性、創(chuàng)新性思考的習慣。眾所周知,關于樹的存儲方法很多,有雙親表示法,孩子表示法和二叉鏈表表示法[5],其中以樹的二叉鏈表表示法使用最廣,但其他存儲方法也有其適合的應用。例如,在利用樹表示各個集合,求集合中的等價類時,雙親表示法更為合適。每一個集合都用樹的雙親表示法存儲時,并設樹的根結點的值為集合名,集合中的每個成員都對應一個結點,這樣很容易找到一個元素所屬的子集(順著雙親指針找樹的根結點)。
3) 組織“我來講”活動。
數據結構涉及很多抽象的概念和算法,初學者很難理解。而教師則對理論內容比較精熟,常常傾向于從理論的角度逐步遞進、展開講解,這就增加了學生的學習難度。教師和學生在教學語言上的鴻溝是影響教學效果的一個重要障礙。教師當然可將抽象的理論概念與生活中更形象的概念進行類比,幫助學生理解,也可以將復雜的算法過程用多媒體動畫模擬出來,直觀地展示給學生,幫助學生掌握。但一方面,根據建構主義理論,教師和學生的知識背景不同,由教師設計概念類比語境和算法模擬動畫實際上仍然是基于教師的知識結構對知識點進行的同化和順化,而不是對學生知識體系的直接建構。另一方面,教師的經驗和智慧有其局限性,未必總能夠找到最適合的類比語境和動畫模擬。為此,筆者采用了充分發(fā)揮學生智慧的方法,組織“我來講”活動,要求學生通過設計算法的動畫模擬,創(chuàng)建概念的類比語境等方式進行學習,并隨機選擇學生走上講臺對抽象理論概念和復雜算法進行說明。這樣不但能夠調動學生思考問題,還能幫助那些無法完成自我知識體系建構的同學從學生的視角去理解同一個問題。例如,對于n維數組是元素為n-1維數組構成的線性表這一遞歸的類型定義,可采用符號推理的方式,培養(yǎng)學生的理論素養(yǎng),而同時可鼓勵學生根據自己的理解將抽象理論具體化,建立幫助理解和記憶的現實語境。
2.2實踐教學措施
數據結構是幫助具有基本編程語言基礎的學生錘煉編程技術的關鍵課程。它揭示了程序設計的基本面,即如何處理相互之間存在一種或多種數據關系的數據元素所構成的集合、如何設計算法并分析算法的優(yōu)劣。若沒有相應的配套實驗指導學生如何將理論應用于實際問題,只是泛泛而談、紙上談兵,學生容易迷失在數據結構的一連串復雜概念和算法之中,而不知道學習數據結構的意義何在。為實現教學目標,筆者鎖定實驗內容設置和實驗考核等兩個關鍵環(huán)節(jié),實踐了如下措施,取得了較好效果。
2.2.1實驗內容設置
實驗內容設置是進行實踐教學的最重要部分。從覆蓋知識點的角度看,實驗內容須面向數據結構教學目標,即實驗內容須能夠鍛煉學生的編程技巧,如算法設計、調試、測試以及調優(yōu)等能力,還能夠讓學生體會到圍繞復用開展軟件開發(fā)的威力以及思路。從覆蓋教育對象的角度來看,實驗內容須面向大多數同學并充分考慮優(yōu)秀同學,即實驗內容須劃分不同的層次,讓大多數學生能夠很容易入手,并讓有能力、有余力的學生能夠不斷地深入,直至形成綜合型課程設計。
基于以上考慮,并借鑒同行經驗,筆者開展三個層次的實驗教學活動,一是要求所有學生都完成的實驗內容,要求學生采用不同的數據結構實現同一個問題并進行對比分析,例如,分別使用靜態(tài)數組和動態(tài)分配的連續(xù)內存區(qū)實現順序表,使用整型、字符型數組或者鏈表實現長整數的乘法,使用帶頭結點或不帶頭結點的循環(huán)鏈表模擬約瑟夫環(huán)等;二是組織程序設計競賽,讓部分學有余力的同學能夠在算法設計、程序實現和調試、優(yōu)化等方面得到鍛煉和提高;三是設計綜合型課程設計鍛煉學生解決問題的綜合能力,并通過適當分組,培養(yǎng)學生團隊協作精神和能力,鍛煉學生解決問題的綜合能力的目標,最終達到以點帶面全面提高學生能力的目的。
2.2.2實驗考核手段
考核手段在教學環(huán)節(jié)中至關重要。考核手段是學生學習和鍛煉自身能力的風向標。為保證每位同學都能積極完成實驗并有所收獲,避免抄襲和敷衍的現象,筆者采取了綜合型的考核手段。其一,提交實驗成果,即程序及其運行結果;其二,記錄實驗過程、分析實驗結果以及總結實驗得失的實驗報告,對實驗報告進行選優(yōu)講評,培養(yǎng)學生撰寫科學實驗報告的能力;其三,每位同學必須面向教師講解自己編寫的程序,包括主要思路和細節(jié)性語法,優(yōu)秀的同學可走上講臺宣講自己的實驗方案和程序設計技巧。這就基本杜絕了學生相互之間抄襲程序和實驗報告的現象,使得學生真正能夠思考問題,并盡力動手完成實驗。綜合上述三種手段的綜合型考核方法既能夠達到督促大部分同學完成實驗、鍛煉動手能力目的,又能夠達到培養(yǎng)優(yōu)秀同學的目的。特別地,優(yōu)秀同學宣講活動能夠使學生觀摩到如何從學生的視角從無到有的解決問題的過程,這能夠培養(yǎng)學生解決實際問題的信心并激發(fā)其學習積極性。
3應用中遇到的問題
建構式教學模式在應用和推廣過程中遇到的主要問題來自三個方面。其一,目前學生的課業(yè)負擔較重,習慣于被動“填鴨”而不習慣于主動“求索”,這是推動和開展建構式教學模式的主要障礙。其二,建構式教學活動,需要師生的密切交流,但現有師資不足難以滿足實際需求。一個可能的解決方法是綜合多門課程和多個老師,建構整體的知識框架和學習體系,避免課程教學中的重復勞動,提高師資的利用率。另一個可能的解決方法是利用互聯網技術,建立在線教學園地。其三,建構式教學模式仍然處于探索階段,各學科缺乏建構式教學素材。從筆者在實踐教學的體驗來看,應盡量從學生的學習背景和能力成長規(guī)律出發(fā)而不僅僅是從學科背景出發(fā),為學生建構知識體系設計更平滑的路線。
4結語
筆者提出將“培養(yǎng)超越具體程序設計語言技巧的編程技術”和“培養(yǎng)圍繞復用的軟件開發(fā)方式”作為普通本科院校的數據結構教學目標,在建構式教育理論的指導下,設計并實踐了一系列建構式教學措施,分析了應用建構式教學模式所遇到的一些問題。
未來將開展兩個方面的工作。一是通過問卷調查、統計分析等手段定量地分析建構式教學方法的實際效果;二是創(chuàng)造和積累建構式教學素材,如研究數據結構課程設計過程中不同類型學生的知識建構路線,挖掘并推廣其中優(yōu)秀的知識建構方法。
參考文獻:
[1] 教育部高等學校計算機科學與技術教學指導委員會. 高等學校計算機科學與技術專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)[M]. 北京:高等教育出版社,2006:8-101.
[2] 蔡敏,鄭尚志,梁寶華.“數據結構”課程教學改革之我見[J]. 計算機教育,2009(4):50-51.
[3] 揭安全,李云清,楊慶紅,等. 項目教學模式指導的“數據結構與算法”教學改革[J]. 計算機教育,2008(22):21-23.
[4] 郝長勝,賈茹. 運用建構主義理論構建程序設計基礎的新型教學結構[J]. 計算機教育,2007(1):24-25.
[5] 嚴蔚敏,吳偉民. 數據結構(C語言版)[M]. 北京:清華大學出版社,2008:135-136.
Application of Constructivism Theory in Data Structures
SUN Lianshan, ZHAO Xiao
(College of Electrical and Information Engineering, Shaanxi University of Science & Technology, Xi’an 710021, China)
篇9
關鍵詞:數據結構;案例教學;教學改革
1數據結構課程教學現狀及問題
數據結構作為計算機和信息等專業(yè)的核心課程,在教學體系中起著舉足輕重的作用[1-4]。現階段國內數據結構課程受主流數據結構教材影響,多以傳授知識、利用偽代碼描述數據結構及其算法為主,輔以一定的編程實踐作為主要的教學模式。在這樣的教學模式下,對于當前大眾化教育背景下應用型高等工科院校的學生來說,學習掌握數據結構課程,根據實際問題動手設計數據結構算法并能付諸實踐成為一個難題,造成這種現象的主要原因有以下幾點:
1) 在國內主流的數據結構教材普遍采用偽代碼的形式來描述算法,沒有源程序,學生在學習過程中,不能“親眼看見”算法執(zhí)行流程,從而造成對算法理解的困難。
2) 算法描述過于抽象,不夠直觀,教師在教學過程中利用“黑板+粉筆”或者PPT都很難形象直觀地演示算法,不利于學生理解算法。
3) 傳統的教學模式強調理論教學,實踐環(huán)節(jié)不夠,造成學生動手能力差,有的學生會考試能做題,卻看不懂實現算法的程序,更別說自己動手編程實現算法。“數據結構”在計算機軟件開發(fā)領域的真正價值無法得到體現。
就以上問題筆者對在數據結構課程教學過程中引入案例驅動的立體化教學改革研究作了初步研究。
2選擇設計適當的案例以驅動數據結構課程教學改革
2.1案例的設計與選擇
案例選編是數據結構教學改革中的重要環(huán)節(jié),選擇或設計適合學生、難易得當、繁簡相宜的案例,應包含學生已經學過的和即將學到的知識,并以此案例作為驅動進行課程的教學和學習,可以提高學生的學習興趣和學習效率,達到教學目的。
筆者經過多年教學實踐,在教學過程中摸索了一系列案例作為各數據結構教學模塊的驅動,主要包括:以“一元多項式的四則運算”作為線性表結構特別是鏈表結構教學的驅動案例、以“迷宮路徑搜索”作為棧結構教學模塊的驅動案例、以“井字棋游戲”和“霍夫曼樹及霍夫曼編碼”作為樹結構教學模塊的驅動案例、以“校園導游咨詢”作為圖結構模塊的驅動案例,等等,如圖1~圖3所示。下面以較為簡單的鏈表結構為例闡述“一元多項式四則運算”案例如何驅動教學。
2.2一元多項式四則案例驅動鏈表結構的教學
一元多項式四則運算是清華大學嚴蔚敏教授編寫的經典教材中有關鏈表的應用的一個章節(jié),但是在該章節(jié)中數據結構及算法由偽代碼構成,學生很難真正理解如何利用鏈表來實現一元多項式的四則運算。
筆者在教學過程中已經積累了可視化的多項式四則運算程序[5],可以利用該應用程序進行課堂、課后的教學與學習。
2.2.1案例驅動鏈表中結點的教學
“結點”作為鏈表乃至樹和圖等各類數據結構來說是一個非常重要的概念,而對于初學數據結構的學生來說,大多數學生只掌握了基本數據類型的運算,“結點”概念過于抽象,往往使學生摸不著頭腦,從而影響整個數據結構課程的教學。
通過教師講解一元多項式中的單項式如何在計算機中表示,即由系數(浮點型)、指數(整型)兩種基本數據類型構成一個復雜數據類型;一個單項式就是一個多項式的一個結點,利用這種方式使“鏈表中結點”這個比較抽象的概念具體化、形象化,進一步引導學生――要描述和實現這樣一個非簡單類型的“結點”,需要用C++中的類或者結構體來實現。
2.2.2案例驅動鏈表基本操作的教學
多個單項式“串成一串”便成為多項式,可以用“數組”來串聯這些單項式,也可以用“鏈條”來串聯這些單項式,教師可以一起與學生討論順序表和鏈表的各自的特點。這個案例主要體現鏈表的應用,教師引導學生分組討論如何實現串聯,即鏈表的初始化操作、結點插入鏈表以及從鏈表中刪除某個結點等一系列鏈表操作。
多項式的四則運算特別是加、減法本質上是鏈表的合并過程,而鏈表的合并過程也就是結點的插入操作。因此學生們在理解鏈表基本操作的基礎上可以進一步學習其具體的應用。
2.2.3案例驅動下鏈表實踐教學的改革
只有理論學習而沒有實踐,這樣的學習成效是不完整的,不同層次的學生可以利用案例進行不同程度的學習。對于理論理解有困難的學生,他們可以通過上述圖形化界面的應用程序“親眼看到”結點在鏈表中的變化,該程序是可操作的、互動式的,通過輸入數據,可以幫助學生理解一個升序的一元多項式中插入一個任意單項式仍然要保持其升序狀態(tài),需要在在鏈表適當的位置插入結點或者修改結點或者刪除結點,等等;對于算法可以理解但是無法讀懂源程序的學生,可以通過學習、調試源代碼,達到從理論理解到實踐應用的過渡;對于可以理解源代碼的學生,可以讓其嘗試編寫、添加一些具體的函數,增強學生的動手能力。上述一元多項式四則運算應用程序即為筆者的學生開發(fā)完成。
對于這樣一個案例驅動的教學方式的改革實踐,僅僅有案例是不夠的,需要對傳統的教學模式和考試模式、課程組織方式等全方位立體化的改革。
3教學模式與考試模式的改革
3.1在教學方式上的改革
傳統的教學方式是以教師在課堂上講解知識點,學生上機實踐以及課后做習題作為主要的教學模式,
這樣就容易造成前文中提到的學生動手實踐能力低,會考試卻看不懂程序,不會動手編程這樣的局面,達不到應用型高等工科院校對學生的培養(yǎng)目標。只有將教師講解、課堂討論、匯報或答辯、教師或學生總結等多種教學方式相結合,才可以發(fā)揮案例驅動教學以達到教學目的要求。
3.2在教學手段上要充分利用演示系統、精品課程網站等資源
一些演示系統和國家級精品課程網站的資源可以幫助教學進行課堂教學以及學生課后學習,例如,上海交通大學數據結構為國家級精品課程,在該課程網站(/CourseShare/DataStructure/ Index.aspx )包含了相當豐富的教學資源,如約瑟夫環(huán)問題、漢諾塔問題、迷宮問題、火車車廂重排、四皇后問題等算法的動態(tài)演示過程、解決思路、算法描述、參考代碼等;另外,該網站還提供了一些數據結構中常用算法的動態(tài)交互操作實驗,如鏈表的插入和刪除、二叉樹遍歷、霍夫曼樹和霍夫曼編碼、聯通網的最小生成樹等。教師和學生可以充分利用這些非傳統的、動態(tài)交互式的應用程序實現使數據結構的學習不再單一化、抽象化。
3.3在考試模式上改變“一考定輸贏”的方式
我們借鑒國外Assignment形式,采用以小組為單位完成期末大作業(yè)、撰寫課程報告等多種方式相結合進行考核。期末作業(yè)的內容應與教學過程中的案例相結合,讓學生們模仿完成類似的、難易得當的應用程序的開發(fā)。為避免學生們從網上下載源代碼等非誠信的方式來完成期末作業(yè),還要求他們撰寫課程報告并進行匯報答辯。
由于學生個體的差異性,在組成小組時應保證小組成員的多樣化,有的小組成員擅長整體分析,有的小組成員擅長程序辨析,有的小組成員擅長總結報告,等等,學生們通過分工合作來完成期末作業(yè)可以增強學生們的團隊合作精神,也可以發(fā)揮各自的優(yōu)點和特長。
利用這種開放式的考試方式可以改變學生只在期末前夕用功學習就可以完成學業(yè)的現象,改變學生重理論輕實踐的思想,增強學生學習主動性,提高學生動手能力、表達能力。
4與其他專業(yè)課程結合,真正發(fā)揮其核心作用
在計算機專業(yè)或信息類學科專業(yè)中基本上都開設了C語言(或者C++)、面向對象與可視化程序設計等課程,數據結構課程應與這些課程相結合。
4.1在面向對象程序設計語言課程中體現數據結構思想
而對于數據結構而言,從上世紀90年代起國外已經逐步采用用C++或Java描述的數據結構教材,用C不能很好地描述數據結構中的抽象數據類型,只有使用面向對象程序設計語言中的類才能很自然地實現抽象數據類型的思想[1]。另外,目前軟件開發(fā)的主流方式仍然是采用面向對象的程序設計,因此筆者建議在計算機等專業(yè)中應開設C++課程,并以此作為計算機專業(yè)程序開發(fā)的主線語言,該課程應先于數據結構課程開設。
在學習面向對象程序設計語言時,“類”和“對象”等概念非常抽象和難以理解,在教學過程中可以以數據結構中的一些簡單化的案例作為這些抽象概念的具體化。例如在初學“類”時可以以前文中所提到的多項式為例學習如何構造一個“多項式類”,有了一般的“多項式類”,那么具體的某個特定的參與運算的多項式就是這個類的對象。以此達到抽象概念形象化的目的,使得這樣的重要概念變得容易理解。
4.2在數據結構課程中利用C++等語言實現算法,提高學生動手能力
如果在數據結構課程中使用偽代碼作為算法描述的代碼,學生理解算法困難,難以動手實現。因此在學習了C++等語言的基礎上,在數據結構課程中所有數據結構及算法應以C++等語言作為描述語言,并要求學生在此基礎上完成各種作業(yè),提高動手能力。
4.3在可視化程序設計、信息論與編碼等其他專業(yè)課中體現數據結構的應用性
在面向對象與可視化程序設計課程學習的過程中,教師應結合數據結構中學習過程中的各案例,讓學生在可視化編程環(huán)境中利用面向對象技術開發(fā)這些案例的圖形化界面應用程序。如前文中提到的各種案例的圖形化用戶界面的應用程序的開發(fā),信息論中霍夫曼編碼的實現,等等;從而提高學生對數據結構的理解以及開發(fā)能力,并使課程設計變得言之有物。
5結語
案例教學能使理論與實踐更好地結合起來,通過對案例課題的分析、討論和實踐,可以更好地掌握理論及其實際應用[3],以案例驅動整個數據課程的教學模式、考試模式等立體化的教學改革,培養(yǎng)高素養(yǎng)的應用型人才。
參考文獻:
[1] 殷人昆,鄧俊輝. 清華大學數據結構精品課程建設[J]. 計算機教育,2006(5):20-22.
[2] 嚴蔚敏,吳偉民. 數據結構(C語言版)[M]. 北京:清華大學出版社,1997:39-43.
[3] 李克清. “數據結構”案例教學初探[J]. 長江大學學報:自然科學版,2004(12):135-136.
[4] 徐勇,朱張斌,胡艨. “數據結構”輔助教學軟件設計與實現[J]. 長春師范學院學報:自然科學版,2010(2):53-56.
[5] 陳曉霞. 圖形化用戶界面的一元多項式運算[J]. 計算機時代,2008(11):70-71.
Case Teaching in Data Structure
CHEN Xiao-xia
(Science Institute, Zhejiang University of Science and Technology, Hangzhou 310023, China )
篇10
關鍵詞:成果導向;編程算法;多元評量;課程設計
1課程基本情況
高職軟件技術專業(yè),《編程算法》課程類型為軟件技術專業(yè)核心課程,修讀方式為必修課,學分/學時為4學分/72學時,上課場所為一體化實訓教室。課程的總體設計思想為以“成果導向+行動學習”教學理念為指導,遵循學生認知規(guī)律、技能形成規(guī)律及技術發(fā)展規(guī)律,采用成果導向教學模式,并運用五步技能訓練法(必備理論、操作準備、引導訓練、同步訓練、拓展訓練)進行學訓一體、多元實時評量的課上課下教學活動。在課程設計和實施過程中完成:轉———轉為現代職業(yè)教育教學理念;建———課程體系建設、教師專業(yè)建設;改———課程改革、方法改變、課堂改造的成果導向教育教學改革。
2課程描述設計
本課程旨在引領學生運用經典算法處理程序設計問題,掌握C++程序設計技巧,選取合適數據結構、編寫有效算法和對算法進行分析和評價(目的)。
3教學活動歷程設計
在教學活動歷程中按照準備活動、發(fā)展活動、整合活動開展教學活動,完成12個教學環(huán)節(jié)。3.1準備活動:提高溝通整合等能力。教學導航:明確編程算法的教學目標、重點和難點、熟悉教學方法、了解教學環(huán)節(jié)必備知識:教師根據單元學習成果,對確保改學習成果能夠順利達成的相關理論知識進行講解。操作準備:提示本單元操作所需的學習資源,分發(fā)學習素材、信息單。3.2發(fā)展活動:提高問題解決、溝通整合、專業(yè)技能、職業(yè)素養(yǎng)等能力。引導訓練:教師給出操作任務單、算法對應程序的執(zhí)行結果-即學習成果,學生在教師的引導下進行操作,完成案例,形成操作技能單。引導訓練考核評價:對學生操作態(tài)度及完成情況進行評價。同步訓練:教師給出操作任務單、算法對應程序的執(zhí)行結果-即學習成果,由學生按照引導訓練中所學知識完成算法設計及程序編寫,組內成員互相幫助,鞏固所學技能。引導訓練考核評價:對學生操作態(tài)度、小組合作情況及完成情況進行評價。拓展訓練:根據本單元學習的內容,學生在網上搜索可用該算法實現的相關案例,并互相研討,講解,合作實現。拓展訓練考核評價:對學生的任務完成情況、設計創(chuàng)新情況進行評價。代碼解讀:對單元中所涉及的數據結構或程序代碼進行深入解析。問題探究:對編程算法的相關常見問題進行探究。3.3整合活動:提高學習創(chuàng)新能力。單元小結及游戲:對本單元學習內容,學生表現,存在問題等進行總結,完成評量單,并公示單元評量結果。通過游戲進行算法創(chuàng)新思維設計,并放松。單元作業(yè):布置習題,學生課下完成作業(yè)單,鞏固所學內容。
4教學評量設計
編程算法課程》實施達成性評量體系。采用“五相十維”的的多元化評量方式。在出勤評量、單元評量、期中考核、期末考試、檔案評量五個相度開展達成性評量,從學生自評、學生互評、教師點評、出勤表現、課堂表現、互動參與、技能達標、團隊協作、語言表達、作業(yè)評價十個維度細化評量規(guī)準,以紙質評量單為媒介,以電子表格形式在課堂展現,形成評量單結合電子表格的達成性評量。單元學習評量采用多元評量原則,即內容多元、人員多元、形式多元。單元教學設計中的學習評量既可以考察學生知識、能力及素質的變化是否達到預期的教學目標,又可以間接檢核教師教學資源和教學手段是否達標,也可以作為今后課程設計改進的參考。
相關期刊
精品范文
10數據安全論文