吳超云
摘 ?要:自1968年Niklaus教授開創(chuàng)數(shù)據(jù)結(jié)構(gòu)課程的體系以來,數(shù)據(jù)結(jié)構(gòu)課程一直是計算機類專業(yè)的核心課程。為提高學(xué)生的培養(yǎng)質(zhì)量,許多學(xué)者從教學(xué)模式、教學(xué)方法、實驗教學(xué)、校企合作、課程思政等多方面探討了數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)改革,并取得了豐富的研究成果[1]?;诖?,本文從教學(xué)團隊組建、實驗教學(xué)、教材編寫三方面探討了數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)改革實踐,以期提高學(xué)生的學(xué)習(xí)熱情和實踐能力。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);實驗教學(xué);校企合作;課程思政
中圖分類號:TP301 文獻標(biāo)識碼:A 文章編號:2095-9052(2021)07-0-02
2004年安慶師范大學(xué)(以下簡稱本校)信息與計算科學(xué)專業(yè)正式招生,之后數(shù)據(jù)結(jié)構(gòu)課程一直是信息與計算科學(xué)專業(yè)的基礎(chǔ)課程和核心課程。近幾年的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中,在教學(xué)團隊組建、課程實驗教學(xué)改革、教材編寫等方面進行了多維度的教學(xué)探索與實踐,積累了豐富的經(jīng)驗。
一、教學(xué)團隊
本校數(shù)據(jù)結(jié)構(gòu)課程是安徽省精品資源共享課程和校級精品課程,擁有部分課程視頻資源,并且面向全社會開放。2018年獲批校級數(shù)據(jù)結(jié)構(gòu)課程教學(xué)團隊,團隊實力強大,成員6人,且均有博士學(xué)位,年齡結(jié)構(gòu)和職稱結(jié)構(gòu)也合理,教授2人,副教授3人。教學(xué)團隊成員已榮獲省級教學(xué)成果二等獎和三等獎各一項。2015年獲得省級振興計劃重大課題專項,2019年獲批教育部產(chǎn)學(xué)合作協(xié)同育人項目,另外獲批多項數(shù)據(jù)結(jié)構(gòu)課程省級教研項目和校級教研項目,以及數(shù)據(jù)結(jié)構(gòu)課程智慧課堂項目和數(shù)據(jù)結(jié)構(gòu)課程思政示范課程項目等,數(shù)據(jù)結(jié)構(gòu)課程教學(xué)團隊發(fā)揮著重要作用。另外,在數(shù)據(jù)結(jié)構(gòu)教學(xué)過程中團隊教師共同備課,共同磨課,分析教學(xué)重點和難點,極大地提高了教師的教學(xué)質(zhì)量,學(xué)生對各位教師的評價有較大提升。
二、課程實驗教學(xué)改革
數(shù)據(jù)結(jié)構(gòu)課程研究的主要內(nèi)容是數(shù)據(jù)的組織形式和各種運算與操作的實現(xiàn)。數(shù)據(jù)組織形式有集合類型、線性類型、樹類型和圖類型,每種類型包含數(shù)據(jù)元素、數(shù)據(jù)關(guān)系和基本操作,這些數(shù)據(jù)類型與面向?qū)ο蟪绦蛟O(shè)計中類的概念相同。為讓學(xué)生加深對類概念的理解,以及加強對面向?qū)ο笤O(shè)計的掌握,課程實驗教學(xué)中采用C語言和面向?qū)ο蟪绦蛟O(shè)計語言兩種語言來實現(xiàn)各種數(shù)據(jù)類型。在此數(shù)據(jù)定義為類中的變量,基本操作定義為類中的方法。例如:順序表定義為一個類SeqList,每個數(shù)據(jù)元素定義為一個數(shù)據(jù)類型SeqDataType,在順序表類中有兩個受保護的變量,一是數(shù)組SeqData,用于存儲所有的數(shù)據(jù)元素,二是整數(shù)變量Number,表示順序表中數(shù)據(jù)元素的個數(shù)。順序表的初始化和賦值操作可用構(gòu)造方法實現(xiàn),順序表的判空操作、判滿操作、插入操作、查找操作和刪除操作等用公有方法實現(xiàn)。具體定義如下:
class SeqList{
protected:
SeqDataType * Data;
int Number;
public:
SeqList( SeqDataType, int ); //構(gòu)造方法
~SeqList( ); //析構(gòu)方法
boolean IsEmpty( ?); //判空操作
boolean IsFull( ?); //判滿操作
boolean Insert( SeqDataType, int ); //插入操作,將元素插入某個位置
之后
boolean Search( SeqDataType ); //查找元素在表中的位置
boolean Delete( int ); //刪除操作,刪除順序表中某個元素
void ?Print( ?); //輸出操作
…………
}
再如采用鄰接矩陣表示的圖類型,可定義類GraphM,每個頂點定義為一個數(shù)據(jù)類型VerType,在圖類中有兩個私有變量,第一個變量是一維數(shù)組,用于存儲圖中的頂點,第二個變量是二維數(shù)組Edge,用于存儲鄰接矩陣。圖的初始化和賦值操作可用構(gòu)造方法實現(xiàn),頂點在圖中的位置、頂點的第一個鄰接點、插入頂點或邊、刪除頂點或邊、取邊上的權(quán)值等用公有方法實現(xiàn)。具體定義如下:
class GraphM{
private:
VerType * vertex;
Edge ?* * ?E;
public:
GraphM( VerType, ?Edge ); //構(gòu)造方法
~GraphM( ); //析構(gòu)方法
int VertexPos( VerType ); //頂點在圖中的位置
int FirstNeighbor( int ); //頂點的第一個鄰接點
int InsertVertex( VerType); //插入頂點操作
int InsertEdge( int, int, Edge ); //插入邊操作
int DeleteVertex( VerType ); //刪除頂點與它相關(guān)聯(lián)的邊操作
int DeleteEdge( int, int ); //刪除邊操作
VerType getVertex( int ); //獲取頂點的值
E ?getWeight( int, int); //獲取邊的權(quán)值
void ?Print( ?); //輸出操作
…………
}
三、教材編寫
信息與計算科學(xué)專業(yè)招生后的幾年,主要采用清華大學(xué)嚴蔚敏教授編寫的《數(shù)據(jù)結(jié)構(gòu)》教材,這本教材中的算法采用偽代碼實現(xiàn),不易理解,對學(xué)生的要求相對較高。當(dāng)前的大眾化教育,學(xué)生水平和能力有一定程度的下降[2],如果教材難度相對較大,就不適合本校信息與計算科學(xué)專業(yè)和計算機類專業(yè)的學(xué)生學(xué)習(xí)。為提供適合本校學(xué)生學(xué)習(xí)的優(yōu)質(zhì)教材,筆者參與了本校教師主編的《數(shù)據(jù)結(jié)構(gòu)與算法C語言版》以及《數(shù)據(jù)結(jié)構(gòu)與算法C語言版習(xí)題精編與實驗指導(dǎo)》兩本教材的編寫,并于2015年1月在中國科學(xué)技術(shù)大學(xué)出版社出版[2]。教材共有九章,囊括了數(shù)據(jù)結(jié)構(gòu)中的所有重點內(nèi)容,如緒論、線性表、棧、隊列、樹、圖、查找和排序等。在教材中每章都引入經(jīng)典案例,以提高學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程的興趣。例如,線性表在通信錄系統(tǒng)設(shè)計和實現(xiàn)上的應(yīng)用,棧在二進制轉(zhuǎn)換、漢諾塔問題、括號匹配算法和表達式求值問題上的應(yīng)用,串在密碼學(xué)和括號匹配問題上的應(yīng)用,樹在文件目錄和族譜方面的應(yīng)用,哈夫曼樹在判斷學(xué)生成績和編碼中的應(yīng)用,圖在通信網(wǎng)絡(luò)、交通網(wǎng)絡(luò)和工程進度管理等方面的應(yīng)用,查找和排序在百度搜索、搜狗搜索等搜索引擎方面的應(yīng)用。相對嚴蔚敏教授的數(shù)據(jù)結(jié)構(gòu)教材,本校教材中算法采用C語言實現(xiàn),算法注釋也較多,每章設(shè)有不少例題和習(xí)題,使得教材更容易讀懂。另外刪除了難度較高的內(nèi)容,略微降低教材內(nèi)容的難度,例如,外部排序、文件組織、伸展樹、紅黑樹等內(nèi)容,適合當(dāng)前本校學(xué)生的學(xué)習(xí)水平。2017年數(shù)據(jù)結(jié)構(gòu)課程申請了省級規(guī)劃教材質(zhì)量工程項目,與阜陽師范大學(xué)的教師一起對2015版《數(shù)據(jù)結(jié)構(gòu)與算法C語言版》教材進行修訂和改編,《數(shù)據(jù)結(jié)構(gòu)與算法(C語言版)》第2版屬于普通高等學(xué)?!笆濉笔〖壱?guī)劃教材,于2020年2月在中國科學(xué)技術(shù)大學(xué)出版社出版。
四、結(jié)語
數(shù)據(jù)結(jié)構(gòu)課程是信息與計算科學(xué)專業(yè)及相關(guān)專業(yè)的重要課程,主要通過組建教學(xué)團隊、實驗教學(xué)、教材編寫的改革與實踐,增強了師生間的感情和互動,提高了教師的教學(xué)水平,增加了學(xué)生的學(xué)習(xí)興趣和熱情,提升了學(xué)生的實踐能力,達到了提高人才培養(yǎng)質(zhì)量的目的。
參考文獻:
[1]姚麗莎,余云.項目驅(qū)動教學(xué)在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中的應(yīng)用研究[J].赤峰學(xué)院學(xué)報:自然科學(xué)版,2017,33(3):33-35.
[2]任平紅,陳矗,劉清秀.面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)的教學(xué)方法研究[J].電腦知識與技術(shù),2015,11(33):95-96.
(責(zé)任編輯:張詠梅)