歡迎來到優(yōu)發(fā)表網(wǎng)!

購物車(0)

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

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

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

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

第1篇

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

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

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

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

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

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

1.課程本身難度大

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

2.前導課程基礎不扎實

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

3.教學方法有待改進

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

4.實驗教學中存在的問題

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

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

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

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

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

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

第2篇

1 理論教學

1.1 明確教學目標

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

1.2 合理運用教學方法

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

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

1.3 實例化教學設計

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

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

2 實驗教學

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

2.1 合理安排實驗項目

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

2.2 正確管理實驗過程

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

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

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

第3篇

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

中圖分類號:TP311 文獻標識碼:A

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

一、選取線性鏈表的實例

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

二、算法編程的語言

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

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

三、算法的演示流程

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

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

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

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

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

結(jié)語

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

參考文獻

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

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

第4篇

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

中圖分類號: G42 文獻標識碼: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è)的核心基礎課程,其任務是培養(yǎng)學生問題求解技術與抽象方法的能力,同時也是促進學生掌握程序設計語言和程序設計方法的重要課程。該課程教學內(nèi)容和方法,重點難點等方面已形成了較為成熟的體系[1-2],但是與綜合性地方本科院校的定位相結(jié)合時,就突顯出以下問題:

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

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

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

2 SMART原則

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

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

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

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

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

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

3 課程質(zhì)量標準

3.1 指導思想

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

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

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

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

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

3.2 目標與標準

3.2.1 質(zhì)量總目標

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

3.2.2 確定課程教學要求

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

3.2.3 課程質(zhì)量標準的實施

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

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

4 結(jié)論

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

參考文獻:

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

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

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

[4] 陸如萍. SMART原則在教學目標設定中的應用探究[J]. 現(xiàn)代基礎教育研究,2013,1(2):196-199.

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

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

第5篇

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

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

一、引言

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

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

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

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

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

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

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

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

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

三、改革方法探討

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

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

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

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

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

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

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

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

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

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

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

四、總結(jié)

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

參考文獻:

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

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

[3]嚴蔚敏.吳敏民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學出版社,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篇

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

1背景

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

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

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

2完善課程體系

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

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

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

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

3加強團隊建設

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

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

4深化教學改革

4.1不斷探索新的教學模式

1) 實踐性教學。

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

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

2) 研究型教學。

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

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

4.2全方位的課程改革

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

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

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

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

2) 教材選取。

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

3) 教學方法改革。

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

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

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

5豐富教學資源

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

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

1) 在線學習。

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

2) 動畫演示。

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

3) 在線測試。

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

4) 課程擴展。

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

6結(jié)論

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

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

參考文獻:

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

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

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

[4] 錢紅兵,唐發(fā)根. “算法與數(shù)據(jù)結(jié)構(gòu)”課程教學體系的建設[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篇

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

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

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

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

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

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

在授課過程中,活躍的課堂氣氛需要教師和學生之間的良性互動,而提問是一個很好的實現(xiàn)互動的方法。但是以什么方式提問、怎樣提問還是有一定講究的。首先,關于提問的方式。對于大學課堂來說,點名回答或自愿回答都可能會出現(xiàn)學生不配合的情況,畢竟大學生和中、小學生是不同的。因此,教師需要預先做好自問自答的準備。提出問題后,要留給學生一定的思考時間。若在這之后有學生能主動給出較好的解決方案,則應給予及時的鼓勵和贊揚;反之,教師需要自己給出一個粗略的解決思路,將疑問留給學生并促使學生繼續(xù)思考。其次,關于提問的內(nèi)容。提問需要占用課堂教學時間,因此提出的問題應當是最重要、最具有啟發(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;”這條語句的作用很多同學在初學時并沒有真正了解,只是在具體實現(xiàn)時生搬硬套。為了引起學生的注意,教師可以在上課時現(xiàn)場運行此算法,并在去掉此語句后輸入數(shù)據(jù)進行驗證。例如,給i賦一個不超出線性表長度的合法的值,這樣不影響輸出結(jié)果,提出這句是不是可有可無的問題,然后留下疑問讓學生去思考。當然,在下次解答時要對這類問題進行總結(jié),強調(diào)錯誤處理在編程中的重要性。

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

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

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

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

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

注釋