中文久久久字幕|亚洲精品成人 在线|视频精品5区|韩国国产一区

歡迎來到優(yōu)發(fā)表網(wǎng),期刊支持:400-888-9411 訂閱咨詢:400-888-1571股權(quán)代碼(211862)

購物車(0)

期刊大全 雜志訂閱 SCI期刊 期刊投稿 出版社 公文范文 精品范文

數(shù)據(jù)結(jié)構(gòu)與算法范文

時間:2022-08-01 09:10:04

序論:在您撰寫數(shù)據(jù)結(jié)構(gòu)與算法時,參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。

數(shù)據(jù)結(jié)構(gòu)與算法

第1篇

關(guān)鍵詞:算法與數(shù)據(jù)結(jié)構(gòu);教學(xué)質(zhì)量;教學(xué)探索;教學(xué)方法

作者簡介:李永(1978-),男,安徽宿州人,鹽城師范學(xué)院信息科學(xué)與技術(shù)學(xué)院,講師。(江蘇 鹽城 224002)

中圖分類號:G642.0?????文獻標(biāo)識碼:A?????文章編號:1007-0079(2012)31-0057-02

算法與數(shù)據(jù)結(jié)構(gòu)”主要研究數(shù)據(jù)在計算機中的表示方法、存儲方法以及其上的操作。[1]在美國IEEE/ACM課程體系和我國教育部學(xué)科規(guī)范中,[2,3]“算法與數(shù)據(jù)結(jié)構(gòu)”被列為核心課程之一。它是操作系統(tǒng)、數(shù)據(jù)庫、軟件工程和人工智能等課程的基礎(chǔ)。算法與數(shù)據(jù)結(jié)構(gòu)蘊含的思想對學(xué)生在軟件設(shè)計方面有很強的導(dǎo)向性,它的教學(xué)效果直接影響學(xué)生的數(shù)據(jù)抽象和程序設(shè)計能力的培養(yǎng)。學(xué)習(xí)該課程,一方面,使學(xué)生學(xué)會分析數(shù)據(jù)對象的特征,掌握數(shù)據(jù)組織的方法和在計算機中的表示方法,為數(shù)據(jù)選擇合適的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和算法;另一方面,培養(yǎng)學(xué)生良好的程序設(shè)計風(fēng)格,進行復(fù)雜程序設(shè)計的訓(xùn)練。[1]

為了在課時約束、學(xué)生基礎(chǔ)、課程難度、教學(xué)目標(biāo)等約束下最大化教學(xué)質(zhì)量,使學(xué)生最大限度地得到提升和發(fā)展,本文從分析“算法與數(shù)據(jù)結(jié)構(gòu)”課程存在的問題出發(fā),在教學(xué)內(nèi)容、教學(xué)方法、實驗教學(xué)等方面進行了一些探索和實踐。

一、“算法與數(shù)據(jù)結(jié)構(gòu)”教學(xué)中存在的問題

1.課程本身難度大

“算法與數(shù)據(jù)結(jié)構(gòu)”是抽象與具體的統(tǒng)一,理解與掌握它需要跨越橫亙在抽象與具體之間的鴻溝。學(xué)習(xí)該課程有兩個難點:一是從算法與數(shù)據(jù)結(jié)構(gòu)到程序?qū)崿F(xiàn)的跨越;二是從實際應(yīng)用到數(shù)據(jù)結(jié)構(gòu)抽象的跨越,即如何利用算法與數(shù)據(jù)結(jié)構(gòu)解決實際問題。[4]“算法與數(shù)據(jù)結(jié)構(gòu)”的內(nèi)容抽象、繁多、邏輯性強,難于理解掌握。學(xué)生學(xué)完后不知道學(xué)了什么,當(dāng)需要解決實際問題時感到無從下手?!八惴ㄅc數(shù)據(jù)結(jié)構(gòu)”綜合性、技巧性強,各種算法中凝結(jié)了大量杰出計算機科學(xué)家的智慧,在有限的教學(xué)時間內(nèi)部分學(xué)生因無法領(lǐng)悟其中的思想與精髓而產(chǎn)生厭學(xué)情緒。

2.前導(dǎo)課程基礎(chǔ)不扎實

“C語言程序設(shè)計”、“高等數(shù)學(xué)”、“離散數(shù)學(xué)”等是數(shù)據(jù)結(jié)構(gòu)的前導(dǎo)課程,其中“C語言”與“數(shù)據(jù)結(jié)構(gòu)”課程的聯(lián)系最為密切?!癈語言”一般開設(shè)在大一第一學(xué)期,是學(xué)生最先接觸的程序設(shè)計語言。由于內(nèi)容多、難度較大、大班教學(xué)、課時有限等原因,教學(xué)時間大部分花在基本概念及簡單程序的編寫上,對結(jié)構(gòu)體、指針、參數(shù)傳遞等難度較大的知識點講解不深入,為“算法與數(shù)據(jù)結(jié)構(gòu)”的學(xué)習(xí)埋下了隱患。

3.教學(xué)方法有待改進

“算法與數(shù)據(jù)結(jié)構(gòu)”的教學(xué)方法主要為板書結(jié)合PPT課件,教學(xué)方式采用“教師講—學(xué)生聽”的灌輸式授課模式,與學(xué)生互動少,課堂氣氛沉悶。教學(xué)方法中以教師為中心按照教學(xué)大綱教學(xué),存在照本宣科、就事論事、內(nèi)容堆砌、缺乏新意等缺點。由于沒有考慮學(xué)生的接受能力、思維能力以及編寫代碼的能力,學(xué)生只是不加思考地被動的接受知識,限制了學(xué)生的積極性與主動性的發(fā)揮。

4.實驗教學(xué)中存在的問題

目前課程實驗中存在的問題主要有下面三個方面。首先,大多高?!八惴ㄅc數(shù)據(jù)結(jié)構(gòu)”實驗的教學(xué)方式仍是以教師為中心,以灌輸、模擬、驗證為主;教師按教材單元布置實驗任務(wù)并做適當(dāng)?shù)囊龑?dǎo)和提示,然后學(xué)生動手實踐。沒有考慮實驗的實用性以及是否適合學(xué)生,不能調(diào)動學(xué)生的學(xué)習(xí)熱情。其次,學(xué)生的程序設(shè)計能力普遍較弱,面對問題時難以有清晰的算法思想,無法將算法思想轉(zhuǎn)變?yōu)檎_的程序代碼,上機調(diào)試和運行程序時面對眾多的錯誤提示無法正確解決,實驗課教學(xué)效果大打折扣。再次,由于實驗課時有限,且實驗內(nèi)容具有相互依賴和遞進的特點,部分學(xué)生又不能充分利用課余時間,造成問題堆積。

二、“算法與數(shù)據(jù)結(jié)構(gòu)”的教學(xué)探索

1.合理組織教學(xué)內(nèi)容

貫穿“算法與數(shù)據(jù)結(jié)構(gòu)”課程的主線是邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及操作,即線性表、樹、圖三種邏輯結(jié)構(gòu);順序和鏈?zhǔn)絻煞N存儲結(jié)構(gòu);插入、刪除、查找、遍歷等操作。這些內(nèi)容不是孤立的,在教學(xué)過程中將它們聯(lián)系起來形成一條主線,由線性到非線性,由簡單到復(fù)雜,方便學(xué)生理解和掌握。在教授課本內(nèi)容時,根據(jù)教學(xué)大綱的要求梳理并提煉出各章節(jié)的知識框架,根據(jù)學(xué)生情況和教學(xué)目的合理劃分課時,控制課程節(jié)奏。課堂上主要針對程度一般的多數(shù)學(xué)生從數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和數(shù)據(jù)的運算三個方面去組織教學(xué)內(nèi)容,做到重點突出、內(nèi)容簡潔。對于程度差的學(xué)生進行個別輔導(dǎo),通過補習(xí)和細(xì)化教學(xué)內(nèi)容幫助其跟上教學(xué)進度。對于程度較好的學(xué)生,通過指定課外讀物、布置思考題等,讓其能力得到充分發(fā)揮。

2.上好第一節(jié)課,激發(fā)學(xué)習(xí)熱情

在第一節(jié)課不要急于給學(xué)生灌輸基礎(chǔ)的理論知識,而要引導(dǎo)學(xué)生明白為何學(xué),講解數(shù)據(jù)結(jié)構(gòu)的研究對象是什么,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有什么用,采用什么樣的方法來學(xué)習(xí)該課程。這些問題的引入不能從抽象的概念入手,而要從貼近生活的一些例子從案例入手,讓學(xué)生在深入課程學(xué)習(xí)前體會到課程的重要性。例如,學(xué)生成績管理系統(tǒng)中如何組織學(xué)號、姓名、成績等,才能快速實現(xiàn)查找、插入、刪除等操作;計算機與人對弈時如何應(yīng)對變化的情況以及給出周全的對策,實現(xiàn)靈活對弈等。也可給學(xué)生展示一些上屆學(xué)生的優(yōu)秀作品,讓學(xué)生先認(rèn)識到數(shù)據(jù)結(jié)構(gòu)在實際編程中的應(yīng)用,并指出在學(xué)期結(jié)束時學(xué)生也能設(shè)計出類似這樣的系統(tǒng)。使學(xué)生認(rèn)識到該課程實際應(yīng)用的價值,對課程充滿探索的欲望,積極性得到調(diào)動,從而有一個良好的開端。

第2篇

1 理論教學(xué)

1.1 明確教學(xué)目標(biāo)

《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程的所有算法思想最后都會落腳到程序上,都需要用高級語言表現(xiàn)出來,老師把握不好目標(biāo),很容易把數(shù)據(jù)結(jié)構(gòu)當(dāng)成C語言的“延伸”和“升華”,課堂上帶領(lǐng)學(xué)生一個一個讀算法程序,而沒有做到讓學(xué)生去領(lǐng)會算法的思想。所以老師一定要明確這門課的教學(xué)目標(biāo)是編程思想而不是程序本身,先有好的構(gòu)思和想法,輔助語言加以實現(xiàn),每節(jié)課都要以“思想第一,實現(xiàn)第二” 為教學(xué)綱領(lǐng),教學(xué)生怎么從實際問題中抽象出模型,提煉出思路,然后用程序來實現(xiàn)這個思路,最后真正的解決問題,就像古人講的“胸有成竹”,在畫竹之前,對于竹子的高度,樹干、樹枝和葉子的結(jié)構(gòu),心里要有個規(guī)劃,做到心中有數(shù),這樣畫出來的竹子才能形象。編程也一樣,先從實際問題重剝離出系統(tǒng)架構(gòu),構(gòu)造出合適的模型,選擇高效率的算法,再使用高級語言把它實現(xiàn),最后再進一步處理趨向完善,使之具備客戶所需要的功能。學(xué)生要從《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程中掌握的就是如何從實際問題中抽象出模型、建造起架構(gòu)的過程,老師只有時刻帶領(lǐng)學(xué)生從這個角度來著手解決問題,才能真正為該課程的教學(xué)把握好方向。

1.2 合理運用教學(xué)方法

隨著現(xiàn)代教學(xué)水平的提高,越來越多的多媒體課件和網(wǎng)絡(luò)資源被運用于教學(xué)當(dāng)中,人們也對啟發(fā)式、問題探究式、課堂討論式等這些新型的教學(xué)方法趨之若鶩,或多或少的把傳統(tǒng)的教學(xué)方法冠以“落伍”和“填鴨式”等貶義色彩。但我個人認(rèn)為,傳統(tǒng)的黑板加粉筆的教學(xué)方法,在《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程當(dāng)中仍然有著舉足輕重的作用,因為PPT課件和動畫都是老師預(yù)先按照自己的思路經(jīng)過思考和摸索,多次嘗試和修改而整理出來的,對于經(jīng)驗不豐富,未曾接觸過相關(guān)知識的學(xué)生來說,直接跳出來的課件和動畫沒有給夠他們思考和整理思路的時間,冰冷的課件和學(xué)生沒有眼神、肢體語言等情感交流,無法從算法思想的角度去引領(lǐng)學(xué)生一步一步的剝離表象,抽離出問題的本質(zhì)。所以,片面的強調(diào)新型的教學(xué)方法是不科學(xué)的,傳統(tǒng)的黑板教學(xué)也不可忽視,在傳統(tǒng)的基礎(chǔ)之上,一些粉筆和語言都不太容易展示的算法執(zhí)行過程,可以結(jié)合現(xiàn)代化多媒體教學(xué)手段來表現(xiàn),形象的動畫能讓抽象的內(nèi)容變得更加直觀更易理解,學(xué)生也更容易被帶入其中,從而使教學(xué)過程變得更加生動形象。

所以,合理的教學(xué)方法應(yīng)該是以板書為主,課件為輔,配合老師與學(xué)生的情感交流,這樣才能取得好的教學(xué)效果。

1.3 實例化教學(xué)設(shè)計

大學(xué)的學(xué)習(xí)和高中不一樣,不再簡單的以分?jǐn)?shù)定乾坤,學(xué)生沒有了壓力也就沒了動力,而且大學(xué)生都各有鋒芒,有自己獨立的思想,如何調(diào)動學(xué)生對該課程的興趣,使被動學(xué)習(xí)變?yōu)橹鲃忧笾惋@得尤為重要,那如何激發(fā)學(xué)生的學(xué)習(xí)興趣呢?答案是要讓學(xué)生感覺到數(shù)據(jù)結(jié)構(gòu)解決的問題其實都來源于我們的實際生活,是切切實實存在于我們周圍的,比如講到順序表和鏈表,可以舉例我們早期去銀行辦事需要排隊,中間插隊一個人后面的人都要后移(順序表插入),中間有一個人離開后面的人都要前移(順序表刪除),這就是順序表,而現(xiàn)在我們在銀行取個號就可以找個舒服的位置坐下,或者離開去辦其它的事情,等叫到號再到窗口,這就是鏈表,存儲的位置不連續(xù),但是大家的邏輯關(guān)系仍然存在;比如講到圖的最短路徑問題時可以設(shè)計一個旅游場景,需要去多個城市旅游,但又希望旅途最短花費最少,讓學(xué)生去設(shè)計路線;比如講到約瑟夫環(huán)的時候可以結(jié)合猶太歷史故事讓學(xué)生身臨其境;再比如講到漢諾塔的時候可以讓學(xué)生先試著玩一玩漢諾塔游戲,然后再考慮怎么用算法來實現(xiàn)。

“興趣是最好的老師”,真正把學(xué)生的興趣調(diào)動起來,使學(xué)生進入到一個積極思考和探索的活躍狀態(tài),教學(xué)就能起到事半功倍的效果。

2 實驗教學(xué)

鑒于該課程的課時壓縮,實驗課的課時也隨之減少了,學(xué)生能動手實踐的時間減少使教學(xué)效果大打折扣。而該課程的學(xué)了老師在理論課上的引導(dǎo)以外,學(xué)生自己動手去“練”才是真正去領(lǐng)悟和內(nèi)化算法思想的法寶,“練”必不可少,所以在這有限的實驗課時間里,如何讓學(xué)生的“練”落到實處也需要老師投入很大的精力來設(shè)計和管控。

2.1 合理安排實驗項目

根據(jù)教學(xué)大綱,結(jié)合學(xué)生的實際掌握程度來設(shè)計實驗項目,主要分為驗證性、可選性和綜合設(shè)計性三大類,驗證性實驗的目的是重溫基礎(chǔ)知識,強調(diào)編程規(guī)范性和完整的算法思想, 主要針對一些常用的算法實現(xiàn), 如順序表、鏈表的創(chuàng)建、要求學(xué)生在上機實驗課堂內(nèi)完成??蛇x性實驗稍有難度,需要融會貫通和創(chuàng)新能力,針對基礎(chǔ)較好的學(xué)生,如果驗證性實驗很快完成,就可以進行可選性實驗項目的操作。綜合設(shè)計類實驗一般涉及多個知識點, 要求學(xué)生自己抽象出模型進行設(shè)計, 主要訓(xùn)練學(xué)生綜合運用所學(xué)知識的能力、團隊協(xié)作能力和自主創(chuàng)新能力。題目一般是要求解決實際生活中遇到的問題,可以對學(xué)生按照基礎(chǔ)的強弱搭配成3-4人一個小組,完成后通過現(xiàn)場演示和答辯來評價效果,這類實驗完成后學(xué)生在體會到成功喜悅的同時,也能領(lǐng)悟到數(shù)據(jù)結(jié)構(gòu)及算法的價值,激發(fā)他們的求知欲望和探索精神,使其更加積極主動的學(xué)習(xí),而這一部分人的主動也能帶動其他的同學(xué)跟進步伐,形成一個好的學(xué)習(xí)氛圍。

2.2 正確管理實驗過程

實驗課堂上,針對不同類型的實驗項目,采用相應(yīng)的教學(xué)方式。對于驗證性實驗,老師可以在實驗開始前對實驗的流程、操作要點及最終的運行效果進行講解,不至于讓學(xué)生盲目摸索,浪費時間。選擇性實驗需要針對部分基礎(chǔ)較好的學(xué)生進行適當(dāng)?shù)膯l(fā)式引導(dǎo),對關(guān)鍵算法和思路予以提點。對綜合設(shè)計性實驗,教師可以采用項目式的教學(xué)方法,帶領(lǐng)學(xué)生理清需求、提取模型、設(shè)計步驟、確定計劃,并對小組成員予以分工,使得實驗?zāi)軌蝽樌倪M行下去。

實驗過程中也要設(shè)定一定的獎勵機制,不能只看最后結(jié)果,對于積極主動,喜歡鉆研的學(xué)生要及時獎勵,給予一定的加分,在綜合設(shè)計類實驗中擔(dān)任重要角色的學(xué)生也要識別出來,適當(dāng)提高實驗過程分?jǐn)?shù)。

基礎(chǔ)較差的學(xué)生光靠課堂上的練習(xí)遠遠不夠,需要整合機房資源,給學(xué)生提供課外實踐的機會,鼓勵他們利用業(yè)余時間補齊差距。

第3篇

關(guān)鍵詞:算法;數(shù)據(jù)結(jié)構(gòu);相關(guān)性

中圖分類號:TP311 文獻標(biāo)識碼:A

算法與數(shù)據(jù)結(jié)構(gòu)包含了選取的算法、存儲必備的方法、擬定的操作規(guī)程。解析數(shù)據(jù)結(jié)構(gòu),這類思路有著凸顯的導(dǎo)向,它關(guān)系到培育的抽象認(rèn)知。構(gòu)建精準(zhǔn)的某一程序不可缺失算法、搭配的數(shù)據(jù)結(jié)構(gòu)。辨識了二者的多重關(guān)聯(lián),設(shè)定最適宜的邏輯框架以此來便于擬定程序。把控各類的算法,側(cè)重去養(yǎng)成合適的設(shè)計風(fēng)格,適應(yīng)日漸復(fù)雜的新算法。

一、選取線性鏈表的實例

計算機科目包含了選取的算法、相關(guān)數(shù)據(jù)結(jié)構(gòu)。從實質(zhì)上看,算法及特有的數(shù)據(jù)結(jié)構(gòu)并非沒有關(guān)聯(lián),它們是聯(lián)系的。變更了分開的思路,側(cè)重了相關(guān)性。依循了算法的主線,多樣的數(shù)據(jù)結(jié)構(gòu)都被融匯于設(shè)定的這一算法。解析了相關(guān)性,借助于預(yù)設(shè)的程序語言來區(qū)分二者。經(jīng)過探究可得:數(shù)據(jù)結(jié)構(gòu)及算法擁有內(nèi)在的深層關(guān)聯(lián),二者不可割裂。把控根本的某一數(shù)據(jù)結(jié)構(gòu)、辨析存儲結(jié)構(gòu),還要關(guān)聯(lián)著可控的算法。這樣做揭示了深層的二者關(guān)聯(lián),符合了變化的科目需要。

二、算法編程的語言

設(shè)計算法含有:初期擬定的模式、面向?qū)ο鬆顟B(tài)下的編程、泛型的編程。融匯這樣的要素,構(gòu)建可得適宜的算法。設(shè)定某個二元組,用它來代表數(shù)據(jù)結(jié)構(gòu)。在二元組內(nèi)整合了多重的數(shù)據(jù)元素,這樣的基礎(chǔ)上又創(chuàng)設(shè)了集合關(guān)系。經(jīng)由抽象可得細(xì)化的數(shù)據(jù)類別。這類算法添加了靈活優(yōu)勢,且很易被調(diào)用。

相關(guān)性涵蓋著泛型編程特有的途徑,它被設(shè)定成典型。泛型編程抽象可得更完備的、精細(xì)的新集合,借助于它來代表算法。整合了多態(tài)模板,可被重復(fù)去調(diào)用,獲取了更高水準(zhǔn)的算法組件。經(jīng)由自主的定義,明晰了數(shù)組內(nèi)的一切元素,集合可得新類別。數(shù)據(jù)類型含有:堆棧及常見的表、二叉樹、隊列及圖形等。表述這樣的抽象數(shù)據(jù),依循了面向?qū)ο蟮谋硎鐾緩剑С直硎稣Z言。提煉獲取了算法模式,遇有近似的數(shù)據(jù)結(jié)構(gòu)都可依照凝練的這一算法予以運算。先要預(yù)設(shè)模塊,擬定細(xì)化的類別及關(guān)聯(lián)的行為。

三、算法的演示流程

線性鏈表的算法依循了面向?qū)ο舐窂较碌慕馕?,選取單鏈表整合了細(xì)化的較多數(shù)據(jù)項。歸結(jié)了線性表、樹形圖及隊列等。依循繼承的演算即可獲取雙向架構(gòu)的這類鏈表,演算的流程為:

四、探析實現(xiàn)的路徑

構(gòu)建神經(jīng)網(wǎng)絡(luò)依照的根本思路為:最小二乘算法。要調(diào)整擬定的權(quán)值,借助于梯度搜索來平衡輸入及輸出的誤差。從現(xiàn)狀看,BP網(wǎng)絡(luò)是最為常見的一類神經(jīng)網(wǎng)絡(luò),它整合了輸入及輸出,構(gòu)建了雙重的映射。數(shù)據(jù)結(jié)構(gòu)及算法凸顯了實踐的特性,側(cè)重培育本源的抽象思路,增添了實踐類的新技能。創(chuàng)設(shè)新穎的算法,要考量真實的關(guān)聯(lián)。實現(xiàn)的路徑為:解析某一疑難、設(shè)計可用的算法、設(shè)定編程。

算法及創(chuàng)設(shè)的數(shù)據(jù)結(jié)構(gòu)可延展至自動檢索館內(nèi)的書目、調(diào)配交通燈、求解某一迷宮。這類算法都不可脫離生活,增添了真實性。針對于線性表,要驗證它關(guān)聯(lián)的鏈?zhǔn)搅鞒獭DM退耕還林,解析最適宜的需求。這樣的基礎(chǔ)上,創(chuàng)設(shè)了彼此關(guān)聯(lián)的精準(zhǔn)數(shù)據(jù)結(jié)構(gòu)。經(jīng)由后續(xù)的細(xì)化設(shè)計,編碼而后再次去調(diào)試。例如:在選修課程時,要擬定明晰的科目名稱、依循的次序等。設(shè)定拓?fù)浯涡騺碇敢罄m(xù)的選修流程,可創(chuàng)設(shè)AOV特有的算法網(wǎng)絡(luò),布設(shè)頂點次序用作表述可篩選的課程。

探析相關(guān)性還可選取壓力傳感器,它含有噪聲的干擾、振動這類的干擾信號。可構(gòu)建采樣電路,壓力傳感器增設(shè)了輸出信號。BP網(wǎng)絡(luò)可采納任一精度來逼近連續(xù)函數(shù),只要選取了適宜的神經(jīng)元數(shù)即可。它包含著隱層,神經(jīng)網(wǎng)絡(luò)在任一精度層級內(nèi)都能表現(xiàn)出非線性的映射??梢韵热ド沙跏嫉募訖?quán)系數(shù),采納梯度搜索以便修正原有的系數(shù)。不斷予以修正,直至誤差的均方符合了擬定要求,才可終結(jié)這一流程。為濾除干擾,經(jīng)由EMD這樣的濾波以此來獲取信號。經(jīng)過后續(xù)的分解,可得測重必備的穩(wěn)態(tài)單值信號。

結(jié)語

算法關(guān)系著數(shù)據(jù)結(jié)構(gòu),解析現(xiàn)有的課節(jié)內(nèi)涵,增添探究中的濃厚興趣。演示某一算法要側(cè)重相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。經(jīng)由慎重的演算才能縮減后續(xù)編程的偏差,培育審慎嚴(yán)謹(jǐn)?shù)娘L(fēng)格。授課中要增設(shè)必備的指引,提出某一疑難而后摸索并化解。歸結(jié)零散的現(xiàn)有知識點,做好舉一反三。

參考文獻

[1]李曉鴻,駱嘉偉,季潔.“數(shù)據(jù)結(jié)構(gòu)與算法分析”研究型實踐教學(xué)的探索[J].實驗室研究與探索,2012(01):121-125.

[2]劉曉靜,黃維通,王曉英.西部地區(qū)CDIO理念下的數(shù)據(jù)結(jié)構(gòu)與算法課程建設(shè)[J].計算機教育,2013(17):107-111.

第4篇

關(guān)鍵詞: 數(shù)據(jù)結(jié)構(gòu)與算法;課程;質(zhì)量標(biāo)準(zhǔn);人才培養(yǎng);綜合性地方本科院校;SMART原則

中圖分類號: G42 文獻標(biāo)識碼:A 文章編號:1009-3044(2015)13-0160-03

Abstract: In this paper, course quality standard of data structure and algorithm is researched under the guidance of talent training objectives of comprehensive local undergraduate college. The SMART principle and guiding ideology are put forward by combining with the characteristics of this course. The overall goals of this course quality standard are made clear. The teaching requirements of this course are given. The implementation of this course quality standard is normalized. Thus, the course quality can be improved and the talent training objectives can be achieved.

Key words: data structure and algorithm; course; quality standard; talent training; comprehensive local undergraduate college; SMART principle

1 引言

《數(shù)據(jù)結(jié)構(gòu)與算法》是計算機專業(yè)的核心基礎(chǔ)課程,其任務(wù)是培養(yǎng)學(xué)生問題求解技術(shù)與抽象方法的能力,同時也是促進學(xué)生掌握程序設(shè)計語言和程序設(shè)計方法的重要課程。該課程教學(xué)內(nèi)容和方法,重點難點等方面已形成了較為成熟的體系[1-2],但是與綜合性地方本科院校的定位相結(jié)合時,就突顯出以下問題:

1)教學(xué)內(nèi)容的實用性、系統(tǒng)性不突出,理論內(nèi)容和實際應(yīng)用結(jié)合不緊密,導(dǎo)致該課程質(zhì)量標(biāo)準(zhǔn)和培養(yǎng)目標(biāo)之間存在一定差距。

2)課堂教學(xué)措施和效果難以準(zhǔn)確評價,培養(yǎng)的人才是否符合市場需求也未可知。

針對上述問題,本文將根據(jù)《數(shù)據(jù)結(jié)構(gòu)與算法》課程的地位,結(jié)合綜合性地方本科院校人才培養(yǎng)目標(biāo),采用SMART原則[3-4]作為指導(dǎo)思想,建立一套完善的課程質(zhì)量標(biāo)準(zhǔn),并將其貫穿于該課程的整個實施過程,以達到預(yù)期的效果。

2 SMART原則

SMART原則是目標(biāo)管理的經(jīng)典理論,本文將其與綜合性地方本科院校[5, 6]《數(shù)據(jù)結(jié)構(gòu)與算法》課程質(zhì)量標(biāo)準(zhǔn)問題的內(nèi)涵相結(jié)合,提出如下原則:

S=Specific(明確性):即要用具體的語言清楚地說明要達成的綜合性地方本科院?!稊?shù)據(jù)結(jié)構(gòu)與算法》課程質(zhì)量標(biāo)準(zhǔn)。

M=Measurable(可衡量性):即所設(shè)計的課程質(zhì)量標(biāo)準(zhǔn)應(yīng)該是明確的,而不是模糊的。應(yīng)該有一組明確的量度標(biāo)準(zhǔn),作為衡量是否達成目標(biāo)的依據(jù)。

A=Attainable(可達成性):即所設(shè)計的課程質(zhì)量標(biāo)準(zhǔn)能夠被執(zhí)行人接受,如果僅僅靠一些行政手段,利用權(quán)利的影響力一廂情愿地把所制定的課程質(zhì)量標(biāo)準(zhǔn)強行實施,結(jié)果總是適得其反的。

R=Relevant(相關(guān)性):即所設(shè)計的課程質(zhì)量標(biāo)準(zhǔn)與綜合性地方本科院校其他目標(biāo)應(yīng)該是高度相關(guān)的。如果實現(xiàn)了某個單一目標(biāo),但與其他的目標(biāo)完全不相關(guān),或者相關(guān)度很低,那這個課程質(zhì)量標(biāo)準(zhǔn)即使被達到了,意義也不是很大。

T=Time-bound(時限性):即所設(shè)計的課程質(zhì)量標(biāo)準(zhǔn)必須在時限范圍內(nèi)達成和實施,否則失去了應(yīng)有的現(xiàn)實意義。

3 課程質(zhì)量標(biāo)準(zhǔn)

3.1 指導(dǎo)思想

本文為綜合性地方本科院校設(shè)計的《數(shù)據(jù)結(jié)構(gòu)與算法》課程質(zhì)量標(biāo)準(zhǔn)依照以下指導(dǎo)思想進行:

①方向性:該課程質(zhì)量標(biāo)準(zhǔn)的建立要堅持正確的導(dǎo)向,要與教育教學(xué)的總目標(biāo)相一致,評價標(biāo)準(zhǔn)要與國家或上級部門公布的標(biāo)準(zhǔn)相一致。指標(biāo)的設(shè)計應(yīng)努力反映現(xiàn)代教學(xué)理論和評價思想,要超越但又不脫離實際現(xiàn)有的教學(xué)水平、教師水平和技術(shù)水平。

②科學(xué)性:課程質(zhì)量標(biāo)準(zhǔn)的各個環(huán)節(jié)都必須能反映綜合性地方本科院校的發(fā)展目標(biāo)和教學(xué)規(guī)律;構(gòu)建一個科學(xué)合理的課程質(zhì)量標(biāo)準(zhǔn)系統(tǒng),同時要保證各個課程質(zhì)量標(biāo)準(zhǔn)之間的獨立性,盡量減少冗余,堅持科學(xué)性,遵循科學(xué)的教育理論和統(tǒng)計學(xué)方法。

③客觀性原則:課程質(zhì)量標(biāo)準(zhǔn)的建立要以真實的資料為基礎(chǔ),對課程質(zhì)量做出客觀的價值判斷,必須以客觀事實為基礎(chǔ),克服課程質(zhì)量標(biāo)準(zhǔn)選取過程中的主觀隨意性和情感因素。各項指標(biāo)應(yīng)采用量化的形式,所設(shè)計的標(biāo)準(zhǔn)應(yīng)符合一定的數(shù)學(xué)模型,同時為避免機械化,應(yīng)在全面的資料收集的基礎(chǔ)上,進行標(biāo)準(zhǔn)的建立。

④可行性原則:該課程質(zhì)量標(biāo)準(zhǔn)要符合上述的SMART原則,在實施時要綜合考慮到人力、物力、財力、時間等各種制約因素。

3.2 目標(biāo)與標(biāo)準(zhǔn)

3.2.1 質(zhì)量總目標(biāo)

根據(jù)教育部教指委提出的計算機專業(yè)《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)基本要求,依據(jù)綜合性地方本科院校人才培養(yǎng)應(yīng)具備的知識、能力、素質(zhì)要求[7, 8],提出《數(shù)據(jù)結(jié)構(gòu)與算法》課程質(zhì)量目標(biāo),如表1所示。

3.2.2 確定課程教學(xué)要求

根據(jù)上述質(zhì)量總目標(biāo),將《數(shù)據(jù)結(jié)構(gòu)與算法》課程的教學(xué)內(nèi)容劃分為3個模塊,并將每個模塊分解成若干教學(xué)單元,明確各教學(xué)單元的主要教學(xué)內(nèi)容和目標(biāo),如表2所示。

3.2.3 課程質(zhì)量標(biāo)準(zhǔn)的實施

要確保課程質(zhì)量標(biāo)準(zhǔn)得以實現(xiàn),關(guān)鍵在于有切合實際的教學(xué)措施及實施規(guī)范。課程質(zhì)量標(biāo)準(zhǔn)作為課程教學(xué)的指導(dǎo)性文件,應(yīng)針對課程的教學(xué)文檔、教學(xué)實施、教學(xué)反饋三個方面進行全程規(guī)范,本文給出《數(shù)據(jù)結(jié)構(gòu)與算法》課程質(zhì)量標(biāo)準(zhǔn)的實施規(guī)范,如表3所示。

在反饋環(huán)節(jié)中的評課,包含了學(xué)生評課、專家評課和企業(yè)評課。學(xué)生評課是學(xué)習(xí)完本課程的學(xué)生在學(xué)習(xí)了本課程的后續(xù)課程后再對本課程的有效性做出評價。專家評課則是由本領(lǐng)域內(nèi)的專家對本課程的全部實施環(huán)節(jié)的規(guī)范性和有效性進行評價。企業(yè)評課是只由相關(guān)的企業(yè)專家,或者是錄用了本專業(yè)畢業(yè)生的企業(yè)的負(fù)責(zé)人,對學(xué)生學(xué)習(xí)了本課程是否能學(xué)以致用做出評價。

4 結(jié)論

《數(shù)據(jù)結(jié)構(gòu)與算法》是一門邏輯性強、理論與實踐緊密結(jié)合的課程,對提高學(xué)生程序開發(fā)能力和培養(yǎng)算法設(shè)計與分析能力都具有重要意義的課程。綜合性地方本科院校以培養(yǎng)應(yīng)用型人才、服務(wù)地方建設(shè)為目標(biāo),這就要求課程質(zhì)量標(biāo)準(zhǔn)的設(shè)置應(yīng)更關(guān)注學(xué)生的整體素質(zhì)培養(yǎng),以及社會對學(xué)生能力和素質(zhì)的需求。本文通過對《數(shù)據(jù)結(jié)構(gòu)與算法》課程質(zhì)量標(biāo)準(zhǔn)進行研究,制定了該課程的質(zhì)量標(biāo)準(zhǔn)和實施規(guī)范,明確了綜合性地方本科院?!稊?shù)據(jù)結(jié)構(gòu)與算法》課程的定位,促進課程的教學(xué)的有效實施。

參考文獻:

[1] 呂亞榮, 繆相林. 數(shù)據(jù)結(jié)構(gòu)與算法實驗教學(xué)的改革與探索[J]. 教育教學(xué)論壇,2014,3(18):23-29.

[2] 劉馨月, 張憲超, 于紅. 數(shù)據(jù)結(jié)構(gòu)與算法核心課程建設(shè)[J]. 計算機教育,2011,6(4):65-68.

[3] 周彥斐. 運用SMART原則優(yōu)化項目教學(xué)過程探究[J]. 閩西職業(yè)技術(shù)學(xué)院學(xué)報,2013,15(4):94-96.

[4] 陸如萍. SMART原則在教學(xué)目標(biāo)設(shè)定中的應(yīng)用探究[J]. 現(xiàn)代基礎(chǔ)教育研究,2013,1(2):196-199.

[5] 王志英. 地方本科院校轉(zhuǎn)型應(yīng)用技術(shù)類型高等學(xué)校途徑探討[J]. 現(xiàn)代企業(yè)教育,2014,16(3): 430-432.

[6] 廖詩艷. 質(zhì)性評價:地方本科院校教學(xué)質(zhì)量監(jiān)控的路徑[J]. 教育探索,2014,7(5):66-68.

第5篇

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)與算法;教學(xué)改革;應(yīng)用型人才培養(yǎng)

中圖分類號:G642.0 文獻標(biāo)志碼:A 文章編號:1674-9324(2017)23-0128-02

一、引言

1.地方高等院校應(yīng)用型人才培養(yǎng)改革。地方高等院校的教學(xué)目標(biāo)正逐步轉(zhuǎn)型為以培養(yǎng)應(yīng)用型人才為目標(biāo),課程教學(xué)方法及設(shè)置要求學(xué)生在學(xué)習(xí)過程中能學(xué)到與社會接軌的知識,從而能提高學(xué)生的學(xué)習(xí)興趣,且在系統(tǒng)學(xué)習(xí)后,即畢業(yè)后進入社會能較快上手,從而培養(yǎng)出適應(yīng)社會需求的應(yīng)用型人才。

2.《數(shù)據(jù)結(jié)構(gòu)與算法》課程地位?!稊?shù)據(jù)結(jié)構(gòu)與算法》是信息與計算科學(xué)專業(yè)的核心基礎(chǔ)課程。數(shù)據(jù)結(jié)構(gòu)的研究范圍主要涉及數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和操作的實現(xiàn),內(nèi)容是程序設(shè)計(特別是非數(shù)值計算的程序設(shè)計)的基礎(chǔ),也是設(shè)計和實現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)系統(tǒng)及其他系統(tǒng)程序和大型應(yīng)用程序的重要基礎(chǔ),是一門理論性強且實踐性強的課程。通過這門課程的學(xué)習(xí),學(xué)生在程序編寫的過程中能夠正確、合理地選擇數(shù)據(jù)的存儲結(jié)構(gòu),有效地設(shè)計算法,從而提高軟件整體質(zhì)量和效率。

3.本文研究方向。本文著重研究如何針對信息與計算科學(xué)專業(yè)的特點,地方院校培養(yǎng)應(yīng)用型人才的教育模式,學(xué)生基礎(chǔ)相對薄弱的情況,設(shè)計合理的教學(xué)方法,達到應(yīng)用型人才培養(yǎng)的目的。

二、傳統(tǒng)教學(xué)中存在的問題

筆者多年從事數(shù)據(jù)結(jié)構(gòu)與算法課程的教學(xué),經(jīng)與學(xué)生進行溝通后,總結(jié)出傳統(tǒng)教學(xué)中存在的問題有如下幾點:

1.理論性強,知識點多。數(shù)據(jù)結(jié)構(gòu)與算法課程的知識點多,理論性和實踐性均較強,且有高度抽象的特點。故要求學(xué)生對程序設(shè)計語言和相應(yīng)的數(shù)學(xué)知識掌握要足夠深入,才能較好地學(xué)習(xí)。信息計算科學(xué)專業(yè)的學(xué)生數(shù)學(xué)基礎(chǔ)較薄弱,學(xué)生反映,理論過于抽象且內(nèi)容較多,越學(xué)后面越不懂,內(nèi)容枯燥不易理解。

2.上機動手能力差。數(shù)據(jù)結(jié)構(gòu)與算法課程中一個重要部分是上機編寫程序?qū)崿F(xiàn)算法,學(xué)生由于上一門程序設(shè)計課程還未理解,難將算法實現(xiàn),體會不到編程的樂趣、算法的優(yōu)美,在學(xué)習(xí)中易失去信心。

在上機實踐觀察中學(xué)生常出現(xiàn)兩種情形:一種是理論尚未理解透徹,后續(xù)上機實踐根本毫無頭緒,不能靈活應(yīng)用推廣;一種是理論可以明白,但程序設(shè)計的能力跟不上,無法獨立完現(xiàn)算法編寫實現(xiàn)和調(diào)試,甚至無從入手去完成偽代碼的書寫。這兩類學(xué)生占絕大多數(shù),只有少部分學(xué)生可以較順利地掌握教學(xué)內(nèi)容并實現(xiàn)完整算法。

3.學(xué)生對數(shù)據(jù)結(jié)構(gòu)的認(rèn)識不夠。外面有些培訓(xùn)機構(gòu)的速成模式對學(xué)生的影響大,它們往往針對某一具體工具軟件的使用,工具軟件已經(jīng)將許多知識進行了集成封裝,使用者只需調(diào)用即可,不用關(guān)心具體實現(xiàn)步驟、方法和效率。而這些步驟、方法、算法效率的討論都是數(shù)據(jù)結(jié)構(gòu)中要學(xué)習(xí)的內(nèi)容。學(xué)生認(rèn)識不到數(shù)據(jù)結(jié)構(gòu)的重要性,于是覺得這門課程沒有應(yīng)用的前途和學(xué)習(xí)的動力,不肯多花時間在上面去練習(xí)和實踐,從而限制了自己后續(xù)能力的提高,比如改進算法的效率,優(yōu)化程序等。

三、改革方法探討

1.以理論教學(xué)為主,案例式教學(xué)為輔。針對應(yīng)用型人才培養(yǎng)的目的和學(xué)生普遍反映的課本內(nèi)容過于抽象的問題,可以選擇一本以案例式教學(xué)為主的教材作為教學(xué)輔助教材。在講授某個知識點前,布置學(xué)生在輔助教材中閱讀,了解相關(guān)的應(yīng)用背景。在預(yù)習(xí)過程中學(xué)生往往能發(fā)現(xiàn)一些問題,于是在課堂學(xué)習(xí)中將更有目的性和積極性去學(xué)習(xí)理論知識,有能力者甚至可以在課外嘗試實現(xiàn)案例、發(fā)現(xiàn)問題。通過案例學(xué)習(xí)可以提高學(xué)生的學(xué)習(xí)興趣,符合應(yīng)用型人才改革的目標(biāo)。學(xué)生也通過案例學(xué)習(xí)了解現(xiàn)實中出現(xiàn)的問題有哪些解決方法。當(dāng)理論具體化后,在工作或后續(xù)學(xué)習(xí)中遇上實際問題將更有解決的方法和思路,而且再進行類比推廣應(yīng)用就比較容易。

但教學(xué)中又不能簡單的以案例式教學(xué)為主。因為案例式教學(xué)的一個缺點是案例中涉及到的應(yīng)用理論未必完全,而是某種模型結(jié)構(gòu)的某些方面的具體應(yīng)用。如樹的教學(xué),一般的課本對樹的應(yīng)用講了六七方面,采用案例教學(xué)法,可能只面對幾種應(yīng)用。故教師在課堂上要將案例抽象出對應(yīng)的結(jié)構(gòu),與理論結(jié)合在一起,詳細(xì)講解理論,即課堂上仍是以理論教學(xué)為主。

2.理論教學(xué)中知識點的篩選和難易處理??紤]到學(xué)院的學(xué)生基礎(chǔ)問題,學(xué)生相應(yīng)的數(shù)學(xué)知識掌握不夠深入,若面面俱到地將所有理論全部講完,將知其然而不知其所以然,也不符合應(yīng)用型人才培養(yǎng)的目標(biāo),故課程內(nèi)容要進行一定的篩選,后續(xù)課程中將出現(xiàn)的問題,不妨留到后續(xù)課程后再詳細(xì)討論。

比如,圖的關(guān)鍵路徑問題,對于基礎(chǔ)掌握好的學(xué)生經(jīng)過課堂學(xué)習(xí)確實可以掌握,但大部分學(xué)生或是不理解,或是理解后不能上機實現(xiàn),而這一問題在離散數(shù)學(xué)課程中圖論一章后有詳細(xì)論述,那在數(shù)據(jù)結(jié)構(gòu)中有限的課時中就不妨先簡講,多花時間在圖的存儲、遍歷算法、最小生成樹等算法上,效果會更好。

另外,教師在理論講解中注意難易的處理。學(xué)生要是產(chǎn)生了畏難情緒,就容易造成前面的知識未消化,后面的知識更無從理解的學(xué)習(xí)障礙。據(jù)過往經(jīng)驗,數(shù)據(jù)結(jié)構(gòu)線性表一章是比較簡單的,其難點在于鏈表,接著的隊和棧一章與線性表是一致的,僅操作方法不同。若學(xué)生在線性表上卡住了,再學(xué)棧和隊列會覺得更難。于是教師授課時對一些基礎(chǔ)又簡單的問題,講深入、講透徹,配合傳統(tǒng)的黑板結(jié)合粉筆效果更好,學(xué)生能有效跟著教師進行思考,注意歸納總結(jié),雖然花時間多,但再學(xué)習(xí)后續(xù)知識時會觸類旁通,學(xué)習(xí)自信心能提高,有利于形成良性的促進作用。

3.上機實踐的難易處理和互動改革。上機實踐主要是將偽代碼的算法用具體程序語言實現(xiàn)、運行。應(yīng)用型人才培養(yǎng)的目的就是要培養(yǎng)學(xué)生將理論知識用于實踐,即能實現(xiàn)運行具體算法。故培養(yǎng)學(xué)生的動手能力是學(xué)好這門課程的關(guān)鍵。

在整個學(xué)期的實踐處理上,實踐難度安排由易至難。在前面的章實踐作業(yè)中,給出的可運行代碼應(yīng)該較完整,留下關(guān)鍵部分讓學(xué)生去編寫,尤其是學(xué)會調(diào)試。隨著章節(jié)的推進,給出的可運行代碼逐步減少至不給。這樣處理是可以讓學(xué)生在初學(xué)時不至于無從入手,而且可以讓程序設(shè)計基礎(chǔ)不牢的學(xué)生有時間通過實踐強化鞏固,讓學(xué)生獲得編程樂趣。

另外,上機實踐時可將學(xué)生分成若干小組,每個小組選出一個學(xué)習(xí)較好的學(xué)生為組長,上機中組長可以幫助組員進行程序的調(diào)試和講解,使學(xué)生能夠閱讀程序理解程序所表達的意義。學(xué)生對知識點理解的角度和教師的角度可能不同,有時候同學(xué)請教比教師更能讓他們接受,從現(xiàn)實課堂中反映,學(xué)生確實更愿意向同學(xué)請教。

組員們在討論中產(chǎn)生解決不了的問題,再與教師討論得到解答,這樣的互動改革既可以有效解決教師逐一回答時間有限的問題,又可以提高學(xué)生的學(xué)習(xí)熱情,學(xué)生之間不斷相互學(xué)習(xí)共同提高,真正讓大家都能動起手來,鍛煉編程能力和舉一反三的自學(xué)能力,為將來到社會工作打下扎實的基礎(chǔ)。

教師在指導(dǎo)中要引導(dǎo)學(xué)生學(xué)會讀懂程序錯誤提示,自己調(diào)試修改程序,提高學(xué)生實踐水平。加強對學(xué)生舉一反三能力的培訓(xùn),讓實踐教學(xué)反哺理論教學(xué),使學(xué)生對理論有更深層次的理解。培養(yǎng)學(xué)生良好的程序編寫習(xí)慣和風(fēng)格,注重程序注解。

4.開展課外講座。在課外,邀請已學(xué)過這門課程的學(xué)生和正在學(xué)習(xí)的學(xué)生進行經(jīng)驗交流。尤其是一些已經(jīng)參加工作的學(xué)生,他們可以帶來更多的實際案例,這些案例比教材中提供的更新穎、更具體,涉及到更全面知識的融會貫通,而且他們可以提供工作中有關(guān)《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程的經(jīng)驗,可以讓學(xué)生們了解與社會接軌的知識,提高學(xué)生的學(xué)習(xí)興趣。

四、總結(jié)

近年畢業(yè)生就業(yè)問題日趨嚴(yán)重,通過上述討論發(fā)現(xiàn),傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)與算法課程的教學(xué)形式已不能滿足現(xiàn)階段實際要求,地方高等院校如何進行應(yīng)用型人才培養(yǎng)改革,培養(yǎng)出適應(yīng)社會需求的應(yīng)用型人才成為研究重點。本文以地方院校信息與計算科學(xué)專業(yè)的《數(shù)據(jù)結(jié)構(gòu)與算法》課程為例,探討一系列的教學(xué)改革措施,以達到應(yīng)用型人才培養(yǎng)的目標(biāo)。

參考文獻:

[1]余臘生.石獻.基于創(chuàng)新理念的數(shù)據(jù)結(jié)構(gòu)教學(xué)方法探討[J].計算機與信息技術(shù),2006,(11):110-114.

[2]李克清.《數(shù)據(jù)結(jié)構(gòu)》課程中的案例教學(xué)初探[J].長江大學(xué)學(xué)報(自科版),2004,12(1)4:135-136.

[3]嚴(yán)蔚敏.吳敏民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,1997.

A Study on "Data Structure and Algorithm" Curriculum Reformation

LI Ting,XU Hong-ru

(School of Mathematics,Jiaying University,Meizhou,Guangdong 514015,China)

第6篇

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);課程體系;實踐教學(xué);課程群

1背景

數(shù)據(jù)結(jié)構(gòu)與算法是計算機類專業(yè)的一門核心基礎(chǔ)課程,是計算機、軟件工程等電子信息類專業(yè)的必修課。本課程較系統(tǒng)地介紹了軟件設(shè)計中常用的數(shù)據(jù)結(jié)構(gòu)以及相應(yīng)的存儲結(jié)構(gòu)和實現(xiàn)算法;介紹了常用的多種查找和排序技術(shù),并對其進行性能分析和比較,內(nèi)容非常豐富[1-2]。本課程的教學(xué)目標(biāo)是加強學(xué)生對數(shù)據(jù)邏輯關(guān)系的分析與認(rèn)識,培養(yǎng)學(xué)生數(shù)據(jù)抽象的能力,通過理論分析與編程實踐相結(jié)合,增強學(xué)生求解復(fù)雜問題的能力以及控制算法復(fù)雜性的能力。

在計算機科學(xué)中,數(shù)據(jù)結(jié)構(gòu)不僅是程序設(shè)計的基礎(chǔ),而且是設(shè)計和實現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等系統(tǒng)程序和各種大型應(yīng)用程序的重要基礎(chǔ)[3]。數(shù)據(jù)結(jié)構(gòu)與算法是計算機類專業(yè)部分專業(yè)課的先導(dǎo)課,如操作系統(tǒng)、編譯原理和數(shù)據(jù)庫原理等,因此它為后續(xù)的專業(yè)課程學(xué)習(xí)提供必要的知識和技能儲備[4]。數(shù)據(jù)結(jié)構(gòu)與算法課程一直以來都是本學(xué)科的核心專業(yè)基礎(chǔ)課程,而且正逐漸發(fā)展成為眾多理工科專業(yè)的熱門選修課。只有學(xué)好了這門課,才能在今后的計算機專業(yè)課程的學(xué)習(xí)中游刃有余。因此,本課程在國內(nèi)同類課程中有較明顯的先進性和示范性。

根據(jù)新世紀(jì)對人才培養(yǎng)的要求,教學(xué)應(yīng)重在學(xué)生能力、素質(zhì)的培養(yǎng),尤其是思維能力、實踐能力、創(chuàng)新能力的培養(yǎng)。多年來我們致力于數(shù)據(jù)結(jié)構(gòu)核心課程的建設(shè),從完善課程體系、加強團隊建設(shè)、深入教學(xué)改革和豐富教學(xué)資源等各個環(huán)節(jié)不斷探索和實踐。從提高學(xué)生的學(xué)習(xí)興趣和加強實踐環(huán)節(jié)教學(xué)方面入手,在教育教學(xué)方面持續(xù)、深入地改進教學(xué)方法,開展教學(xué)研究,提高教學(xué)質(zhì)量。

2完善課程體系

首先,完善以“扎實基礎(chǔ),強化實踐,引導(dǎo)創(chuàng)新”為培養(yǎng)目標(biāo)的課程體系。計算機類專業(yè)核心基礎(chǔ)課程體系主要由離散數(shù)學(xué)、面向?qū)ο蟮某绦蛟O(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)、編譯原理、計算機組成與結(jié)構(gòu)、數(shù)據(jù)庫原理7門課程組成,用于支撐計算機科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò)工程、信息安全、數(shù)字媒體技術(shù)5個計算機科學(xué)相關(guān)專業(yè)的教學(xué)。

我們將課程群的理念引入計算機專業(yè)基礎(chǔ)類課程教學(xué),建立了以數(shù)據(jù)結(jié)構(gòu)為核心的計算機類基礎(chǔ)課程群,如圖1所示。課程群以培養(yǎng)綜合運用計算機基礎(chǔ)知識能力為目標(biāo),打破課程間的壁壘,強化課程聯(lián)系。本課程群以數(shù)據(jù)結(jié)構(gòu)為核心,將數(shù)據(jù)結(jié)構(gòu)的一些基本內(nèi)容如鏈表、排序等滲透到“C/C++程序設(shè)計”課程中;將編譯原理、數(shù)據(jù)庫原理等需要使用數(shù)據(jù)結(jié)構(gòu)內(nèi)容的部分在數(shù)據(jù)結(jié)構(gòu)課程中以應(yīng)用的實例進行講解,從而將相關(guān)課程的授課內(nèi)容形成統(tǒng)一的整體。

在實踐環(huán)節(jié)我們強化數(shù)據(jù)結(jié)構(gòu)對程序設(shè)計語言的訓(xùn)練及解決相關(guān)課程問題的訓(xùn)練。除各門課程有單獨的實踐課程外,獨立設(shè)置貫徹整個教學(xué)環(huán)節(jié)的實踐課程,將數(shù)據(jù)結(jié)構(gòu)課程群中各門課程較為關(guān)聯(lián)的綜合大作業(yè)進行歸并整合。自身實驗課程注重雙基訓(xùn)練,但大實踐課程要求對整個數(shù)據(jù)結(jié)構(gòu)課程群教學(xué)經(jīng)驗豐富、能夠精確把握該課程體系要點的教師進行授課,在教學(xué)中能夠結(jié)合本學(xué)期相關(guān)課程設(shè)置大作業(yè),在講授中能夠根據(jù)學(xué)生的具體情況進行誘導(dǎo)性教學(xué),使學(xué)生通過完成大作業(yè)來更深刻地認(rèn)識學(xué)科體系的全貌,強化學(xué)科綜合素質(zhì)的培養(yǎng)。

以數(shù)據(jù)結(jié)構(gòu)課程為中心構(gòu)建計算機類專業(yè)的核心基礎(chǔ)課程體系,將與計算機科學(xué)相關(guān)專業(yè)的專業(yè)基礎(chǔ)課程教學(xué)打通,在課程、課件、教材、師資隊伍等多方面進行統(tǒng)一的規(guī)劃和建設(shè),以不同的著重點組織課程教學(xué)內(nèi)容、進行大學(xué)生計算機實踐能力和創(chuàng)新能力的培養(yǎng)。該體系打破了原有實驗教學(xué)附屬于理論課程的模式,理論教學(xué)與實驗教學(xué)既相對獨立、又相互聯(lián)系,改變了單一的知識驗證的實驗?zāi)J?,增強綜合應(yīng)用設(shè)計和創(chuàng)新實踐內(nèi)容,全面提高學(xué)生的實驗實踐技能?!霸鷮嵒A(chǔ),強化實踐,引導(dǎo)創(chuàng)新”培養(yǎng)目標(biāo)體現(xiàn)了當(dāng)前計算機類專業(yè)教育的發(fā)展趨勢,走在國內(nèi)高校的前面,在全國各類會議作專題報告近30次。

3加強團隊建設(shè)

目前我院數(shù)據(jù)結(jié)構(gòu)與算法教學(xué)團隊共有5位主講教師,其中教授2人,每50名學(xué)生配一名助教(博士或工學(xué)碩士)。該教學(xué)團隊主要由30~40歲的年輕教師組成,盡管精力充沛,工作熱情很高,但教學(xué)經(jīng)驗尚有欠缺。團隊建設(shè)是本課程建設(shè)的重中之重,要把提高教師的綜合素質(zhì)和教學(xué)科研水平,強化教師的責(zé)任心放在首位。堅持教學(xué)與科研相結(jié)合,以國家自然科學(xué)基金項目為依托,為提高教學(xué)質(zhì)量,不斷提高科研水平和能力;以國家特色專業(yè)建設(shè)項目為依托,加強教學(xué)研究,以理論指導(dǎo)教學(xué)實踐,吸取好的教學(xué)方法和經(jīng)驗,不斷改進教學(xué)方法和手段,迅速促進教學(xué)團隊成長。

在青年教師培養(yǎng)方面注重教學(xué)和科研能力的同步培養(yǎng)。要求青年教師在首次上課之前聽課助課,培養(yǎng)基本教學(xué)能力;實行集中備課,統(tǒng)一課件,互相監(jiān)督,保持教學(xué)一致性和教學(xué)內(nèi)容一致性;定期召開教學(xué)研討,及時總結(jié)教學(xué)經(jīng)驗方法,教授言傳身教;以特色專業(yè)建設(shè)項目為依托,鼓勵青年教師開展教學(xué)研究,以國家級項目為依托開展科研課題研究。青年教師成長迅速,已具備一定的科研能力,教學(xué)效果良好,學(xué)生滿意超過90%;獲得校教學(xué)質(zhì)量優(yōu)良獎,青年教師講課競賽二等獎,多媒體課件二等獎等多項獎勵,已經(jīng)成為學(xué)院的業(yè)務(wù)骨干。

4深化教學(xué)改革

4.1不斷探索新的教學(xué)模式

1) 實踐性教學(xué)。

實踐是獲得真知的根本源泉,主動探索真知是研究型人才的基本素質(zhì),我們在基礎(chǔ)課中的創(chuàng)新能力培養(yǎng)主要體現(xiàn)在,讓學(xué)生在自由的實驗環(huán)境中積極實踐、主動探索,自己發(fā)現(xiàn)新的知識和理論。如圖2所示,在實踐環(huán)節(jié)建設(shè)方面,建立書面作業(yè),上機作業(yè)和課程設(shè)計3個層次的實踐教學(xué)環(huán)節(jié),以通過書面作業(yè)形式消化理解教學(xué)內(nèi)容;通過上機作業(yè)培養(yǎng)動手能力,將課程單元知識轉(zhuǎn)化為實際技能;通過課程設(shè)計培養(yǎng)解決實際問題的能力,融會貫通本課程的知識。

為了滿足強化實踐的教學(xué)要求,本課程團隊經(jīng)過多年實踐,精選、整理了包括卡內(nèi)基梅隆大學(xué)、斯坦福大學(xué)、麻省理工學(xué)院等國內(nèi)外著名大學(xué)教授布置的實踐作業(yè),結(jié)合我們的教學(xué)要求,每學(xué)期給學(xué)生布置18道有一定創(chuàng)新性的上機題目。這些題目既反應(yīng)了數(shù)據(jù)結(jié)構(gòu)教學(xué)的基本知識,又來源于實際應(yīng)用。達到了理論和實踐的完美結(jié)合。本課程實踐教學(xué)和理論教學(xué)環(huán)節(jié)的學(xué)時比例為1.5∶1。經(jīng)我們多年實踐,這個比例符合我國高等教育實際,達到了良好的能力鍛煉目的,值得推廣和借鑒。

2) 研究型教學(xué)。

在研究性理論教學(xué)方面,以教學(xué)大綱為主線,整理數(shù)據(jù)結(jié)構(gòu)領(lǐng)域的經(jīng)典論文,以提出問題為課堂教學(xué)的第一步驟,引導(dǎo)學(xué)生思考,將科學(xué)家的研究方法和研究思路融入課堂教學(xué)中。依托科學(xué)研究項目,提出本學(xué)科領(lǐng)域的最前沿課題,鼓勵學(xué)生思考并解決。對有明顯創(chuàng)造性的成果可以在教師指導(dǎo)下撰寫學(xué)術(shù)論文。

將研究型教學(xué)融入數(shù)據(jù)結(jié)構(gòu)實踐教學(xué)課堂,鼓勵學(xué)生從解決問題的角度研究如何設(shè)計數(shù)據(jù)結(jié)構(gòu)與算法,在傳授基礎(chǔ)知識的同時注重創(chuàng)新性思維方式的培養(yǎng),發(fā)現(xiàn)問題和解決問題能力的培養(yǎng)。

4.2全方位的課程改革

課程建設(shè)的核心是提高教學(xué)質(zhì)量。為提高教學(xué)質(zhì)量,我們從教學(xué)內(nèi)容、教材、教學(xué)方法和手段、考試方法、實踐教學(xué)等方向進行了全方位的改革。

1) 教學(xué)內(nèi)容改革。

課程組參考國內(nèi)外其他院校本課程的教學(xué)大綱和優(yōu)秀教材,對數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)大綱進行了多次修訂,逐步穩(wěn)定了理論教學(xué)的教學(xué)內(nèi)容、教學(xué)要求,細(xì)化了教學(xué)目標(biāo),明確了教學(xué)任務(wù)、教學(xué)內(nèi)容、教學(xué)重點和難點、不同知識點的掌握程度。理論教學(xué)采用以共性化課堂教學(xué)為主,并利用輔導(dǎo)答疑和實踐教學(xué)組織以學(xué)生為主的個性化教學(xué),培養(yǎng)學(xué)生創(chuàng)新能力,輔助課堂教學(xué)。在教學(xué)過程中采用啟發(fā)式教學(xué)方式,即注重學(xué)生基礎(chǔ)理論知識的掌握,也注重學(xué)生分析問題、解決問題等基本能力的培養(yǎng)。

為了配合理論教學(xué),我們也多次修訂了實驗大綱,使實踐內(nèi)容更加符合專業(yè)的發(fā)展和其他各方面的要求,并且與前序課程和后繼課程很好地銜接。在實踐環(huán)節(jié)中注重學(xué)生能力的培養(yǎng)和科學(xué)的開發(fā)方法的培養(yǎng)。實踐教學(xué)內(nèi)容采用梯度組織,具有不同的難易程度,方便學(xué)生鞏固學(xué)習(xí)和拓展知識。

2) 教材選取。

目前本課程使用教材為高等教育出版社出版的《數(shù)據(jù)結(jié)構(gòu)與算法》,許卓群、楊冬青等編著。該教材除了講授基本數(shù)據(jù)結(jié)構(gòu)外,突出作為面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)概念――抽象數(shù)據(jù)類型,強調(diào)算法與數(shù)據(jù)結(jié)構(gòu)的密不可分性、封裝性等;在處理知識面的寬度和知識點的深度上,既滿足作為基礎(chǔ)課的要求又達到一定的水平,完全適合本專業(yè)對人才培養(yǎng)的要求,是普通高等教育“十五”國家級規(guī)劃教材。目前課程組已經(jīng)開始著手準(zhǔn)備根據(jù)我們自己的教學(xué)特點、專業(yè)要求等實際情況自主編制一套教材。

3) 教學(xué)方法改革。

(1) 啟發(fā)式教學(xué):學(xué)生的主動性是學(xué)習(xí),我們在教學(xué)過程中注重啟發(fā)學(xué)生的思維,采用循循善誘的方式引導(dǎo)學(xué)生自己發(fā)現(xiàn)問題,并逐步解決問題,培養(yǎng)學(xué)生思考問題、分析問題和解決問題的能力。這極大調(diào)動了學(xué)生的主觀能動性,培養(yǎng)了學(xué)生分析和解決問題的能力。

(2) 共性化與個性化相結(jié)合教學(xué):從教學(xué)形式上,我們積極探索新的教學(xué)方法,以便能夠調(diào)動和發(fā)揮學(xué)生的主觀能動性。具體有以教師為主體的課堂教學(xué)、習(xí)題課等共性化教學(xué)環(huán)節(jié),也設(shè)置了答疑p質(zhì)疑等教學(xué)環(huán)節(jié),引導(dǎo)鼓勵學(xué)生通過實踐和自學(xué)獲取知識。共性化與個性化相結(jié)合,既可以起到教師主導(dǎo)作用,也可以滿足學(xué)生個性學(xué)習(xí)的需求。

(3) 理論與實驗相結(jié)合:數(shù)據(jù)結(jié)構(gòu)課程主要介紹數(shù)據(jù)的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)以及算法。算法的思想需要通過一種程序設(shè)計語言加以描述并在計算機上實現(xiàn)。我們在重視理論教學(xué)的同時,也很注重實驗課,注重學(xué)生靈活應(yīng)用知識能力的培養(yǎng)。理論與實驗相結(jié)合,可以使學(xué)生更好地理解“數(shù)據(jù)結(jié)構(gòu)”的思想與概念。

5豐富教學(xué)資源

建立本課程網(wǎng)上課堂及在線智能教學(xué)系統(tǒng)。網(wǎng)上課堂設(shè)計的目的是能夠給不同層次、不同需要的學(xué)生提供幫助,提高教學(xué)質(zhì)量。根據(jù)網(wǎng)絡(luò)教學(xué)環(huán)境的要求,

系統(tǒng)主要包括課程概況、師資隊伍、教學(xué)資源、實驗指導(dǎo)、教學(xué)錄像、課程擴展、課程論壇等多個模塊。系統(tǒng)主要具有以下特點:

1) 在線學(xué)習(xí)。

知識內(nèi)容結(jié)構(gòu)化,主體結(jié)構(gòu)采用網(wǎng)頁形式組織教學(xué)內(nèi)容,以單元、章、節(jié)等知識點為中心組織教學(xué),以關(guān)鍵詞或標(biāo)題為線索進行任意的查找。各知識點在整體上搭建框架式結(jié)構(gòu),思路明晰;在細(xì)節(jié)上環(huán)環(huán)相扣,前后關(guān)聯(lián)緊密,便于學(xué)生更好地理解和掌握知識要點。

2) 動畫演示。

以數(shù)據(jù)結(jié)構(gòu)部分的講授為例,這部分內(nèi)容包含許多的算法,其描述大多數(shù)采用類高級語言的形式進行,有些算法無論是時間復(fù)雜性或是空間復(fù)雜性都比較高,采用動畫的形式將算法的執(zhí)行過程和思想呈現(xiàn)給學(xué)生,使學(xué)生很容易理解這一過程,再配上教師的解釋做旁白,可產(chǎn)生與上機親身實踐和跟蹤執(zhí)行相似的效果。

3) 在線測試。

用數(shù)據(jù)庫對練習(xí)題和模擬題進行有效的管理,在學(xué)生進入到考核子系統(tǒng)后,能交互式進行試題的選題與答題。當(dāng)學(xué)生提交答卷后,系統(tǒng)又能對答分進行自動評判,并給出相應(yīng)正確的答案和綜合得分。

4) 課程擴展。

為更好地促進教學(xué),本課程在鞏固基礎(chǔ)知識,提高實踐能力的基礎(chǔ)上,對學(xué)有余力的同學(xué)擴展了本課程的內(nèi)容。引入了卡內(nèi)基梅隆數(shù)據(jù)結(jié)構(gòu)教學(xué)網(wǎng)站,這是一套全英文系統(tǒng),上面提供了豐富的工程性題目訓(xùn)練,更加注重數(shù)據(jù)結(jié)構(gòu)算法在實際中的應(yīng)用,讓學(xué)生開闊了思維和眼界;還為學(xué)生提供了ACM競賽以及大連理工大學(xué)程序設(shè)計競賽的模擬題庫,通過這些略有難度又很新穎的題目進一步提高學(xué)生的學(xué)習(xí)興趣,培養(yǎng)其解決實際問題的能力。

6結(jié)論

在近幾年的課程建設(shè)實踐中,我們的任課教師認(rèn)真組織教學(xué)內(nèi)容,與實際相結(jié)合,積極探索有效的教學(xué)方法,利用多媒體技術(shù)動態(tài)演示復(fù)雜數(shù)據(jù)結(jié)構(gòu)的變化,并補充學(xué)生比較感興趣的知識,拓寬學(xué)生的知識面。逐步完善和充實現(xiàn)有課件,做到內(nèi)容充實,畫面生動,具備聲像效果,收到了很好的教學(xué)效果。作為計算機科學(xué)的核心內(nèi)容,數(shù)據(jù)結(jié)構(gòu)與算法的理論研究及應(yīng)用研究一直在不斷發(fā)展,在以后的工作中要注重研究型教學(xué),鼓勵學(xué)生從解決問題的角度研究如何設(shè)計數(shù)據(jù)結(jié)構(gòu)與算法,并將學(xué)科領(lǐng)域經(jīng)典研究成果和最新研究成果及時地反應(yīng)在課程教學(xué)中,相信數(shù)據(jù)結(jié)構(gòu)與算法這門課的教學(xué)效果和教學(xué)質(zhì)量在我們持續(xù)深入的教學(xué)改革中會越來越好。

注:本文受教育部第二類特色專業(yè)建設(shè)項目――軟件工程特色專業(yè)建設(shè)項目資助。

參考文獻:

[1] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:清華大學(xué)出版社,2002.

[2] 殷人昆. 數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠛虲++描述)[M]. 北京:清華大學(xué)出版社,2007.

[3] 殷人昆,鄧俊輝. 清華大學(xué)“數(shù)據(jù)結(jié)構(gòu)”精品課程建設(shè)[J]. 計算機教育,2006(5):20-22.

[4] 錢紅兵,唐發(fā)根. “算法與數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)體系的建設(shè)[J]. 計算機教育,2009(17):65-66.

Development of the Data Structure and Algorithm Core Course

LIU Xinyue, ZHANG Xianchao, YU Hong

(School of Software, Dalian University ofTechnology, Dalian 116620, China)

第7篇

關(guān)鍵詞 算法與數(shù)據(jù)結(jié)構(gòu) 理論教學(xué) 教學(xué)技巧

中圖分類號:G424 文獻標(biāo)識碼:A

Discussion on Algorithms and Data Structures Theory Teaching Skills

ZHOU Zhanglan

(College of Computer Science, Yangtze University, Jingzhou, Hubei 434023)

Abstract In the "Algorithms and Data Structures" course, theoretical teaching is very important. In order to obtain a limited teaching good teaching effect is not easy. This understanding of knowledge points respectively, classroom inspiration, knowledge and consolidation of four aspects of the introduction of certain teaching techniques introduced in order to achieve the full content of classroom teaching, active classroom atmosphere, enhance students' interest in learning.

Key words Algorithms and Data Structures; theory teaching; teaching skills

算法與數(shù)據(jù)結(jié)構(gòu)是計算機專業(yè)重要的核心課程之一。該門課程中涉及眾多復(fù)雜而抽象的概念、算法,多數(shù)學(xué)生表示學(xué)習(xí)起來感覺較為枯燥。對主講教師來說,如何讓學(xué)生在有限的理論課堂教學(xué)中掌握所有知識并靈活應(yīng)用是不容易的。當(dāng)然,現(xiàn)在有很多教學(xué)手段可以達到增強教學(xué)效果、吸引學(xué)生注意力的目的。比如,在教學(xué)過程中引入精美的PPT課件、動態(tài)教學(xué)演示系統(tǒng)等。但是,這些手段都只能起到輔助教學(xué)的作用。教師在充分利用這些教學(xué)工具時,更應(yīng)該發(fā)揮操控者靈活處理問題并解決問題的能力,以達到更加完美的教學(xué)效果。本文就課堂教學(xué)中的幾點經(jīng)驗進行總結(jié),以供探討。

1 生動的語言,形象的比喻——知識點的理解

算法與數(shù)據(jù)結(jié)構(gòu)課程中的知識點,尤其是每章涉及的重要概念和算法對于初學(xué)的學(xué)生而言不太容易接受。為了使學(xué)生能在課堂教學(xué)中盡快地理解和掌握這些知識,教師在教學(xué)中運用生動的語言和形象的比喻往往能夠起到較好的作用。首先,關(guān)于上課的語言問題。作為一門專業(yè)課程,特別是計算機專業(yè)的核心課程,教師的授課過程總體來說應(yīng)該是嚴(yán)謹(jǐn)?shù)?。專業(yè)課教師是不可能把授課對象當(dāng)成小學(xué)生,然后用活潑的語氣配合可愛的動作來講解的。因此,這里提到的“生動的語言”包含兩方面的內(nèi)容。一方面指教師授課的語氣,不要讓整堂課總是一板一眼像作報告一樣,在重點需要強調(diào)的地方適當(dāng)加重語氣,或者停頓后再次強調(diào),抑揚頓挫的語氣更能使學(xué)生提高注意力和關(guān)注度。另一方面是教師的肢體語言,在加強語氣的同時配合相應(yīng)的手勢等肢體動作。當(dāng)然,這方面與教師的個人授課風(fēng)格有很大關(guān)系。

其次,形象的比喻。本課程在學(xué)習(xí)中涉及的知識點較多,學(xué)生首先要在對概念的充分理解的基礎(chǔ)上,才能進一步學(xué)會靈活應(yīng)用。為幫助學(xué)生更好地理解有關(guān)概念,可以引入生活中常見的問題做比喻。下面以在課堂上講解鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)的區(qū)別為例,說明引入適當(dāng)?shù)谋扔饔兄趯W(xué)生對兩者的理解。由于鏈?zhǔn)浇Y(jié)構(gòu)不需要預(yù)先指定存儲空間的大小。因此,插入和刪除等操作都較為容易,特別是插入操作不存在擴容問題。而順序結(jié)構(gòu)則需在初始化階段申請指定大小的存儲空間,只有在申請成功之后才能進行其它操作。在進行插入或刪除操作時都可能要移動其它元素的位置,而且當(dāng)進行插入操作時,若初始空間不足還會出現(xiàn)需要擴容的問題。為了幫助學(xué)生理解這兩種存儲結(jié)構(gòu)的特點,可以引入這樣的比喻:順序存儲就像上課之前需要申請教室,有多少個學(xué)生就需要有一個能容下所有學(xué)生的教室。當(dāng)然,在進行具體配置時要求教室的空間只能大而不能小。比如,上課的實際學(xué)生人數(shù)為60人,分配的教室為100座,而且一個學(xué)生對應(yīng)一個固定的座位。當(dāng)加入的聽課人數(shù)超過100人時教室里的座位顯然就不夠用了,為了滿足需求需要更換一個更大的教室。函數(shù)realloc能將已分配內(nèi)存區(qū)的大小改為指定大小,①可以用來實現(xiàn)這一擴容操作。鏈?zhǔn)浇Y(jié)構(gòu)則不然,在進行具體配置時其空間就像是一個露天會場。進入會場的每一個人都自帶一個小板凳,當(dāng)人走時小板凳也被同時帶走。只要不存在會場空間不夠(相當(dāng)于內(nèi)存分配單個結(jié)點空間失敗)的情況,容納的人數(shù)是沒有固定限制的?,F(xiàn)在再來分析一下兩種存儲結(jié)構(gòu)在操作上的不同。順序存儲的空間分配是固定的,就像教室里的固定座位。當(dāng)有一個同學(xué)需要插到某一個位置坐下時,若此位置已坐人,其他同學(xué)則需要通過陸續(xù)移動為他騰空一個座位;而鏈?zhǔn)浇Y(jié)構(gòu)則不同,由于每個人都自帶小板凳,只要會場有空間就能容納新來的人。新來的人只需要把要插入的位置告訴排在其前面的人就可以了。當(dāng)然,不是所有的重要知識點都能找到合適的比喻,這需要教師在備課時多思考,并在教學(xué)中靈活運用。

2 恰當(dāng)?shù)奶釂枴n堂啟發(fā)

在授課過程中,活躍的課堂氣氛需要教師和學(xué)生之間的良性互動,而提問是一個很好的實現(xiàn)互動的方法。但是以什么方式提問、怎樣提問還是有一定講究的。首先,關(guān)于提問的方式。對于大學(xué)課堂來說,點名回答或自愿回答都可能會出現(xiàn)學(xué)生不配合的情況,畢竟大學(xué)生和中、小學(xué)生是不同的。因此,教師需要預(yù)先做好自問自答的準(zhǔn)備。提出問題后,要留給學(xué)生一定的思考時間。若在這之后有學(xué)生能主動給出較好的解決方案,則應(yīng)給予及時的鼓勵和贊揚;反之,教師需要自己給出一個粗略的解決思路,將疑問留給學(xué)生并促使學(xué)生繼續(xù)思考。其次,關(guān)于提問的內(nèi)容。提問需要占用課堂教學(xué)時間,因此提出的問題應(yīng)當(dāng)是最重要、最具有啟發(fā)性的。比如,以單鏈表基本操作插入算法②為例:

Status ListInsert_L(LinkList &L,int i, ElemType e){

p=L; j=0;

while(p&&jnext;++j;}

if(!p||j>i-1) return ERROR;

s=(LinkList)malloc(sizeof(LNode));

s->data=e; s->next=p->next;

p->next=s;

return OK;

}

對于算法中“if(!p||j>i-1) return ERROR;”這條語句的作用很多同學(xué)在初學(xué)時并沒有真正了解,只是在具體實現(xiàn)時生搬硬套。為了引起學(xué)生的注意,教師可以在上課時現(xiàn)場運行此算法,并在去掉此語句后輸入數(shù)據(jù)進行驗證。例如,給i賦一個不超出線性表長度的合法的值,這樣不影響輸出結(jié)果,提出這句是不是可有可無的問題,然后留下疑問讓學(xué)生去思考。當(dāng)然,在下次解答時要對這類問題進行總結(jié),強調(diào)錯誤處理在編程中的重要性。

3 有趣的例子——知識點的引入

在專業(yè)課程的教學(xué)中就其知識點來說是較為枯燥的,為了讓學(xué)生在剛開始學(xué)習(xí)新內(nèi)容時就能激發(fā)出學(xué)習(xí)的興趣,可以通過引入具體實例來達到目的。例如,以循環(huán)鏈表的使用為例。在講授什么是循環(huán)鏈表之前,先給出一個“約瑟夫問題”游戲的例子,通過這個游戲提出問題:若使用已經(jīng)學(xué)過的單鏈表是否合適。如果不合適,具體在什么地方不合適。然后引入循環(huán)鏈表的概念,并以此例子來說明循環(huán)鏈表的意義和具體的操作方法。另外一個比較典型的例子是用鐵路調(diào)度站表示“?!眴栴},這也是一個很好的利用生活中的實例來引入知識點從而引起學(xué)生興趣的例子。尤其是在對“?!钡南冗M后出特性講解時具有很好的效果。當(dāng)然,例子的引入要恰如其分才能起到正面作用,過于簡單或不合適的引用反倒會引起學(xué)生的反感,甚至成為笑話。

4 編程演示——知識點的鞏固

在算法與數(shù)據(jù)結(jié)構(gòu)課程中涉及到了大量的經(jīng)典算法,比如最短路徑、關(guān)鍵路徑等。對于學(xué)生來說掌握其原理就可以知其應(yīng)用。但是,對有些需要靈活使用的知識點僅講解原理是不夠的。為了能讓學(xué)生深刻理解并熟練掌握,可以在課堂上編程逐步演示其實現(xiàn)過程。比如,“樹”這一章的內(nèi)容涉及的概念較多,它又是學(xué)生學(xué)到的第一種非線性結(jié)構(gòu),相比之前的線性表實現(xiàn)起來更復(fù)雜。因此,教師在初次講解時很有必要在課堂上將二叉樹的創(chuàng)建過程動態(tài)地演示給學(xué)生,這其中包括順序存儲和鏈?zhǔn)酱鎯Α.?dāng)然,演示過程最好不是已經(jīng)寫好的完整的程序或演示系統(tǒng)成品,而是采用邊講解邊書寫的方式,使學(xué)生更容易了解編程的過程。為了節(jié)省課堂時間,可以先寫好程序框架,比如程序包含的頭文件、所需結(jié)構(gòu)體類型、主函數(shù)、輸出函數(shù)等在講解過程中簡單帶過,而重要函數(shù)的核心代碼則邊講邊寫。這樣不僅可以增強學(xué)生的學(xué)習(xí)興趣,促使學(xué)生自己去編程實踐,更重要的是可以讓學(xué)生非常清楚地了解實現(xiàn)的過程。當(dāng)然,這很考驗教師的編程能力,因為在課堂上臨時寫很有可能因為一時大意使得程序運行出錯而陷入尷尬的境地,從而影響課堂教學(xué)的完整性和完美性。但教學(xué)的目的不是讓教師去展示個人風(fēng)采,而是講授知識。從另一方面來講,學(xué)生也是寬容的。教師偶爾的一次失誤不僅不會影響其權(quán)威性,反而更能讓學(xué)生感受到親切而真實。

算法與數(shù)據(jù)結(jié)構(gòu)作為一門重要的專業(yè)課程,要想取得良好的教學(xué)效果還需要多方面的配合。當(dāng)然,作為主講人的任課教師對課程的教學(xué)起到了決定性的作用。除了依據(jù)授課對象的特點合理安排教學(xué)計劃、教學(xué)內(nèi)容外,把握好有限的理論課堂教學(xué),利用各種方法和手段將理論知識講解清楚,使得教學(xué)內(nèi)容生動、課堂氣氛活躍、學(xué)生學(xué)習(xí)興趣濃厚是很重要的。這不僅能幫助學(xué)生更好地掌握本門課程的理論知識,更能為學(xué)生在后續(xù)學(xué)習(xí)中進行具體實踐打下良好的基礎(chǔ)。

注釋