在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

首頁 > 文章中心 > 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)

前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文第1篇

摘要:本文針對傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)過程中出現(xiàn)的問題,提出一種案例驅(qū)動的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)方式,以幫助學(xué)生理解和掌握分析問題、解決問題的方法,提高自主學(xué)習(xí)能力,鍛煉設(shè)計(jì)創(chuàng)新能力。實(shí)踐表明,此教學(xué)方式能夠彌補(bǔ)傳統(tǒng)教學(xué)的不足,開闊學(xué)生的思路,提高自主完成率,達(dá)到課程設(shè)計(jì)目的。

關(guān)鍵詞:課程設(shè)計(jì);數(shù)據(jù)結(jié)構(gòu);案例驅(qū)動;教學(xué)改革

中圖分類號:G642

文獻(xiàn)標(biāo)識碼:B

1引言

數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)相關(guān)專業(yè)的專業(yè)基礎(chǔ)課程,屬于專業(yè)課程體系中的核心課程。該課程著眼于對基本數(shù)據(jù)結(jié)構(gòu)進(jìn)行闡述和分析、講解基本數(shù)據(jù)結(jié)構(gòu)的應(yīng)用并介紹典型的基本算法等三個方面,內(nèi)容比較抽象枯燥,掌握起來相對困難。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是一門獨(dú)立的實(shí)驗(yàn)環(huán)節(jié),是對數(shù)據(jù)結(jié)構(gòu)課程教學(xué)理論的延伸和補(bǔ)充,是對理論知識的綜合應(yīng)用,其目的是發(fā)揮學(xué)生的主動性,培養(yǎng)學(xué)生分析實(shí)際問題并加以解決的能力,鍛煉學(xué)生的設(shè)計(jì)創(chuàng)新能力。

傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)輕講授,主要以對學(xué)生的單獨(dú)輔導(dǎo)為主,督促學(xué)生完成課程設(shè)計(jì)。這種方式存在后文所提及的一些問題,隨著互聯(lián)網(wǎng)資源的日益豐富,部分問題更加突出了。為了能讓學(xué)生通過課程設(shè)計(jì)更好的掌握數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,我們設(shè)計(jì)了案例驅(qū)動的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革,實(shí)踐證明,該項(xiàng)教改能夠填補(bǔ)傳統(tǒng)教學(xué)過程的不足。

2傳統(tǒng)教學(xué)過程中暴露的問題

(1) 缺乏駕馭全局的能力。本科二年級學(xué)生計(jì)算機(jī)建模能力弱,沒有軟件工程的思想,因而缺乏駕馭全局的能力。軟件工程課程一般都開設(shè)在數(shù)據(jù)結(jié)構(gòu)課程之后,在進(jìn)行數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)前,學(xué)生也基本沒有分析、編寫較大程序的經(jīng)驗(yàn),這種情況造成了學(xué)生拿到問題后不知該從何下手和如何規(guī)劃好課程設(shè)計(jì)的整個過程。

(2) 生搬硬套基本數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)教材中都是最原始的數(shù)據(jù)結(jié)構(gòu),不進(jìn)行擴(kuò)展和修改基本上是不能直接用到課程設(shè)計(jì)中解決實(shí)際問題的,而采用多種數(shù)據(jù)結(jié)構(gòu)解決問題并加以比較找尋最優(yōu)方案對于學(xué)生來說就更為困難。

(3) 對高級程序語言掌握不到位。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是需要用高級程序語言來編寫的,學(xué)生對該程序語言的掌握程度直接影響到課程設(shè)計(jì)的質(zhì)量,常見的問題包括:變量定義不規(guī)范、函數(shù)功能劃分不合理、代碼可讀性較差、文件讀寫掌握不好、調(diào)試程序能力較弱等。

(4) 照搬、照抄他人課程設(shè)計(jì)的現(xiàn)象存在。由于完成課程設(shè)計(jì)的時間有限,有的學(xué)生在無法自主完成的情況下,通過網(wǎng)絡(luò)、書籍等方式來查找解題方法。本來通過查閱資料消化吸收他人的解題思路來求解自己的課程設(shè)計(jì)問題是毋庸置疑的正規(guī)途徑,然而一方面課程設(shè)計(jì)的題目每個學(xué)校每屆學(xué)生都相對比較固定,致使存在抄襲往屆學(xué)生程序的現(xiàn)象,另一方面互聯(lián)網(wǎng)的發(fā)展使得查找相似題目的課程設(shè)計(jì)源代碼并非難事。此外,市面上還存在著大量快餐式的課程設(shè)計(jì)書籍在售,這類書籍良莠不齊,多是搜集、羅列了若干課程設(shè)計(jì)題目,源碼、光盤附上,草草分析講解了事。許多學(xué)生也習(xí)慣了這種快餐式的學(xué)習(xí),能做到獨(dú)立思考、舉一反三的越來越少。

3案例驅(qū)動的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革特點(diǎn)

案例驅(qū)動的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革是將案例教學(xué)法引入數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)中,教師通過講解一個完整的案例分析解決過程,輔以多媒體的手段與學(xué)生交流、互動,達(dá)到培養(yǎng)學(xué)生分析并解決實(shí)際問題的能力,鍛煉學(xué)生的設(shè)計(jì)創(chuàng)新能力的目的,同時也彌補(bǔ)了目前數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)重實(shí)踐、輕講授的不足,豐富該項(xiàng)課程設(shè)計(jì)的教學(xué)內(nèi)容。該方法有以下特點(diǎn):

(1) 提前熟悉軟件工程思想。案例的分析解決過程就是一個實(shí)踐軟件工程思想的過程,學(xué)生可以在講解的過程中體會軟件開發(fā)的完整流程,進(jìn)而對自己的課程設(shè)計(jì)有全局性的考慮。

(2) 舉一反三,定制合適的數(shù)據(jù)結(jié)構(gòu)。對于案例講解中所涉及到的數(shù)據(jù)結(jié)構(gòu),教師將進(jìn)行細(xì)致的分析。采用不同數(shù)據(jù)結(jié)構(gòu)解決同一問題,在性能和功能上會有所區(qū)別,學(xué)生可以在與教師的互動討論中提高對各種數(shù)據(jù)結(jié)構(gòu)的認(rèn)識,從而設(shè)計(jì)適合解決自己課程設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),甚至能夠采取多種解法。

(3) 養(yǎng)成良好的編程習(xí)慣。優(yōu)秀的代碼就像優(yōu)美的文章一樣能使閱讀者心情舒暢,教師講解的案例都是代碼級別的,定義規(guī)范、流程清楚、可讀性強(qiáng)、具備參考價值,這樣就促使學(xué)生養(yǎng)成良好的編程習(xí)慣。教師以多媒體手段演示代碼的編制調(diào)試過程,使學(xué)生對編程環(huán)境更加熟悉,能夠靈活運(yùn)用跟蹤、斷點(diǎn)等調(diào)試手段,開發(fā)過程事半功倍。

(4) 最大限度避免抄襲課程設(shè)計(jì)的現(xiàn)象。大多數(shù)學(xué)生事實(shí)上都希望能夠自主完成課程設(shè)計(jì),只是因?yàn)椴粫霾艑?dǎo)致抄襲往屆學(xué)生或是市售相關(guān)書籍源碼的現(xiàn)象存在。授之以魚不如授之以漁,通過對典型案例的講授,教師教給了學(xué)生解決課程設(shè)計(jì)的方法,學(xué)生找到了突破口,便愿意通過自己的努力完成任務(wù),自己能制作“大餐”,也就不再求助于“快餐”了。

4典型數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例分析

“活期儲蓄帳目管理”是常見的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目,下面以其講解過程為例簡單描述一下案例驅(qū)動的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)的過程。

此課程設(shè)計(jì)需要實(shí)現(xiàn)的功能一般是:(1)采用交互工作方式;(2)實(shí)現(xiàn)儲戶開戶;(3)實(shí)現(xiàn)儲戶銷戶;(4)向某賬戶存款;(5)從某賬戶取款;(6)排序顯示所有賬戶信息;(7)查詢某賬戶余額;(8)查詢某賬戶交易記錄;(9)所有賬戶及其交易信息存儲至文件,程序運(yùn)行時從文件中讀入。該課程設(shè)計(jì)考察的知識點(diǎn)包括:選擇并構(gòu)造數(shù)據(jù)結(jié)構(gòu);使用與特定數(shù)據(jù)結(jié)構(gòu)相應(yīng)的算法來實(shí)現(xiàn)具體功能;對文件讀寫結(jié)構(gòu)化數(shù)據(jù);對程序設(shè)計(jì)語言的靈活運(yùn)用等。

首先應(yīng)對題目進(jìn)行大致的分析,該題目包括兩方面的信息。一方面是儲戶的信息,可設(shè)計(jì)為包含賬號、姓名和余額等字段;另一方面是交易記錄信息,可設(shè)計(jì)為包括賬號、存取時間、存取標(biāo)志、金額等字段,兩方面信息通過賬號字段關(guān)聯(lián)起來。使用順序存儲結(jié)構(gòu)、鏈?zhǔn)酱鎯Y(jié)構(gòu)或樹形結(jié)構(gòu)都可以存儲這些信息,但其中各有利弊。順序存儲結(jié)構(gòu)設(shè)計(jì)簡單,但容量固定,賬戶插入刪除需要進(jìn)行記錄的移動,單個賬戶的交易記錄信息存儲不易連續(xù)導(dǎo)致列舉時需要對全部交易記錄進(jìn)行完整遍歷,對已排序順序表查找某一記錄時可以采用特定算法(如二分法)提高效率,總體上來說實(shí)用性和整體效率相對較差。鏈?zhǔn)酱鎯Y(jié)構(gòu)設(shè)計(jì)略復(fù)雜,容量不設(shè)上限,賬戶插入刪除較方便,采用鏈?zhǔn)浇Y(jié)構(gòu)存儲的交易記錄形式上連續(xù),列舉時很方便,但在查找某一記錄時需要遍歷整個鏈表效率較低,總體上來說實(shí)用性和整體效率中上。樹形存儲結(jié)構(gòu)相對最復(fù)雜,容量也不設(shè)上限,插入、刪除算法也相對復(fù)雜,采用特殊樹形結(jié)構(gòu)(如二叉排序樹)能夠提高查找記錄時的效率,交易記錄仍可采用鏈?zhǔn)浇Y(jié)構(gòu)存儲,總體上來說實(shí)用性和整體效率較好,現(xiàn)實(shí)中的數(shù)據(jù)庫管理系統(tǒng)(DBMS)多是用樹形結(jié)構(gòu)來實(shí)現(xiàn)的。從實(shí)現(xiàn)難度上來說,順序存儲最簡單,鏈?zhǔn)酱鎯Υ沃?,樹形存儲最難。因此,對學(xué)生一般要求其用鏈?zhǔn)酱鎯韺?shí)現(xiàn),對能力較強(qiáng)的學(xué)生可以鼓勵其用樹形存儲來實(shí)現(xiàn),以鏈?zhǔn)酱鎯槔^續(xù)討論。

賬戶信息和存取記錄之間是通過賬號來關(guān)聯(lián)的,在鏈?zhǔn)酱鎯Y(jié)構(gòu)中可以用指針來表示兩者的聯(lián)系,即每個賬戶節(jié)點(diǎn)(數(shù)據(jù)域可包含賬號、姓名和余額等字段)具有兩個指針域,一個指針指向下一個賬戶節(jié)點(diǎn),另一個指針域指向該賬戶的存取記錄鏈表(存取記錄節(jié)點(diǎn)的數(shù)據(jù)域可包含存取時間、存取標(biāo)志、金額等字段),如下圖所示。

從功能上分析,儲戶開戶、儲戶銷戶就是在賬戶鏈表中進(jìn)行插入和刪除操作;對賬戶存、取款時,首先找到相應(yīng)賬戶,然后添加一條存取記錄,同時修正該賬戶的余額;排序顯示所有賬戶信息,就是對賬戶記錄依據(jù)某一關(guān)鍵字進(jìn)行排序并顯示排序結(jié)果;查詢某賬戶余額,就是遍歷賬戶鏈表,找到對應(yīng)記錄并顯示出來;查詢某賬戶交易記錄,就是先找到該賬戶,然后遍歷顯示該賬戶對應(yīng)的存取記錄鏈表。可以看出,對賬戶鏈表進(jìn)行遍歷查詢在賬戶存取款、查詢余額和查詢存取記錄是都有用到,因此在設(shè)計(jì)時,可以考慮編寫查詢賬戶函數(shù),以供其他功能模塊調(diào)用。

在文件存取方面,存取時都是以存儲節(jié)點(diǎn)為單位進(jìn)行的,即一次性存取一個結(jié)構(gòu)體。該課程設(shè)計(jì)有其特殊之處,有兩種類型的結(jié)構(gòu)體需要存取,即賬戶信息和存取款記錄,這兩種結(jié)構(gòu)體所占用的空間不盡相同,若是都保存在一個數(shù)據(jù)文件中則需要一定的技巧。以保存記錄到文件為例,可以采用存一個賬戶信息,再存一個整形數(shù),該整形數(shù)的數(shù)值為此賬戶對應(yīng)存取記錄節(jié)點(diǎn)的數(shù)量,然后再逐一保存每條存取記錄,存儲完畢后再用相同方法保存下一個賬戶的記錄。讀取文件過程則是存儲過程的逆過程,這樣可以保證存取時,賬戶信息和存取記錄一一對應(yīng),不至于混淆。

在確定了上述思路后,便可以著手編碼,值得注意的是數(shù)據(jù)結(jié)構(gòu)的定義。由于采用了鏈?zhǔn)浇Y(jié)構(gòu),許多同學(xué)便直接將鏈?zhǔn)浇Y(jié)構(gòu)的節(jié)點(diǎn)(包括指針域)直接存儲到文件中。事實(shí)上,這個指針域是沒有保存價值的,尤其在讀取時如果也將指針域讀出并賦值,將很有可能導(dǎo)致不可預(yù)知的錯誤??梢圆扇〉姆椒ㄊ?,先定義只包含數(shù)據(jù)域的數(shù)據(jù)結(jié)構(gòu)體,再定義鏈表節(jié)點(diǎn)結(jié)構(gòu)體將數(shù)據(jù)結(jié)構(gòu)體封裝起來并加上指針域,在文件讀寫時只對數(shù)據(jù)結(jié)構(gòu)體進(jìn)行操作。給出該課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)參考定義如下:

typedef struct log //存取記錄

{

char DateTime[25]; //存取時間

char W_D; //存取標(biāo)志

float Amount; //存取金額

} log;

typedef struct node_log //存取記錄節(jié)點(diǎn)

{

log data; //存取記錄

struct node_log *next; //下一存取記錄節(jié)點(diǎn)指針

} node_log, *p_node_log;

typedef struct account //賬戶記錄

{

char ID[10]; //賬號

char Name[10]; //姓名

float Balance; //余額

} account;

typedef struct node_account //賬戶記錄節(jié)點(diǎn)

{

account data; //賬戶記錄

struct node_log *nlog; //存取記錄節(jié)點(diǎn)指針

struct node_account *next; //下一賬戶記錄節(jié)點(diǎn)指針

} node_account, *p_node_account;

其他功能模塊便可以參照數(shù)據(jù)結(jié)構(gòu)教材上的相關(guān)算法設(shè)計(jì)實(shí)現(xiàn)。

5結(jié)果與結(jié)論

我們將來自3個不同專業(yè)(計(jì)算機(jī)、網(wǎng)絡(luò)工程、軟件工程)10個班級的57名同學(xué)分成了兩組,一組(試驗(yàn)組)通過上述方法進(jìn)行了課程設(shè)計(jì)教學(xué),一組(對照組)仍采用傳統(tǒng)方法教學(xué),課程設(shè)計(jì)題目相同。課程設(shè)計(jì)對比統(tǒng)計(jì)情況如下表,其中試驗(yàn)組優(yōu)良率達(dá)到44%,不合格率13%,對照組優(yōu)良率21%,不合格率26%。同時,試驗(yàn)組采用了多種方式來實(shí)現(xiàn)了課程設(shè)計(jì),且雷同情況較少,對照組多數(shù)采用順序存儲方式實(shí)現(xiàn),程序雷同情況較多。很明顯,試驗(yàn)組的學(xué)生思路更加開闊,自主完成率更高。

時代在變遷,信息獲取更加便捷,部分學(xué)生的學(xué)習(xí)積極性在某種程度上也發(fā)生了蛻變,隨之的教學(xué)方式也應(yīng)有所改變,教師應(yīng)從正面加以引導(dǎo)。在以案例驅(qū)動的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革實(shí)踐中,教師通過對典型案例的細(xì)致分析,比較不同數(shù)據(jù)結(jié)構(gòu)的優(yōu)缺點(diǎn),一方面使學(xué)生更加牢固的掌握了數(shù)據(jù)結(jié)構(gòu)知識,另一方面讓學(xué)生找到入手之門,激發(fā)學(xué)習(xí)興趣,提高動手能力,更重要的是能讓學(xué)生掌握分析和解決問題的方法,自主完成課程設(shè)計(jì),這對今后其他課程的學(xué)習(xí)也是有所裨益的。

參考文獻(xiàn):

[1] 張培,肖天慶. 基于網(wǎng)絡(luò)環(huán)境下教學(xué)設(shè)計(jì)與課程開發(fā)的合作模式研究[J]. 電化教育研究,2007,(9):60-63.

[2] 吳宏偉,張殿龍,梅險(xiǎn). 高校網(wǎng)絡(luò)輔助教學(xué)的探索與實(shí)踐[J]. 計(jì)算機(jī)教育,2007,(7):18-21.

[3] 張敏霞. 程序設(shè)計(jì)語言課程教學(xué)方法改革的探索與實(shí)踐[J]. 中國高教研究,2004,(2):90.

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文第2篇

數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)元素之間的關(guān)系。從概念和實(shí)現(xiàn)兩個角度,可將數(shù)據(jù)結(jié)構(gòu)分為數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。按照數(shù)據(jù)元素之間前驅(qū)和后繼關(guān)系來分,數(shù)據(jù)的邏輯結(jié)構(gòu)可分為以下4種:集合(Set)、線性表(List)、樹(Tree)和圖(Graph)[2]。數(shù)據(jù)的存儲結(jié)構(gòu)主要包括數(shù)據(jù)元素本身的存儲以及數(shù)據(jù)元素之間關(guān)系表示。數(shù)據(jù)元素之間的關(guān)系在計(jì)算機(jī)中主要有兩種不同的表示方法:順序映像和非順序映像,并由此得到兩種不同的存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。JavaJDK為常用的數(shù)據(jù)結(jié)構(gòu)定義了一些接口(Interface)和實(shí)現(xiàn)(Implementation)。這些接口、實(shí)現(xiàn)類以及常用的排序、查找等算法統(tǒng)稱為JavaCollections框架(JavaCollectionsFramework)。Collections框架的設(shè)計(jì)目的是要滿足如下目標(biāo):高性能、一致性、擴(kuò)展性和輕松編程。Java程序員在具體應(yīng)用時,不必考慮數(shù)據(jù)結(jié)構(gòu)和算法實(shí)現(xiàn)細(xì)節(jié),只需要用這些類創(chuàng)建出來一些對象,然后直接應(yīng)用即可[3]。Java中把一組對象稱為Collection,也就是說,Collection是對象的容器。Java對Collection中的對象沒有任何前驅(qū)、后繼以及重復(fù)性的約束,只是約束了對象類型E。Collection接口定義了其上的3類操作:針對單個元素的基本操作、迭代器和Collection對象之間的批量操作。基本操作包括增加、刪除、判斷是否包含某個元素、判斷是否為空、容器中當(dāng)前元素的個數(shù)、清空等。批量操作包括:合并兩個Collection容器、從一個容器中移走一些元素、保留兩個容器中相同的元素、判斷一個容器中的元素是否完全包含在另外一個容器中等。接口Collection<E>的子接口有Set<E>和List<E>。集合(Set)在Collection的基礎(chǔ)之上增加了“不允許重復(fù)元素”的約束;而List則在Collection基礎(chǔ)之上增加了“元素之間具有前驅(qū)、后繼關(guān)系”的約束:除了第一個元素外,所有元素具有唯一的前驅(qū);除了最后一個元素外,所有元素具有唯一后繼。如果僅關(guān)心數(shù)據(jù)元素是否出現(xiàn),而不關(guān)心數(shù)據(jù)元素之間的次序,則應(yīng)使用Set<E>。Java為集合接口提供了兩個基本的實(shí)現(xiàn):HashSet<E>和Tree<Set>。HashSet<E>是Set<E>接口的典型實(shí)現(xiàn),大多使用集合的場合就是使用這個實(shí)現(xiàn)類。HashSet實(shí)現(xiàn)類按哈希算法來存儲集合中的元素,因此具有很好的查找性能。HashSet不能記憶元素之間的順序,包括插入順序。其子類LinkedHashSet<E>也是根據(jù)元素hashCode值來決定元素存儲位置,但它同時使用鏈表維護(hù)元素的次序,這樣使得能夠記憶插入順序。由于LinkedHashSet需要維護(hù)元素的插入順序,所以性能略低于HashSet,但遍歷集合里的全部元素性能較好。實(shí)現(xiàn)類TreeSet<E>可以確保集合元素處于排序狀態(tài),TreeSet并不是根據(jù)元素的插入順序進(jìn)行排序,而是根據(jù)元素的實(shí)際值來進(jìn)行排序的。TreeSet采用紅黑樹的數(shù)據(jù)結(jié)構(gòu)對元素進(jìn)行排序,并要求添加進(jìn)TreeSet中的對象必須實(shí)現(xiàn)CompareTo<E>接口。List<E>接口作為Collection<E>接口的子接口,可以使用Collection接口中的全部方法。但是List接口中定義了元素位置和元素范圍的概念,使得List可以根據(jù)元素位置索引(index)來插入、替換、刪除集合元素以及查找指定對象的位置。ArrayList<E>實(shí)現(xiàn)類基于數(shù)組實(shí)現(xiàn)了List接口,其內(nèi)部封裝了一個動態(tài)再分配的數(shù)組。每個ArrayList對象都有一個capacity屬性,這個屬性表示它們所封裝的數(shù)組的長度,當(dāng)添加元素超過長度時,capacity會自動增長,其默認(rèn)值為10。LinkedList<E>內(nèi)部以鏈表來保存集合中的元素,因此隨機(jī)訪問容器時的性能較差,但在插入、刪除元素時性能較好。Queue<E>接口用于定義隊(duì)列這種數(shù)據(jù)結(jié)構(gòu),隊(duì)列是“先進(jìn)先出”的容器,通常不允許隨機(jī)訪問其中的元素。Java中的隊(duì)列接口Queue<E>沒有繼承List接口,而是直接繼承了Collection接口。如果使用具有固定容量的隊(duì)列,則應(yīng)使用offer()來加入元素,使用poll()來獲取并移出元素,因?yàn)閍dd()和remove()方法在因容量原因失敗時拋出異常。如果只是訪問隊(duì)首而不移出該元素,使用element()或者peek()方法。LinkedList<E>類實(shí)現(xiàn)了Queue<E>接口,因此我們可以把LinkedList當(dāng)成Queue來用。PriorityQueue是一個比較標(biāo)準(zhǔn)的隊(duì)列實(shí)現(xiàn)類,它并不是按加入隊(duì)列的順序,而是按隊(duì)列元素的大小來記憶隊(duì)列元素的順序。因此當(dāng)調(diào)用peek方法或者poll方法來取出隊(duì)列中的元素時,并不是取出最先進(jìn)入隊(duì)列的元素,而是取出隊(duì)列中最小的元素。Stack<E>實(shí)現(xiàn)了List<E>接口,提供了push和pop操作限制線性表中元素的插入和刪除只能在線性表的同一端進(jìn)行。JDK1.6引入的ArrayDequ<E>實(shí)現(xiàn)類被優(yōu)先推薦作為棧使用。ArrayDeque<E>實(shí)現(xiàn)了Deque<E>接口。Deque<E>接口定義了雙端隊(duì)列,雙端隊(duì)列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進(jìn)行。JavaJDK中沒有直接提供樹和圖的接口和實(shí)現(xiàn)類,但是可以通過研究TreeMap的源代碼學(xué)習(xí)操作樹的一般編寫模式。綜上,數(shù)據(jù)結(jié)構(gòu)與Java面向?qū)ο蟪绦蛟O(shè)計(jì)兩門課程內(nèi)容的銜接見表1。

2面向數(shù)據(jù)結(jié)構(gòu)銜接的Java課程實(shí)施方案

Java面向?qū)ο蟪绦蛟O(shè)計(jì)為1學(xué)期的課程??傉n時為講授54學(xué)時、實(shí)驗(yàn)32學(xué)時。其中,與數(shù)據(jù)結(jié)構(gòu)知識點(diǎn)緊密相關(guān)的JavaCollections框架部分為講授6學(xué)時、實(shí)驗(yàn)4學(xué)時。在講授環(huán)節(jié),按照表1列出的順序進(jìn)行。在實(shí)驗(yàn)環(huán)節(jié)完成與授課內(nèi)容相關(guān)的驗(yàn)證性實(shí)驗(yàn)。在課程設(shè)計(jì)實(shí)踐環(huán)節(jié),要求學(xué)生使用Java設(shè)計(jì)常見算法,然后閱讀JDK提供的源代碼進(jìn)行對照。具體方案如圖1所示。比如,在java.util.Collections類中提供了數(shù)據(jù)結(jié)構(gòu)中學(xué)生已經(jīng)學(xué)過的常見算法,如二分查找、計(jì)算元素頻數(shù)、查找最大/最小元素、反轉(zhuǎn)線性表、按照指定距離旋轉(zhuǎn)線性表、隨機(jī)排列線性表、交換指定位置上的兩個元素以及排序等。注意,在Java6中Collections.sort()使用的是MergeSort;而在Java7中,內(nèi)部實(shí)現(xiàn)換成了TimSort。要求學(xué)生按照這些API文檔說明,首先按照數(shù)據(jù)結(jié)構(gòu)課程中的知識設(shè)計(jì)自己的算法實(shí)現(xiàn),然后與API源代碼進(jìn)行比較。由于學(xué)生使用C語言版的數(shù)據(jù)結(jié)構(gòu)教材,所以在面向Collection編程之前,作為過渡,先讓學(xué)生面向數(shù)組編程。哈希表是一種重要的數(shù)據(jù)結(jié)構(gòu),也是實(shí)現(xiàn)集合的基本途徑之一。通過研究HashSet的源代碼,可以讓學(xué)生理解為什么每個對象都要有hashcode()方法,以及哈希表的編碼特點(diǎn)。由于HashSet的實(shí)現(xiàn)是基于HashMap的,所以研究HashSet就要研究HashMap。Map是一種典型的名值對類型,它提供一種Key-Value對應(yīng)保存的數(shù)據(jù)結(jié)構(gòu)??蛻舫绦蛲ㄟ^Key值來訪問對應(yīng)的Value,這個接口并沒有繼承Collection這接口;而其他的類或者接口,不管是List、Set、Stack等都繼承或?qū)崿F(xiàn)了Collection。TreeMap和HashMap算是Java集合類里面比較有難度的數(shù)據(jù)結(jié)構(gòu)。HashMap元素存取的時間復(fù)雜度一般是O(1),而TreeMap內(nèi)部對元素的操作復(fù)雜度為O(logn)。TreeMap記憶了順序,TreeSet內(nèi)部的實(shí)現(xiàn)使用了TreeMap。

3結(jié)語

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文第3篇

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)預(yù)算法;國際化;互動式教學(xué)

文章編號:1672-5913(2013)18-0058-04

中圖分類號:G642

0 引言

通過觀察和對比,國際一流大學(xué)學(xué)生參與課堂發(fā)言和課后研討的積極性要遠(yuǎn)遠(yuǎn)高于復(fù)旦大學(xué)學(xué)生,而參與研討對于促進(jìn)學(xué)生深入理解課程內(nèi)容,培養(yǎng)學(xué)生在立題、思辨和協(xié)作方面的能力十分有益。為此,復(fù)旦大學(xué)軟件學(xué)院開展了數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)類課程國際化建設(shè)工作,主要目標(biāo)是研究如何在課堂教學(xué)中采用研討型方式,在實(shí)驗(yàn)環(huán)節(jié)中采用協(xié)作型項(xiàng)目,并針對中國學(xué)生的特點(diǎn),探索如何引導(dǎo)學(xué)生提出問題和參與討論,以提高課程教學(xué)效果,縮小與國際一流大學(xué)差距的教學(xué)方法。課程建設(shè)教師團(tuán)隊(duì)的主要人員首先通過全程旁聽美國麻省理工學(xué)院數(shù)門相同或類似的課程,認(rèn)識與國際一流大學(xué)在教學(xué)手段和效果方面差距的同時,分析中美學(xué)生在提出問題、參與討論方面表現(xiàn)差異的原因。然后通過與學(xué)生座談方式收集整理中國學(xué)生不愿意在課堂上發(fā)言和參與研討的主要原因和相應(yīng)對策。最后介紹復(fù)旦大學(xué)軟件學(xué)院根據(jù)課程國際化教學(xué)課題的研究成果進(jìn)行教學(xué)方式調(diào)整和開展課堂教學(xué)實(shí)踐的情況。

1 麻省理工學(xué)院在課程教學(xué)中促進(jìn)學(xué)生參與研討的先進(jìn)經(jīng)驗(yàn)

在開展數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)課程國際化建設(shè)過程中,課程建設(shè)教師團(tuán)隊(duì)的主要人員利用在美國麻省理工學(xué)院(MIT)參與研究工作的機(jī)會,在一年內(nèi)全程旁聽了Design and Analysis ofAlgorithms、Web 3.0、Economics 0f Information、Software Construction 4門課程,并且參加了MIT的IFF(International Faculty Fellow)國際大學(xué)教師培訓(xùn)項(xiàng)目。IFF是由MIT發(fā)起組織的、致力于提高國外高等院校教師的科研能力、培養(yǎng)研究生水平和授課技能的項(xiàng)目。在上述過程中,教師團(tuán)隊(duì)人員對于MIT在促進(jìn)學(xué)生參與課程相關(guān)內(nèi)容研討方面的舉措印象深刻,并將值得借鑒的教學(xué)方式和方法進(jìn)行了歸納。

(1)學(xué)生參與課程相關(guān)內(nèi)容的討論需要相關(guān)知識的準(zhǔn)備,只有將相關(guān)知識積累到一定的程度,學(xué)生才會自然而然地愿意對相關(guān)問題進(jìn)行討論,而課程教材和課堂講義對知識積累是遠(yuǎn)遠(yuǎn)不夠的。MIT在課程開始時就由任課教師提供課程相關(guān)的文獻(xiàn)閱讀列表,閱讀完這些文獻(xiàn)所需要的時間大約為課程授課時間的3倍左右。對比復(fù)旦大學(xué)類似課程的文獻(xiàn)閱讀要求,發(fā)現(xiàn)中國學(xué)生在完成課程相關(guān)文獻(xiàn)閱讀量方面遠(yuǎn)遠(yuǎn)少于國際一流大學(xué)的學(xué)生。

(2)每一門課程除了提供網(wǎng)站用于下載課程相關(guān)的資料外,還有課程的BLOG便于學(xué)生和教師在線交流。利用這樣的系統(tǒng),教師往往規(guī)定在課程授課期間,學(xué)生至少針對數(shù)個課題(完成相關(guān)文獻(xiàn)的閱讀后)在BLOG上發(fā)表自己的觀點(diǎn)。由此促進(jìn)學(xué)生圍繞相關(guān)課題開展討論,這樣的方式也為那些不太愿意在眾人面前發(fā)言的學(xué)生提供闡述自己觀點(diǎn)的機(jī)會。

(3)MIT的教室一般都是階梯教室,這樣既可以讓每一位學(xué)生能夠清楚地看到任課教師各種面部和身體語言,也使授課教師能夠看到所有的學(xué)生,時刻了解學(xué)生對課堂內(nèi)容的各種反饋。學(xué)生座位之間留有通道,授課時教師會在整個教室里走動,確保能夠走近每一位學(xué)生的身旁,讓每一位學(xué)生感受關(guān)注和重視,這樣也讓學(xué)生感到親切隨和。實(shí)踐表明,這樣做更能讓學(xué)生暢所欲言。

(4)教學(xué)內(nèi)容融合任課教師的研究成果。任課教師對于自身的研究內(nèi)容一般都有較深的認(rèn)識和理解(甚至有些理論和技術(shù)是世界首創(chuàng)),講解過程中能夠廣征博引,相關(guān)難點(diǎn)都能夠娓娓道來,所以往往更為生動有趣,可以激發(fā)學(xué)生的提問熱情和學(xué)習(xí)興趣。教師只有在相關(guān)領(lǐng)域內(nèi)具備一定的科研水平才能更好地講授相應(yīng)的課程內(nèi)容。

(5)在講解有關(guān)技術(shù)內(nèi)容時,會邀請業(yè)界一些著名人物走進(jìn)課堂為學(xué)生講解其擅長的話題。以MIT互聯(lián)網(wǎng)方面的課程為例,任課教師會請IBM、Google、Microsoft等著名科技公司副總裁或技術(shù)總監(jiān)級別的人物為學(xué)生講一堂課(有時是遠(yuǎn)程視頻連線,教室配有大屏幕高清投影和高速網(wǎng)絡(luò)),之后一般設(shè)有學(xué)生提問環(huán)節(jié)。這樣的課程很受學(xué)生歡迎,學(xué)生提問也非常踴躍。

綜上所述,在課程開始前精心為學(xué)生挑選各章節(jié)相關(guān)的閱讀文獻(xiàn)(分為必讀和選讀部分)、建設(shè)課程BLOG促進(jìn)師生間交流、將研究內(nèi)容融入課程內(nèi)容等教學(xué)方式和方法都值得借鑒,并且通過一段時間的準(zhǔn)備加以實(shí)施。但是中國學(xué)生不愿意上課發(fā)言和參與研討也有其成長環(huán)境中文化背景的影響,例如,追求標(biāo)準(zhǔn)答案的應(yīng)試教育、謹(jǐn)守中庸之道處事態(tài)度等。而美國學(xué)生從小就讓他們不斷地進(jìn)行發(fā)言和表達(dá)的訓(xùn)練,從幼兒園開始,每天都會讓小孩子輪流講一下昨天發(fā)生的事情。參加各種活動和社團(tuán)也是如此,久而久之,養(yǎng)成了愿意并且善于表達(dá)自己觀點(diǎn)的習(xí)慣。所以對于我們的學(xué)生,不僅要營造讓其發(fā)言的環(huán)境和氣氛,也需要有意識地利用各種機(jī)會培養(yǎng)他們發(fā)言的習(xí)慣。

2 學(xué)生不愿意在課堂上發(fā)言和參與研討的主要原因及改進(jìn)建議

課題組對兩個班52名學(xué)生針對不愿意在課堂上發(fā)言和參與研討的問題進(jìn)行面談,每位學(xué)生面談時間為20~30分鐘。學(xué)生不愿意在課堂上發(fā)言和參與討論的主要原因可歸納為:害怕回答錯誤后造成對自己不利的影響(特別是教師隨后會給出答案的情況)、沒有養(yǎng)成積極發(fā)表自己觀點(diǎn)的習(xí)慣(與成長的文化和環(huán)境有關(guān))、擔(dān)心積極發(fā)言后被別人說愛表現(xiàn)、課堂上沒有能夠很好地營造出各抒己見氛圍。調(diào)查過程中同時也聽取了學(xué)生對讓他們能夠積極主動發(fā)言的一些建議和意見,歸納為以下幾點(diǎn)。

(1)討論的問題應(yīng)該是一些不存在對錯的開放性問題。

(2)可以先由教師開題和啟發(fā),然后找到學(xué)生感興趣的幾點(diǎn)展開討論。

(3)教師要營造隨和的課堂氣氛,需要有一個破冰的過程,讓學(xué)生放松不害怕。

(4)可以采取分組討論然后再由學(xué)生總結(jié)發(fā)言的方式。

(5)提出一些學(xué)生比較熟悉且有啟發(fā)的問題比較容易讓學(xué)生展開交流。

(6)發(fā)言和討論適當(dāng)增加一些平時成績(但也有學(xué)生擔(dān)心別人認(rèn)為他為了成績而發(fā)言,所以增加成績的比重也不宜過高)。

(7)不要僅對一個學(xué)生提問,要求其他學(xué)生可以隨時補(bǔ)充。

(8)對于有標(biāo)準(zhǔn)答案的問題,可以采取按座位順序點(diǎn)名提問回答的方式。

綜合以上學(xué)生的意見和建議,為了讓學(xué)生積極參與課堂發(fā)言和研討應(yīng)當(dāng)盡量營造輕松隨意的課堂氣氛,提出的問題也應(yīng)是開放性的(即沒有標(biāo)準(zhǔn)的答案),任課教師要善于引導(dǎo)和組織課堂討論,在提出問題前給予必要的講解和啟發(fā)。

3 教學(xué)方式調(diào)整和課堂教學(xué)實(shí)踐

通過借鑒國際一流大學(xué)和國內(nèi)名師的先進(jìn)教學(xué)經(jīng)驗(yàn),針對中國學(xué)生,特別就數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)課程的教學(xué)方式提出了一些方案和措施,并且進(jìn)行了相應(yīng)的課堂教學(xué)實(shí)踐。雖然這些方案和措施還有待進(jìn)一步完善和改進(jìn),但是課堂教學(xué)效果和學(xué)生參與研討和發(fā)言的意愿明顯提高。具體的方案和措施包括以下幾個方面。

3.1 嘗試誘導(dǎo)式、研討式和互動式教學(xué)方式

任課教師要改進(jìn)之前以灌輸式知識傳授的教學(xué)方式,嘗試采用誘導(dǎo)式、研討式和互動式教學(xué)方式。教學(xué)過程中一般首先給出實(shí)際的應(yīng)用問題,然后要求學(xué)生嘗試提出解決問題的算法,其他學(xué)生需對提出的方法進(jìn)行評價,提出不足之處和改進(jìn)方法,然后通過討論這個算法的缺點(diǎn),引出克服這個缺點(diǎn)的其他算法,最后對解決相同問題的不同算法進(jìn)行比較和歸納。適當(dāng)增加學(xué)生對相關(guān)重要文獻(xiàn)的閱讀量,并且根據(jù)閱讀和調(diào)研結(jié)果進(jìn)行課堂討論。以NP完全性問題教學(xué)為例,由于學(xué)生還沒有學(xué)習(xí)計(jì)算理論方面的課程,對于理解NP問題和NP完全性問題有一定的困難。首先任課教師介紹旅行商問題,接著讓學(xué)生嘗試尋找有效地求解算法,在教師引導(dǎo)下討論得出結(jié)論:在現(xiàn)有計(jì)算機(jī)體系結(jié)構(gòu)和運(yùn)算能力的基礎(chǔ)上,一定規(guī)模的旅行商問題目前不存在找到最優(yōu)解的計(jì)算復(fù)雜性為多項(xiàng)式的算法;然后指出存在一類這樣的問題,并且任取這類中的一個問題,再任取這類中的另一個問題,則一定存在多項(xiàng)式時間復(fù)雜性的算法,即可以把前者轉(zhuǎn)變?yōu)楹笳?。如果存在解決前者的多項(xiàng)式算法,必定存在能夠解決后者的多項(xiàng)式算法;最后指出目前仍然沒有找到多項(xiàng)式算法來解決這類問題,同時也不能證明這樣的多項(xiàng)式算法不存在。為了讓學(xué)生加深對上述問題的體會并且熟知典型的NP問題,將學(xué)生分成9組,每一組給出一對問題,其中一個屬于P(多項(xiàng)式)問題,一個屬于NP問題。要求學(xué)生調(diào)查這一對問題在應(yīng)用中出現(xiàn)的實(shí)例和變體,然后設(shè)計(jì)可行的解決方法。并且要求每組以課堂演講的方式向師生介紹他們的調(diào)查結(jié)果,聽取報(bào)告的教師和學(xué)生可以隨時進(jìn)行提問,要求做報(bào)告的學(xué)生回答。教學(xué)實(shí)踐表明,此舉加深了學(xué)生對NP完全性問題的認(rèn)識和理解。

3.2 從解決實(shí)際問題出發(fā),培養(yǎng)學(xué)生提問和思辨的能力

對于每個知識單元,首先提出若干個實(shí)際應(yīng)用中的問題,在提出可行的數(shù)據(jù)結(jié)構(gòu)與算法前,引導(dǎo)學(xué)生進(jìn)行討論,并且提出自己的解決方案。通過分析學(xué)生所提出的各種方法,比較之前已學(xué)方法,歸納出新的數(shù)據(jù)結(jié)構(gòu)與算法的特點(diǎn)和用途,最后在深入剖析和討論的基礎(chǔ)上進(jìn)行擴(kuò)展和綜合。

3.3 借鑒國際一流大學(xué)的教學(xué)內(nèi)容和方式,彌補(bǔ)與國際先進(jìn)授課水平之間的差距

數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)課程的教學(xué)內(nèi)容和方式借鑒了美國麻省理工學(xué)院的同名課程,并嘗試進(jìn)行誘導(dǎo)式、研討式和互動式教學(xué)。課程的教材、講義、作業(yè)、實(shí)踐和考試全部使用英文,外教采用英語授課。將世界頂尖級學(xué)者撰寫的經(jīng)典著作Introduction to Algorithms作為課程的教材,并且根據(jù)中國學(xué)生的生活經(jīng)歷和背景文化,對部分案例進(jìn)行相應(yīng)的增補(bǔ)和改寫。

3.4 以應(yīng)用為導(dǎo)向,培養(yǎng)綜合型人才

目前計(jì)算機(jī)學(xué)科方面的教學(xué),一般從計(jì)算機(jī)基礎(chǔ)知識和編程原理開始,經(jīng)過若干中級課程,直至大學(xué)三、四年級,學(xué)生才可能涉足整個軟件系統(tǒng)開發(fā)的全過程,這樣往往造成“只見樹木,不見森林”的情況。學(xué)生已經(jīng)學(xué)習(xí)了構(gòu)成軟件系統(tǒng)所需的知識和技術(shù),但是難以針對某一現(xiàn)實(shí)應(yīng)用,將所學(xué)較好地綜合起來。在大學(xué)低年級時,以完整系統(tǒng)開發(fā)和應(yīng)用為目標(biāo),讓學(xué)生在專業(yè)學(xué)習(xí)的早期就能夠了解和體會實(shí)際應(yīng)用的復(fù)雜性,掌握并實(shí)踐綜合集成各項(xiàng)技術(shù)的方法和手段。學(xué)生只有較早地了解整個軟件系統(tǒng)的開發(fā)與應(yīng)用,才能在今后創(chuàng)造性地綜合運(yùn)用所學(xué),成為既有較高專業(yè)水平,又對現(xiàn)實(shí)應(yīng)用有敏銳洞察能力的復(fù)合型人才。

3.5 以科研帶動和促進(jìn)教學(xué),將最新技術(shù)的發(fā)展成果融入教學(xué)內(nèi)容中

數(shù)據(jù)結(jié)構(gòu)與算法的基本內(nèi)容雖然相對穩(wěn)定,但對已有數(shù)據(jù)結(jié)構(gòu)與算法的擴(kuò)展和結(jié)合,特別是解決新的應(yīng)用方面的發(fā)展卻日新月異,知識更新和演化速度較快。數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)課程組的教師在現(xiàn)有教材的理論體系和教學(xué)內(nèi)容的基礎(chǔ)上,及時了解和把握技術(shù)發(fā)展的新動向,將最新的理論創(chuàng)新和技術(shù)進(jìn)步充實(shí)到教學(xué)內(nèi)容中,每年都增補(bǔ)緊跟學(xué)科發(fā)展的新內(nèi)容。此外,任課教師會指導(dǎo)學(xué)生參與自己的科研項(xiàng)目,或者推薦學(xué)生進(jìn)入其他教師的實(shí)驗(yàn)室從事相關(guān)的科研活動。

這些方案和措施的實(shí)施,使得數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)課程能夠在較短的時期內(nèi)形成科研和教學(xué)并線、講解和演示并重、理論和實(shí)踐并行的特色。課題組教師不斷用科學(xué)研究和國際學(xué)術(shù)交流的成果充實(shí)課程的內(nèi)容,使課程能夠充分體現(xiàn)目前算法理論和應(yīng)用方面最新的發(fā)展和動向。在教學(xué)中始終堅(jiān)持理論與實(shí)踐相結(jié)合的原則,從經(jīng)典案例引出科學(xué)問題,并強(qiáng)調(diào)對學(xué)生邏輯思維和動手能力的培養(yǎng)。

4 結(jié)語

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文第4篇

關(guān)鍵詞:大數(shù)據(jù);荷載與結(jié)構(gòu)設(shè)計(jì)方法課程;教學(xué)研究;教學(xué)現(xiàn)代化

中圖分類號:G642.0;TU 文獻(xiàn)標(biāo)志碼:A 文章編號:1005-2909(2016)05-0086-04

大數(shù)據(jù)是21世紀(jì)的重要技術(shù)革新成果,大數(shù)據(jù)開發(fā)與應(yīng)用帶來更多新技術(shù)的出現(xiàn),各行各業(yè)也急需適應(yīng)大數(shù)據(jù)發(fā)展的人才。2015年8月國務(wù)院頒發(fā)的促進(jìn)大數(shù)據(jù)發(fā)展綱要提出了應(yīng)加快適應(yīng)大數(shù)據(jù)發(fā)展需求的人才培養(yǎng),所以培養(yǎng)適應(yīng)大數(shù)據(jù)時代需求的創(chuàng)新人才是擺在高等學(xué)校面前的重要任務(wù)[1-4]。目前,國內(nèi)高校土木工程專業(yè)人才的培養(yǎng)還不能滿足大數(shù)據(jù)產(chǎn)業(yè)的需求,基于大數(shù)據(jù)背景下的教學(xué)改革也比較少[5-8],所以應(yīng)積極推進(jìn)基于大數(shù)據(jù)背景下的土木工程專業(yè)課程改革。結(jié)合土木工程專業(yè)背景和社會實(shí)際需求,融合大數(shù)據(jù)時代的技術(shù)和思想開展土木工程專業(yè)課程教學(xué)改革,除了要培養(yǎng)學(xué)生的基本技能,還應(yīng)注重培養(yǎng)學(xué)生對海量數(shù)據(jù)的采集、存儲、管理、挖掘與分析等綜合能力。黑龍江科技大學(xué)土木工程專業(yè)荷載與結(jié)構(gòu)設(shè)計(jì)方法課程組開展了面向大數(shù)據(jù)需求的教學(xué)改革。該項(xiàng)改革以荷載與結(jié)構(gòu)設(shè)計(jì)方法課程的基本知識為基礎(chǔ),以項(xiàng)目為載體,以培養(yǎng)學(xué)生獲取信息的能力、分析能力、工程實(shí)踐能力和綜合應(yīng)用的能力為主線,從教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段等方面進(jìn)行改革探索,力求實(shí)現(xiàn)“信息―知識―能力”一體化課程教學(xué)目標(biāo)。

一、大數(shù)據(jù)背景下荷載與結(jié)構(gòu)設(shè)計(jì)方法課程教學(xué)現(xiàn)狀及存在問題

(一)教學(xué)內(nèi)容離散,系統(tǒng)性差,知識跨越性大

由于該課程涵蓋了數(shù)學(xué)、力學(xué)及土木工程所有專業(yè)課程的荷載基本計(jì)算及原理知識,而且教材各個章節(jié)的內(nèi)容聯(lián)系不緊密,所以各章節(jié)的知識跨越性大、連貫性差,導(dǎo)致學(xué)生學(xué)習(xí)效果不盡人意。此外,與修訂后的新規(guī)范相配套的教材內(nèi)容滯后,導(dǎo)致教學(xué)內(nèi)容差異性大,教師只能將新規(guī)范內(nèi)容融入教學(xué)中,學(xué)生學(xué)習(xí)起來常常感到很茫然。加上該課程是專業(yè)基礎(chǔ)課,其教學(xué)內(nèi)容很多是后續(xù)專業(yè)課的內(nèi)容,學(xué)生由于對專業(yè)課內(nèi)容不了解,也不明白該課程的具體實(shí)際用途,因此對課程的重要性認(rèn)識不夠,以致學(xué)習(xí)效果差。

(二)主導(dǎo)思想滯后,教學(xué)方法、教學(xué)手段更新慢

教學(xué)中盡管教師也不斷改進(jìn)教學(xué)方法和手段[9],如創(chuàng)設(shè)啟發(fā)式、討論式、案例式、比較式、互動式等教學(xué)方法,但是并沒有從根本上改變以教師講授為主導(dǎo)的教學(xué)理念。在大數(shù)據(jù)時代,信息量大,而且傳播速度快,很多知識僅靠教師的講授是無法跟上信息時代步伐的。因此,教師必須要轉(zhuǎn)變教學(xué)思維,構(gòu)建教師與學(xué)生合作、協(xié)同參與的多元教學(xué)模式。

二、大數(shù)據(jù)時代背景下課程教學(xué)改革的總體思路

筆者所在學(xué)校荷載與結(jié)構(gòu)設(shè)計(jì)方法課程教學(xué)改革總體思路:遵照國家大數(shù)據(jù)時代加快創(chuàng)新人才培養(yǎng)的綱要要求,結(jié)合土木工程專業(yè)人才培養(yǎng)需求,以及荷載與結(jié)構(gòu)設(shè)計(jì)方法課程內(nèi)容特點(diǎn),借鑒國內(nèi)外先進(jìn)的教學(xué)理念、教學(xué)方式、方法和手段,以大數(shù)據(jù)建設(shè)為平臺,以荷載與結(jié)構(gòu)設(shè)計(jì)方法課程建設(shè)項(xiàng)目為載體,以培養(yǎng)學(xué)生獲取信息的能力、分析能力、工程實(shí)踐能力和綜合應(yīng)用能力為主線,實(shí)現(xiàn)“信息―知識―能力”一體化課程教學(xué)目標(biāo)(見圖1)。大數(shù)據(jù)時代背景下,最大程度挖掘?qū)W生潛力,使荷載與結(jié)構(gòu)設(shè)計(jì)方法課程教學(xué)模式越來越趨于理性,教學(xué)活動更多地開展實(shí)踐教學(xué)和情感教學(xué),充分彰顯以學(xué)生為本的教學(xué)理念,讓教師與學(xué)生的溝通越來越多,讓教學(xué)互動性越來越強(qiáng),進(jìn)一步完善該課程現(xiàn)代多元化的教學(xué)模式。

三、基于大數(shù)據(jù)需求的課程改革路徑

(一) 依托大數(shù)據(jù)平臺建設(shè),構(gòu)建分層次、分模塊的課程內(nèi)容體系

基于大綱要求,在改革原來課程內(nèi)容的基礎(chǔ)上進(jìn)一步梳理,分成荷載計(jì)算與結(jié)構(gòu)設(shè)計(jì)方法兩個層次,然后將荷載計(jì)算分成豎向荷載、水平荷載兩個大模塊,結(jié)構(gòu)設(shè)計(jì)方法分為結(jié)構(gòu)可靠度理論、規(guī)范設(shè)計(jì)方法,并注重內(nèi)容與新規(guī)范之間的差別,強(qiáng)調(diào)新舊規(guī)范的對比,同時更新規(guī)范知識,突出以信息化為主導(dǎo),將各模塊的內(nèi)容與專業(yè)課程內(nèi)容銜接起來,教學(xué)中引入各專業(yè)課程知識,將荷載課程內(nèi)容平臺與專業(yè)課程平臺進(jìn)行合理的銜接。

(二)借鑒國內(nèi)外先進(jìn)的教學(xué)經(jīng)驗(yàn),構(gòu)建“信息化、開放式、多元化”的教學(xué)模式

1.構(gòu)建“多元混合式”教學(xué)模式,實(shí)現(xiàn)翻轉(zhuǎn)課堂教學(xué)

借鑒“慕課”網(wǎng)絡(luò)教學(xué)平臺的教育模式,開發(fā)該課程的網(wǎng)絡(luò)教學(xué)平臺,構(gòu)建“多元混合式”教學(xué)模式,實(shí)現(xiàn)課程教學(xué)信息化。該課程教學(xué)中將網(wǎng)絡(luò)在線教學(xué)與課堂教學(xué)相結(jié)合,實(shí)現(xiàn)每節(jié)荷載課程的課前網(wǎng)絡(luò)在線導(dǎo)學(xué),特別對課程中涉及的相關(guān)專業(yè)課程內(nèi)容提前在導(dǎo)學(xué)內(nèi)容中進(jìn)行布置,學(xué)生可以利用多方資源有針對性地提前對相關(guān)內(nèi)容進(jìn)行學(xué)習(xí)。在課堂上教師可組織學(xué)生對學(xué)習(xí)過程中的收獲、問題和心得進(jìn)行交流、解答和分享,并針對學(xué)生的學(xué)習(xí)情況進(jìn)行有針對性的指導(dǎo)和講解,對教學(xué)內(nèi)容的主要知識點(diǎn)進(jìn)行總體梳理和總結(jié),整個教學(xué)過程實(shí)現(xiàn)信息與知識的融合,加深教師與學(xué)生的溝通??梢哉f這種“多元混合式”教學(xué)模式,實(shí)現(xiàn)了由傳統(tǒng)以教師為主的填鴨式課堂教學(xué)模式向以學(xué)生為主的翻轉(zhuǎn)課堂教學(xué)模式的轉(zhuǎn)變,有助于教學(xué)相長,有利于學(xué)生的全面發(fā)展。

2.采用微課教學(xué)的輔助模式,開放、拓展教學(xué)和學(xué)習(xí)空間

在改革傳統(tǒng)教學(xué)模式的基礎(chǔ)上,引入現(xiàn)代化的微課教學(xué)模式,發(fā)揮微課內(nèi)容精短、主題鮮明的優(yōu)勢,利用其形象性、精品化、便捷性等特征,將每一章的重點(diǎn)和難點(diǎn)內(nèi)容制作成微課。例如,水平荷載中的風(fēng)荷載、地震、土側(cè)壓力等的計(jì)算是學(xué)習(xí)的重點(diǎn),也是學(xué)習(xí)的難點(diǎn),將這部分內(nèi)容制作成微課后學(xué)生不僅在課堂上,而且在課堂后也可以對教師所講的內(nèi)容進(jìn)行學(xué)習(xí),非常方便。將微課教學(xué)與傳統(tǒng)教學(xué)相結(jié)合,拓展了教師教學(xué)和學(xué)生學(xué)習(xí)的空間,使教學(xué)任務(wù)和學(xué)習(xí)任務(wù)得到分解,解決了傳統(tǒng)教學(xué)中課堂時間緊、任務(wù)重的問題。目前微課教學(xué)應(yīng)用越來越廣,因此,在荷載課程教學(xué)中將微課教學(xué)模式與傳統(tǒng)教學(xué)模式相結(jié)合,是大數(shù)據(jù)時代荷載課程教學(xué)模式改革的有效途徑之一。

3.加強(qiáng)傳統(tǒng)教學(xué)模式與新的教學(xué)模式的融合

一切事物都具有兩面性,優(yōu)缺點(diǎn)并存,教學(xué)模式也不例外,新的教學(xué)模式也存在弊端,需要與傳統(tǒng)教學(xué)模式進(jìn)行融合,這樣才可以達(dá)到事半功倍的效果。新的教學(xué)模式可以體現(xiàn)學(xué)生的自主性,引導(dǎo)學(xué)生自覺參與學(xué)習(xí)。但是針對目前學(xué)生的基本功、能力等狀況,荷載與結(jié)構(gòu)設(shè)計(jì)方法課程學(xué)習(xí)還需要教師的督促和指導(dǎo)。另外,對荷載課程中實(shí)際規(guī)范的應(yīng)用及新舊規(guī)范的對比,也需要在教師的指導(dǎo)下對具體實(shí)際問題進(jìn)行分析,尤其需要教師與學(xué)生的及時溝通。因此,完全依靠學(xué)生通過網(wǎng)絡(luò)等新的教學(xué)模式仍然不能很好地解決學(xué)習(xí)中的實(shí)際問題,現(xiàn)代教學(xué)與傳統(tǒng)教學(xué)的融合才是理想的教學(xué)方式。

(三) 依托大數(shù)據(jù)的平臺建設(shè),創(chuàng)建荷載課程的教學(xué)空間與學(xué)習(xí)環(huán)境

以土木工程專業(yè)大數(shù)據(jù)平臺建設(shè)為契機(jī),創(chuàng)建荷載與結(jié)構(gòu)設(shè)計(jì)方法課程教學(xué)現(xiàn)代化環(huán)境。通過大數(shù)據(jù)信息平臺建設(shè),建設(shè)并完善荷載與結(jié)構(gòu)設(shè)計(jì)優(yōu)秀課程網(wǎng)絡(luò)平臺,為教師教學(xué)、學(xué)生學(xué)習(xí)和師生交流提供網(wǎng)絡(luò)空間,教師和學(xué)生都可以在網(wǎng)絡(luò)平臺上下載該課程的學(xué)習(xí)資源、作業(yè)要求,還可以實(shí)現(xiàn)學(xué)生和教師在線互動、答疑解惑。此外,平臺還提供與該課程內(nèi)容相關(guān)的眾多專業(yè)課程優(yōu)秀網(wǎng)絡(luò)資源的鏈接地址(例如:土力學(xué)、工程結(jié)構(gòu)抗震、高層建筑結(jié)構(gòu)等精品課程資源網(wǎng)址),大家可以在這里獲取與課程相關(guān)內(nèi)容的有益資源。在此平臺還可獲取該課程在后續(xù)課程及工程中的實(shí)際應(yīng)用實(shí)例、工程事故案例等,幫助學(xué)生明確該課程學(xué)習(xí)的重要性,拓展學(xué)生專業(yè)視野。另外,可以建立該課程的微信群和QQ群,師生可以隨時隨地進(jìn)行溝通交流。教學(xué)和學(xué)習(xí)空間的拓展,能充分發(fā)揮學(xué)生和教師的主觀能動性,開闊學(xué)生的視野,增強(qiáng)學(xué)生的學(xué)習(xí)積極性。

(四) 依托荷載優(yōu)秀課程平臺,建立“網(wǎng)上―課上―卷上”一體化、全方位的考核評價體系現(xiàn)代化的信息技術(shù),為荷載課程考核評價提供了眾多的評價手段。改革原有荷載與結(jié)構(gòu)設(shè)計(jì)方法課程評定辦法,在繼續(xù)采取將期末最終評定與平時考核相結(jié)合的考核辦法的基礎(chǔ)上,基于荷載優(yōu)秀課程網(wǎng)絡(luò)平臺建設(shè)增加網(wǎng)上評價的環(huán)節(jié),評定內(nèi)容更加全面,方式更加多樣。最終期末成績(100分)=網(wǎng)上(15分)+課上(15分)+創(chuàng)新(10分)+期末試卷(60分)。具體考核辦法網(wǎng)絡(luò)評價10分:由學(xué)生在荷載課程網(wǎng)絡(luò)學(xué)習(xí)平臺上完成各階段學(xué)習(xí)任務(wù)及作業(yè)情況,系統(tǒng)給出評價;學(xué)生互評5分:通過網(wǎng)絡(luò)平臺學(xué)生提出并解決問題,學(xué)生之間給出客觀評價;創(chuàng)新實(shí)踐能力10分:學(xué)生應(yīng)用荷載課程的知識對實(shí)際工程事故案例提出自己的觀點(diǎn)和處理辦法;課堂作業(yè)、出勤率和課堂表現(xiàn)各5分:課堂上學(xué)生對該課程的重視程度,對教學(xué)內(nèi)容的掌握和課程參與互動情況;試卷評價60分:通過期末考試考核學(xué)生對整體內(nèi)容的掌握情況。由此建立的“網(wǎng)上―課上―卷上”一體化、多樣性、全方位的考核評價體系(如圖2所示),打破了傳統(tǒng)的一張?jiān)嚲矶ǔ煽兊目己宿k法,是信息時代荷載課程教學(xué)改革的又一突破。

四、結(jié)語

大數(shù)據(jù)正在改變當(dāng)今的社會生活,對高等教育改革也提出了一個全新的課題。本文基于教育大數(shù)據(jù)平臺建設(shè),對荷載與結(jié)構(gòu)設(shè)計(jì)方法課程教學(xué)進(jìn)行前瞻性研究,從課程的教學(xué)內(nèi)容體系、教學(xué)模式、教學(xué)環(huán)境及考核評價體系進(jìn)行創(chuàng)新改革探索,立足該課程學(xué)科前沿,順應(yīng)大數(shù)據(jù)時代的需求,充分彰顯荷載課程教學(xué)以學(xué)生為本的教學(xué)理念,最大程度挖掘?qū)W生的潛力,實(shí)現(xiàn)教學(xué)方法手段的現(xiàn)代化、多元化,以及“信息―知識―能力”一體化的教學(xué)目標(biāo),使荷載與結(jié)構(gòu)設(shè)計(jì)方法課程教學(xué)符合時代的發(fā)展步伐。

參考文獻(xiàn):

[1]許曄.大數(shù)據(jù)時代中國面臨的挑戰(zhàn)與對策[J].中國科技論壇,2015(3):24-30.

[2]萬靜.大數(shù)據(jù):大學(xué)變革的機(jī)遇[J].國家教育行政學(xué)院學(xué)報(bào),2015(4):67-72.

[3]黃晉.關(guān)于大數(shù)據(jù)人才培養(yǎng)的思考與探索[J].教育教學(xué)論壇,2014(45):201-204.

[4]楚文波.大數(shù)據(jù)背景下的教育教學(xué)改革[J].教學(xué)與教育信息化, 2015(13):181-183.

[5]孫鋒.面向大數(shù)據(jù)的信息與計(jì)算科學(xué)專業(yè)實(shí)驗(yàn)課程體系研究[J].福建電腦, 2014(2):57-59.

[6]詹少強(qiáng).大數(shù)據(jù)背景下的數(shù)據(jù)挖掘課程教學(xué)新探[J]. 長春教育學(xué)院學(xué)報(bào),2014(22):30-33.

[7]曾祥蓉,陳進(jìn),謝孝,王薇.土木工程專業(yè)網(wǎng)絡(luò)課程推廣應(yīng)用研究與實(shí)踐――以混凝土結(jié)構(gòu)設(shè)計(jì)原理網(wǎng)絡(luò)課程為例[J].高等建筑教育, 2012,(21)5:142-145.

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文第5篇

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);程序;教學(xué)模式;探索

中圖分類號:G642文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2007)18-31759-02

The Research of Program Teaching Patterm on Data Strucure

MO Jia-qing

(Dept. of Computer Science, Zhaoqing University, Zhaoqing 526061, China)

Abstract:The current teaching status of Data Structure is analysed and the teaching pattern which emphasizes on ability of programming based on comprehension is presented. Some research has been carried on ,such as curriculum introduction, systematic structure of Data Structure, setting of experiment subject,providing aid-studying system, curriculum design and approval. The teaching effect shows these methodes can improve the the student abilities on computer program designing effectively.

Key words:data structure; program; teaching patterm; research

1 引言

《數(shù)據(jù)結(jié)構(gòu)》是信息技術(shù)專業(yè)的核心課程,它的內(nèi)容主要是介紹如何根據(jù)具體情況合理地選擇邏輯結(jié)構(gòu)(表、樹、圖等)去組織數(shù)據(jù),并設(shè)計(jì)一定的物理存儲結(jié)構(gòu)(順序、鏈?zhǔn)降龋┯行У卮鎯@些數(shù)據(jù),同時設(shè)計(jì)正確的算法并對算法作出分析和評價。它在培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生嚴(yán)謹(jǐn)?shù)倪壿嬎季S能力和培養(yǎng)良好的編程開發(fā)能力方面有著不可替代的作用,因此成為高校計(jì)算機(jī)專業(yè)研究生招生入學(xué)考試和軟件設(shè)計(jì)師認(rèn)證考試的首選課程。

《數(shù)據(jù)結(jié)構(gòu)》內(nèi)容廣泛,涉及到的知識點(diǎn)眾多,而且邏輯性和抽象性和動態(tài)性都很強(qiáng),理論和實(shí)踐緊密結(jié)合,因此對學(xué)生而言學(xué)習(xí)難度大,對教師而言授課難度高。教學(xué)過程出現(xiàn)眾多問題,具體表現(xiàn)如下:

(1)學(xué)生由于沒有編制過大程序和項(xiàng)目開發(fā)的經(jīng)驗(yàn),雖然知道《數(shù)據(jù)結(jié)構(gòu)》的重要性,但是對于學(xué)習(xí)目的不明確。

(2)學(xué)生未能將所學(xué)內(nèi)容融會貫通,沒能將各大知識點(diǎn)的區(qū)別與聯(lián)系弄清楚。

(3)學(xué)生由于C語言基礎(chǔ)不扎實(shí),對結(jié)構(gòu)、指針、參數(shù)傳遞等概念掌握不好,在做作業(yè)或?qū)嶒?yàn)時如果題目要求與教材內(nèi)容相差較大,無法入手,導(dǎo)致信心受到打擊、畏難情緒增加。此后,為應(yīng)付作業(yè),出現(xiàn)抄襲別人作業(yè),或直接上網(wǎng)搜索現(xiàn)成程序的情況。

(4)雖然教師自己對教材內(nèi)容很熟悉,能夠?qū)⒏髦R點(diǎn)講得很透徹,但是沒考慮到學(xué)生的實(shí)際學(xué)習(xí)狀況和接收能力,出現(xiàn)學(xué)生越學(xué)越難,理論與實(shí)踐越脫節(jié),越學(xué)越不想學(xué)的情況。

(5)目前高校擴(kuò)招,入學(xué)的學(xué)生素質(zhì)有所下降,邏輯思維能力和自學(xué)能力不強(qiáng),也是造成教學(xué)效果不理想的原因之一。

《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)目標(biāo)之一是提高學(xué)生的軟件編制能力,而上述問題的出現(xiàn)使得這個目標(biāo)大打折扣,因此迫切需要運(yùn)用新的有針對性的教學(xué)模式。

2 《數(shù)據(jù)結(jié)構(gòu)》程序教學(xué)模式

2.1 加強(qiáng)技能,克服程序語言造成的困難

《數(shù)據(jù)結(jié)構(gòu)》中大量運(yùn)用了指針、地址、結(jié)構(gòu)體、函數(shù)參數(shù)傳遞等知識,而這些知識又是C語言中的重點(diǎn)和難點(diǎn)。如果學(xué)生對這些內(nèi)容掌握不好的話,學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》將受到很大制約。因此在開學(xué)時,教師先幫助學(xué)生重點(diǎn)復(fù)習(xí)C語言中與數(shù)據(jù)結(jié)構(gòu)相關(guān)的知識點(diǎn),實(shí)現(xiàn)從C語言到數(shù)據(jù)結(jié)構(gòu)的平滑銜接。復(fù)習(xí)的題目形式可以是選擇、填空、編程題等。

目前高校普遍采用清華大學(xué)嚴(yán)蔚敏編著《數(shù)據(jù)結(jié)構(gòu)》(C語言版)作為教材,該教材側(cè)重于用類C語言描述各種數(shù)據(jù)結(jié)構(gòu)和算法,從頭到尾并沒有一個完整的C語言程序,并且該教材為使學(xué)生能方便地調(diào)用教材中的算法函數(shù),教材中的算法函數(shù)均采用了C++的“引用”作為參數(shù),這種“引用”參數(shù)貌似C語言中的地址,而教材并沒有著重強(qiáng)調(diào)。作者的初衷是好的,但此舉對于接觸過C++的初學(xué)者造成極大困惑。學(xué)習(xí)幾周后,學(xué)生發(fā)現(xiàn)程序調(diào)試?yán)щy,實(shí)驗(yàn)過程障礙重重,導(dǎo)致信心受到打擊、畏難情緒不斷增加。因而有必要讓學(xué)生熟悉C++中的“引用”。

以教材上的構(gòu)造空鏈表算法函數(shù)為例,函數(shù)參數(shù)使用“引用”調(diào)用和不使用“引用”的比較,幫助學(xué)生掌握“引用”并明白使用“引用”的好處。

typedef struct

{ElemType *elem;

int length;

int listsize;

} SqList;

使用“引用”傳遞參數(shù)定義函數(shù):

Status InitList_SqA(SqList &L) {//構(gòu)造空鏈表

L.elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if (!L.elem) return ERROR; // 存儲分配失敗

L.length = 0; // 空表長度為0

L.listsize = LIST_INIT_SIZE; // 初始存儲容量

return OK;

}

調(diào)用方式如下:

SqList LA;

InitList_SqA(LA);

使用指針傳遞參數(shù)定義函數(shù):

Status InitList_SqB(SqList *L) { //構(gòu)造空鏈表

L->elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if (!L->elem) return ERROR;// 存儲分配失敗

L->length = 0;// 空表長度為0

L->listsize = LIST_INIT_SIZE; // 初始存儲容量

return OK;

}

調(diào)用方式如下:

SqList LB;

InitList_SqB(&LB),

可以看到,運(yùn)用“引用”作為參數(shù),教材上的函數(shù)基本上可以原封不動地使用,而使用指針傳遞參數(shù),則需要對教材上的函數(shù)作大量修改。

另外教材為使算法描述更為簡潔,算法函數(shù)內(nèi)部一律省略了變量定義,這對學(xué)生的學(xué)習(xí)也造成了很大困難。因此還需要作一些針對性的訓(xùn)練,如通過填空題等形式補(bǔ)充完整函數(shù),并適當(dāng)評講。

2.2 理解課程體系結(jié)構(gòu),融會貫通

《數(shù)據(jù)結(jié)構(gòu)》課程的內(nèi)容由簡單到復(fù)雜,循序漸進(jìn)。從一般的線性表開始,到后面的非線性的樹和更復(fù)雜的圖,都是討論各種數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)和保存這種邏輯結(jié)構(gòu)所采用的物理結(jié)構(gòu),以及在這種存儲結(jié)構(gòu)上的相關(guān)運(yùn)算。理解這個體系結(jié)構(gòu),有助于學(xué)生從整體上更深入地掌握數(shù)據(jù)結(jié)構(gòu)。

本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文

2.3 完善框架程序,培養(yǎng)自信

自信心是激發(fā)學(xué)生創(chuàng)新能力的積極情感和重要前提。為培養(yǎng)學(xué)生克服困難的自信心,筆者針對各種數(shù)據(jù)結(jié)構(gòu)類型設(shè)計(jì)了不同的框架程序,讓學(xué)生在實(shí)驗(yàn)過程中逐步完善,添加新功能,最終形式一個大的系統(tǒng)。例如針對線性表,筆者設(shè)計(jì)了線性表功能框架文本界面,其中的菜單功能分別為鏈表創(chuàng)建、鏈表插入、鏈表刪除、鏈表合并,其中鏈表合并又為一個鏈表合并至另一鏈表尾部、合并過程相同元素保留和不保留三個功能,讓學(xué)生逐步將單獨(dú)的小功能添加至該界面中。又例如,在學(xué)叉樹這一章內(nèi)容時,筆者設(shè)計(jì)了二叉樹功能框架菜單,菜單包括二叉樹創(chuàng)建、先序遍歷、中序遍歷、后序遍歷、左右子樹交換、計(jì)算樹高度和葉子數(shù)量等,讓學(xué)生逐步完善。通過這種不斷添加小功能,最終形成一個大的系統(tǒng)的實(shí)驗(yàn)方法,使學(xué)生具有一定的成就感,自信心不斷增強(qiáng)。

2.4 提供學(xué)習(xí)輔助系統(tǒng),減輕實(shí)驗(yàn)負(fù)擔(dān)

《數(shù)據(jù)結(jié)構(gòu)》的不少實(shí)驗(yàn)是驗(yàn)證性實(shí)驗(yàn),為完成實(shí)驗(yàn),學(xué)生需要大量調(diào)用教材上的算法函數(shù)或?qū)@些函數(shù)作一定的修改。為了讓學(xué)生提高實(shí)驗(yàn)效率,將主要精力集中于程序調(diào)試而不是文字錄入,筆者設(shè)計(jì)了《數(shù)據(jù)結(jié)構(gòu)》學(xué)習(xí)輔助系統(tǒng)。該系統(tǒng)把各章的算法函數(shù)分門別類,供學(xué)生做實(shí)驗(yàn)時復(fù)制至其程序中,以減輕實(shí)驗(yàn)負(fù)擔(dān)。另外該系統(tǒng)還給出了一些調(diào)用這些算法函數(shù)的完整程序,供學(xué)生參考。

2.5 分組課程設(shè)計(jì),培養(yǎng)團(tuán)隊(duì)合作精神

課程設(shè)計(jì)是體現(xiàn)《數(shù)據(jù)結(jié)構(gòu)》理論和實(shí)踐緊密結(jié)合的重要環(huán)節(jié)。通過課程設(shè)計(jì),不但鍛練學(xué)生描述概念、構(gòu)建數(shù)據(jù)結(jié)構(gòu)、設(shè)計(jì)算法的能力,而且鍛練學(xué)生運(yùn)用自己所學(xué)知識通過高級程序語言解決實(shí)際問題的能力。

課程設(shè)計(jì)的題目一般選擇綜合設(shè)計(jì)類型,如風(fēng)景區(qū)景點(diǎn)路徑查詢、簡單114查號臺等。要求學(xué)生首先進(jìn)行需要分析,明確目標(biāo)如何,需要實(shí)現(xiàn)那些功能;其次是進(jìn)行概要設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),定義各功能模塊和其內(nèi)部流程、抽象數(shù)據(jù)結(jié)構(gòu),最后編碼調(diào)試并寫成小論文。

由于單個學(xué)生完成任務(wù)存在較大困難,課程設(shè)計(jì)還需要分組。分組時要考慮學(xué)生的實(shí)際情況,要考慮各個小組實(shí)力均衡,具體做法是把學(xué)習(xí)成績較好的學(xué)生和成績靠后的學(xué)生安排在同一組。課程設(shè)計(jì)完成后,還安排答辯。答辯的形式是隨機(jī)抽查小組內(nèi)的一個成員,由該成員代表小組進(jìn)行答辯,該成員的成績就是該小組的成績。要求學(xué)生回答系統(tǒng)設(shè)計(jì)思想、總體架構(gòu)、開發(fā)過程碰到什么困難、整個系統(tǒng)有何優(yōu)缺點(diǎn)等。通過這種形式,可防止出現(xiàn)課程設(shè)計(jì)只是由小組內(nèi)水平高的學(xué)生單獨(dú)完成,而其他成員基本不參與的情況。這種答辯形式可以極大地調(diào)動了學(xué)生的積極性。為了不讓自己拖小組的后腿,學(xué)生們相互學(xué)習(xí),熱烈討論,表現(xiàn)出極大的參與熱情。最后的結(jié)果是小組所有成員水平有了很大提高,培養(yǎng)了團(tuán)隊(duì)合作精神。

3 結(jié)束語

運(yùn)用高級語言進(jìn)行程序設(shè)計(jì)是一個創(chuàng)造性的過程?!稊?shù)據(jù)結(jié)構(gòu)》課程的教學(xué)目標(biāo)之一就是要提高計(jì)算機(jī)專業(yè)學(xué)生的程序設(shè)計(jì)語言能力。筆者在《數(shù)據(jù)結(jié)構(gòu)》教學(xué)過程中的上述措施,目的就是要解決學(xué)生在學(xué)習(xí)過程中由語言所造成的困難,最終提高其程序設(shè)計(jì)能力。教學(xué)實(shí)踐也證明,上述措施提高了學(xué)生C語言技能,降低由程序語言造成的難度;而且針對性的訓(xùn)練可讓學(xué)生很快地掌握調(diào)用教材上的算法函數(shù),理解了教材的知識體系結(jié)構(gòu)。程序功能整合使學(xué)生有成就感和增強(qiáng)自信,需要答辯的課程設(shè)計(jì)使鍛練了學(xué)生運(yùn)用所學(xué)理論解決實(shí)際問題的能力,也培養(yǎng)了團(tuán)隊(duì)合作精神。這種側(cè)重程序的教學(xué)模式取得良好的教學(xué)效果。

參考文獻(xiàn):

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

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

[3]黃揚(yáng)銘. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:科學(xué)出版社,2005.

相關(guān)期刊更多

數(shù)據(jù)

省級期刊 審核時間1個月內(nèi)

北京市統(tǒng)計(jì)局

大數(shù)據(jù)

統(tǒng)計(jì)源期刊 審核時間1個月內(nèi)

工業(yè)和信息化部

數(shù)據(jù)通信

部級期刊 審核時間1個月內(nèi)

信息產(chǎn)業(yè)部

安徽省| 涿州市| 军事| 洛川县| 筠连县| 财经| 长顺县| 和静县| 澄城县| 敦化市| 泰宁县| 仪陇县| 泸溪县| 永吉县| 怀集县| 准格尔旗| 建始县| 大方县| 栾川县| 都昌县| 靖宇县| 天镇县| 鹤岗市| 重庆市| 贵州省| 平度市| 翁牛特旗| 凤台县| 华容县| 进贤县| 朔州市| 吴堡县| 东明县| 房山区| 西峡县| 莱芜市| 凉山| 靖西县| 万全县| 中方县| 南投县|