国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

論“數(shù)據(jù)結(jié)構(gòu)”與“C程序設(shè)計(jì)”課程間的關(guān)系

2017-05-30 08:46:05史志才施一萍張輝
高教學(xué)刊 2017年1期
關(guān)鍵詞:C程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)計(jì)算機(jī)教學(xué)

史志才 施一萍 張輝

摘 要:作為計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)的核心課程之一,“數(shù)據(jù)結(jié)構(gòu)”的教學(xué)一直得到了廣大教師的高度關(guān)注和重視。文章分析了“數(shù)據(jù)結(jié)構(gòu)”與其先修課程“C程序設(shè)計(jì)”間的關(guān)系,指出“C程序設(shè)計(jì)”對(duì)“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)效果具有重要影響,從專(zhuān)業(yè)的課程體系結(jié)構(gòu)出發(fā),認(rèn)真梳理了兩門(mén)課程的知識(shí)體系,建議應(yīng)合理組織和優(yōu)化“C程序設(shè)計(jì)”課程的教學(xué)內(nèi)容,加強(qiáng)實(shí)驗(yàn)教學(xué)環(huán)節(jié),為“數(shù)據(jù)結(jié)構(gòu)”等后續(xù)課程的順利開(kāi)設(shè)奠定基礎(chǔ)。

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);C程序設(shè)計(jì);計(jì)算機(jī)教學(xué)

中圖分類(lèi)號(hào):G642 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2096-000X(2017)01-0060-02

Abstract: As one of the core courses of computer science and its related specialties, the teaching of "Data Structure" has always been attracting wide attention from teachers. The paper analyzes the relationship between this course and its prerequisite course "C Programming." It is pointed out that "C Programming" has an important influence on the teaching effect of "Data Structure." The knowledge architecture of these two courses is optimized according to the course architecture of the specialty. It is suggested to reasonably arrange the teaching content of "C Programming" and to enhance the experiment teaching, hoping to lay a good foundation for "Data Structure" and other subsequent courses.

Keywords: data structure; C Programming; computer teaching

一、概述

“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò)工程等相關(guān)專(zhuān)業(yè)的一門(mén)專(zhuān)業(yè)基礎(chǔ)課,也是這些專(zhuān)業(yè)課程體系中的核心課程以及四門(mén)考研課程之一。在計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的課程體系中,“數(shù)據(jù)結(jié)構(gòu)”課程具有承上啟下的重要作用,其教學(xué)內(nèi)容不但鞏固了已修的“C程序設(shè)計(jì)”、“離散數(shù)學(xué)”、“計(jì)算機(jī)導(dǎo)論”等課程所學(xué)知識(shí),還為“數(shù)據(jù)庫(kù)系統(tǒng)原理”、“操作系統(tǒng)”、“編譯原理”等后續(xù)課程的開(kāi)設(shè)以及相關(guān)實(shí)驗(yàn)教學(xué)環(huán)節(jié)的順利完成奠定基礎(chǔ)。教學(xué)實(shí)踐經(jīng)驗(yàn)表明,“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)效果與其先修課程的學(xué)習(xí)情況密切相關(guān),尤其是“C程序設(shè)計(jì)”課程;“C程序設(shè)計(jì)”課程學(xué)習(xí)效果的好壞對(duì)“數(shù)據(jù)結(jié)構(gòu)”等后續(xù)課程的教學(xué)會(huì)產(chǎn)生嚴(yán)重影響,因此對(duì)于“C程序設(shè)計(jì)”課程的教學(xué)應(yīng)給予足夠的重視和高度關(guān)注。

二、“數(shù)據(jù)結(jié)構(gòu)”與“C程序設(shè)計(jì)”

(一)“數(shù)據(jù)結(jié)構(gòu)”的教學(xué)內(nèi)容及教學(xué)目的

作為計(jì)算機(jī)專(zhuān)業(yè)的核心課,“數(shù)據(jù)結(jié)構(gòu)”課程主要介紹用計(jì)算機(jī)解決一系列問(wèn)題,特別是非數(shù)值計(jì)算類(lèi)問(wèn)題所用的各種數(shù)據(jù)組織方法、存儲(chǔ)結(jié)構(gòu),以及在各種結(jié)構(gòu)上執(zhí)行的插入、刪除、查找等操作。主要教學(xué)內(nèi)容包括:數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)與分析的基本知識(shí),線性表、堆棧、隊(duì)列、二叉樹(shù)、樹(shù)、圖等各種基本數(shù)據(jù)結(jié)構(gòu)的定義、存儲(chǔ)結(jié)構(gòu),排序、查找等各種常用的非數(shù)值算法以及應(yīng)用。

“數(shù)據(jù)結(jié)構(gòu)”的教學(xué)目的是通過(guò)課程的學(xué)習(xí),使學(xué)生熟練地掌握數(shù)據(jù)結(jié)構(gòu)的內(nèi)在邏輯關(guān)系及其在計(jì)算機(jī)中的表示方法(即存儲(chǔ)結(jié)構(gòu)),以及有關(guān)基本操作的算法實(shí)現(xiàn);熟悉它們?cè)谟?jì)算機(jī)科學(xué)中的基本應(yīng)用。通過(guò)這門(mén)課程的學(xué)習(xí),培養(yǎng)和訓(xùn)練學(xué)生密切結(jié)合實(shí)際應(yīng)用,在軟件開(kāi)發(fā)過(guò)程中能夠根據(jù)求解的問(wèn)題合理選擇數(shù)據(jù)結(jié)構(gòu)、應(yīng)用高級(jí)語(yǔ)言編寫(xiě)有效算法的能力,并為學(xué)習(xí)《操作系統(tǒng)》、《編譯原理》、《數(shù)據(jù)庫(kù)系統(tǒng)原理》等后續(xù)課程和開(kāi)發(fā)各種軟件奠定基礎(chǔ)[1]。

(二)“C程序設(shè)計(jì)”的教學(xué)內(nèi)容及教學(xué)目的

“C程序設(shè)計(jì)”主要講授C語(yǔ)言中的數(shù)據(jù)類(lèi)型、運(yùn)算符、語(yǔ)句結(jié)構(gòu)及其程序設(shè)計(jì)的基本方法,使學(xué)生掌握程序設(shè)計(jì)的基本概念、程序設(shè)計(jì)語(yǔ)言的成份和程序的組成,掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本思想和基本方法,最終目標(biāo)是培養(yǎng)學(xué)生的程序設(shè)計(jì)能力,進(jìn)而學(xué)會(huì)利用C語(yǔ)言解決一般應(yīng)用問(wèn)題,并為《數(shù)據(jù)結(jié)構(gòu)》、《操作系統(tǒng)》等后續(xù)課程的順利開(kāi)設(shè)奠定基礎(chǔ)。

(三)“數(shù)據(jù)結(jié)構(gòu)”與“C程序設(shè)計(jì)”的特點(diǎn)及教學(xué)過(guò)程中存在的問(wèn)題

與“數(shù)據(jù)結(jié)構(gòu)”課程一樣,“C程序設(shè)計(jì)”作為計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的一門(mén)專(zhuān)業(yè)基礎(chǔ)課,是計(jì)算機(jī)學(xué)科的核心課程,是學(xué)生學(xué)習(xí)程序設(shè)計(jì)的開(kāi)端,是培養(yǎng)學(xué)生分析問(wèn)題和解決問(wèn)題的能力以及程序設(shè)計(jì)能力的主要課程,學(xué)生計(jì)算思維的形成也與“C程序設(shè)計(jì)”課程有著密切關(guān)系。C語(yǔ)言有著其它高級(jí)程序設(shè)計(jì)語(yǔ)言不可比擬的優(yōu)點(diǎn),該語(yǔ)言直觀,結(jié)構(gòu)性和靈活性好,但其中的指針、結(jié)構(gòu)體和動(dòng)態(tài)鏈表等概念難以掌握;而這些內(nèi)容卻是“數(shù)據(jù)結(jié)構(gòu)”、“操作系統(tǒng)”等后續(xù)課程中要用到的主要知識(shí)。

作為“C程序設(shè)計(jì)”的后續(xù)課程,“數(shù)據(jù)結(jié)構(gòu)”采用C語(yǔ)言來(lái)描述數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)及其插入、刪除、查找、排序等操作和對(duì)應(yīng)的算法;通過(guò)該課程的學(xué)習(xí),進(jìn)一步提高學(xué)生的數(shù)據(jù)描述能力和程序設(shè)計(jì)能力?!皵?shù)據(jù)結(jié)構(gòu)”課程的教學(xué)內(nèi)容抽象,邏輯性強(qiáng),相應(yīng)的實(shí)驗(yàn)環(huán)節(jié)要求較高,編程工作量大,許多概念需要通過(guò)上機(jī)編寫(xiě)程序進(jìn)行深入理解和鞏固,這些特點(diǎn)決定了該門(mén)課程無(wú)論是教,還是學(xué),都具有較大的難度。在常規(guī)的教學(xué)過(guò)程中,“C程序設(shè)計(jì)”和“數(shù)據(jù)結(jié)構(gòu)”這兩門(mén)課程是相對(duì)獨(dú)立、分開(kāi)授課的,如果協(xié)調(diào)不好很容易導(dǎo)致兩門(mén)課的教學(xué)內(nèi)容脫節(jié),進(jìn)而影響后續(xù)課程的教學(xué)效果。在實(shí)際教學(xué)過(guò)程中,“C程序設(shè)計(jì)”課程往往只注重C語(yǔ)言的語(yǔ)法體系、基本程序結(jié)構(gòu)和控制語(yǔ)句。目前許多高校將“C程序設(shè)計(jì)”的授課學(xué)時(shí)壓縮到48課時(shí)(甚至32學(xué)時(shí)),其中還包括實(shí)驗(yàn)上機(jī)環(huán)節(jié),教學(xué)過(guò)程中往往沒(méi)有足夠的學(xué)時(shí)講授指針、結(jié)構(gòu)體和動(dòng)態(tài)鏈表等教學(xué)內(nèi)容。學(xué)生的學(xué)習(xí)精力大多集中在基本概念及簡(jiǎn)單程序的編寫(xiě)上面,對(duì)數(shù)組、函數(shù)、指針、結(jié)構(gòu)體和鏈表的學(xué)習(xí)深度不夠,這使得學(xué)生只能簡(jiǎn)單地應(yīng)用C語(yǔ)言而不能用于解決像動(dòng)態(tài)存儲(chǔ)分配這樣的復(fù)雜問(wèn)題。而“數(shù)據(jù)結(jié)構(gòu)”課程的學(xué)習(xí)必須以數(shù)組、指針、結(jié)構(gòu)體、動(dòng)態(tài)鏈表等知識(shí)為基礎(chǔ),要面對(duì)的是樹(shù)的存儲(chǔ)和遍歷、圖的存儲(chǔ)、最小生成樹(shù)、最短路徑、拓?fù)渑判?、堆、基?shù)排序等一些復(fù)雜算法,C語(yǔ)言學(xué)習(xí)環(huán)節(jié)的薄弱給“數(shù)據(jù)結(jié)構(gòu)”課程的開(kāi)設(shè)造成了很大困難[2]。

為此,應(yīng)該從專(zhuān)業(yè)的課程體系結(jié)構(gòu)出發(fā),將“數(shù)據(jù)結(jié)構(gòu)”和“C程序設(shè)計(jì)”這兩門(mén)課程有機(jī)地結(jié)合起來(lái),認(rèn)真梳理兩門(mén)課程間的關(guān)系,構(gòu)建C語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)的課程新體系,合理組織“C程序設(shè)計(jì)”課程的教學(xué)內(nèi)容,為“數(shù)據(jù)結(jié)構(gòu)”課程的順利開(kāi)設(shè)奠定基礎(chǔ)。

三、“數(shù)據(jù)結(jié)構(gòu)”與“C程序設(shè)計(jì)”課程模塊間的對(duì)應(yīng)關(guān)系

“數(shù)據(jù)結(jié)構(gòu)”課程通常包括線性表、堆棧、隊(duì)列、二叉樹(shù)、樹(shù)、圖、查找和排序等模塊,每個(gè)模塊涉及到“C程序設(shè)計(jì)”課程的不同內(nèi)容。每種數(shù)據(jù)結(jié)構(gòu)均包括順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)等兩種物理結(jié)構(gòu)。順序表通常采用數(shù)組類(lèi)型進(jìn)行存儲(chǔ),而鏈?zhǔn)酱鎯?chǔ)則采用動(dòng)態(tài)鏈表?!癈程序設(shè)計(jì)”課程包括基本語(yǔ)法、程序結(jié)構(gòu)、控制語(yǔ)句、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件等模塊。下面認(rèn)真梳理一下“數(shù)據(jù)結(jié)構(gòu)”與“C程序設(shè)計(jì)”兩門(mén)課程各知識(shí)模塊間的關(guān)系,從中指出為了保證“數(shù)據(jù)結(jié)構(gòu)”課程的順利開(kāi)設(shè),“C程序設(shè)計(jì)”課程所應(yīng)該講授的基本教學(xué)內(nèi)容[3,4]。

線性表是由相同類(lèi)型的數(shù)據(jù)元素(結(jié)點(diǎn))組成的有限序列。數(shù)據(jù)元素可以是一個(gè)字符、一個(gè)數(shù)或一個(gè)記錄,也可以是更復(fù)雜的信息。組成線性表的各個(gè)數(shù)據(jù)元素形成了一對(duì)一的關(guān)系,即線性關(guān)系。兩個(gè)典型的線性表是堆棧和隊(duì)列,它們的順序存儲(chǔ)使用了數(shù)組類(lèi)型,每個(gè)數(shù)組元素可能是一個(gè)結(jié)構(gòu)體類(lèi)型;而鏈?zhǔn)酱鎯?chǔ)采用了動(dòng)態(tài)鏈表,其中涉及指針、結(jié)構(gòu)體等類(lèi)型。隊(duì)列和堆棧的操作涉及循環(huán)、選擇等C語(yǔ)句。

樹(shù)是一種非線性的層次結(jié)構(gòu),用于描述一對(duì)多的關(guān)系;而二叉樹(shù)是一種特殊的樹(shù),其每個(gè)結(jié)點(diǎn)最多有兩個(gè)子結(jié)點(diǎn);樹(shù)和二叉樹(shù)間可以相互轉(zhuǎn)換。樹(shù)在計(jì)算機(jī)中常采用雙親表示法、孩子鏈表表示法、孩子兄弟表示法等進(jìn)行表示和存儲(chǔ),其中可以采用數(shù)組進(jìn)行順序存儲(chǔ),也可以采用鏈表進(jìn)行動(dòng)態(tài)存儲(chǔ),具體涉及到數(shù)組、指針、結(jié)構(gòu)體等數(shù)據(jù)類(lèi)型。二叉樹(shù)常采用鏈表進(jìn)行存儲(chǔ),但滿(mǎn)二叉樹(shù)和完全二叉樹(shù)因各個(gè)結(jié)點(diǎn)編號(hào)間存在特殊關(guān)系,也可以采用數(shù)組進(jìn)行順序存儲(chǔ)。樹(shù)和二叉樹(shù)的建立、刪除、遍歷等操作涉及循環(huán)、選擇等C語(yǔ)句。

和樹(shù)一樣,圖也是一種非線性的數(shù)據(jù)結(jié)構(gòu),但比樹(shù)形結(jié)構(gòu)更復(fù)雜。在圖狀結(jié)構(gòu)中,任意兩個(gè)結(jié)點(diǎn)之間都可能相關(guān),即結(jié)點(diǎn)之間的鄰接關(guān)系可以是任意的。圖在計(jì)算機(jī)中采用鄰接矩陣和鄰接表來(lái)存儲(chǔ),其中鄰接矩陣采用二維數(shù)組來(lái)表示各個(gè)結(jié)點(diǎn)間的鄰接關(guān)系;而鄰接表包括兩部分:結(jié)點(diǎn)表和邊表。結(jié)點(diǎn)表采用一維數(shù)組表示各個(gè)結(jié)點(diǎn)的信息,每個(gè)數(shù)組元素為一個(gè)結(jié)構(gòu)體類(lèi)型,其中包括指向邊表的指針;邊表為一個(gè)動(dòng)態(tài)鏈表,存儲(chǔ)與結(jié)點(diǎn)表中的結(jié)點(diǎn)有邊的各個(gè)結(jié)點(diǎn)。顯然,這里涉及數(shù)組、指針、結(jié)構(gòu)體、動(dòng)態(tài)鏈表等概念,其操作包括圖的遍歷、拓?fù)渑判?、尋找最小生成?shù)、最短路徑等,涉及大部分C語(yǔ)言知識(shí)。

排序和查找是在上述數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,對(duì)數(shù)據(jù)進(jìn)行排序和查找操作。當(dāng)處理的數(shù)據(jù)規(guī)模較大時(shí)(如大數(shù)據(jù)的處理),還需要涉及文件等操作。冒泡排序和選擇排序方法在“C程序設(shè)計(jì)”中常被作為編程實(shí)例進(jìn)行介紹,而快速排序、堆排序、基數(shù)排序等方法需要數(shù)組、指針等更多的C語(yǔ)言知識(shí)。

四、結(jié)束語(yǔ)

“數(shù)據(jù)結(jié)構(gòu)”作為計(jì)算機(jī)科學(xué)與技術(shù)及其相關(guān)專(zhuān)業(yè)的一門(mén)核心課程,在專(zhuān)業(yè)課程體系中起到承上啟下的重要作用,也是培養(yǎng)學(xué)生計(jì)算思維和程序設(shè)計(jì)能力的一門(mén)重要課程。為了確?!皵?shù)據(jù)結(jié)構(gòu)”課程的教學(xué)質(zhì)量和學(xué)習(xí)效果,應(yīng)加強(qiáng)“C程序設(shè)計(jì)”等先修課程的教學(xué);特別是“C程序設(shè)計(jì)”中的數(shù)組、指針、結(jié)構(gòu)體、動(dòng)態(tài)鏈表等內(nèi)容對(duì)于“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)和學(xué)習(xí)非常重要;若學(xué)生沒(méi)有很好地掌握這些學(xué)習(xí)內(nèi)容,就很難理解“數(shù)據(jù)結(jié)構(gòu)”中堆棧、隊(duì)列、樹(shù)、二叉樹(shù)和圖等在計(jì)算機(jī)中的存儲(chǔ)表示形式,很難完成其中的實(shí)驗(yàn)上機(jī)環(huán)節(jié),進(jìn)而影響“操作系統(tǒng)”、“編譯原理”等后續(xù)課程的學(xué)習(xí)。所以建議“C程序設(shè)計(jì)”課程在講授了基本語(yǔ)法和3種基本程序結(jié)構(gòu)后,應(yīng)把教學(xué)重點(diǎn)放在數(shù)組、指針、結(jié)構(gòu)體、動(dòng)態(tài)鏈表等教學(xué)內(nèi)容上,特別是動(dòng)態(tài)鏈表中結(jié)點(diǎn)數(shù)據(jù)類(lèi)型的定義以及鏈表的創(chuàng)建、刪除、查找等操作;只有學(xué)生掌握了上述知識(shí),才能夠?qū)W好“數(shù)據(jù)結(jié)構(gòu)”,并為“操作系統(tǒng)”、“編譯原理”等后續(xù)課程的學(xué)習(xí)奠定基礎(chǔ)。

參考文獻(xiàn)

[1]蔣秀英.《數(shù)據(jù)結(jié)構(gòu)》與《程序設(shè)計(jì)》的融合教學(xué)模式研究[J].山東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,3:130-131.

[2]陳紅琳.信管專(zhuān)業(yè)中“C語(yǔ)言”與“數(shù)據(jù)結(jié)構(gòu)”課程的整合研究[J].電腦學(xué)習(xí),2010,6:90-92.

[3]徐春雨.高職院校C語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)課程整合的探索與實(shí)踐[J].福建電腦,2010,10:201-202.

[4]吳清江,緱錦,葉雙,等.以數(shù)據(jù)結(jié)構(gòu)為核心的計(jì)算機(jī)學(xué)科專(zhuān)業(yè)課程群建設(shè)方法[J].湖州師范學(xué)院學(xué)報(bào),2009,1:128-131.

猜你喜歡
C程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)計(jì)算機(jī)教學(xué)
網(wǎng)絡(luò)環(huán)境下中職計(jì)算機(jī)教學(xué)的探析
職業(yè)(2016年10期)2016-10-20 22:29:07
中學(xué)計(jì)算機(jī)信息技術(shù)課程教學(xué)存在問(wèn)題和對(duì)策
開(kāi)展研究性學(xué)習(xí)深化中職計(jì)算機(jī)教學(xué)改革探究
成才之路(2016年26期)2016-10-08 12:04:07
計(jì)算機(jī)教學(xué)中存在的問(wèn)題與對(duì)策研究
成才之路(2016年25期)2016-10-08 10:26:43
“翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
C程序設(shè)計(jì)趣味教學(xué)初探
考試周刊(2016年56期)2016-08-01 19:11:24
C程序設(shè)計(jì)課堂趣味性教學(xué)初探
接軌全國(guó)等級(jí)考試,探討高校C語(yǔ)言課程教學(xué)改革
考試周刊(2016年29期)2016-05-28 08:37:52
高職高專(zhuān)數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
論中職生C程序設(shè)計(jì)學(xué)習(xí)興趣的培養(yǎng)
考試周刊(2016年15期)2016-03-25 03:40:04
临沧市| 灵石县| 晋江市| 阿拉善左旗| 宜春市| 陇川县| 滁州市| 正宁县| 永新县| 永宁县| 淮阳县| 镇坪县| 宽城| 黎平县| 满城县| 东辽县| 莱西市| 绥宁县| 靖西县| 洪雅县| 广宁县| 张家界市| 濮阳县| 鱼台县| 灯塔市| 明溪县| 永济市| 江安县| 嘉兴市| 青海省| 文安县| 华坪县| 黄山市| 天气| 恩平市| 和田县| 德化县| 红安县| 东源县| 湘潭市| 罗平县|