• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      論“數(shù)據(jù)結構”與“C程序設計”課程間的關系

      2017-05-30 08:46:05史志才施一萍張輝
      高教學刊 2017年1期
      關鍵詞:數(shù)據(jù)結構計算機教學

      史志才 施一萍 張輝

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

      關鍵詞:數(shù)據(jù)結構;C程序設計;計算機教學

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

      二、“數(shù)據(jù)結構”與“C程序設計”

      (一)“數(shù)據(jù)結構”的教學內(nèi)容及教學目的

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

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

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

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

      (三)“數(shù)據(jù)結構”與“C程序設計”的特點及教學過程中存在的問題

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

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

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

      三、“數(shù)據(jù)結構”與“C程序設計”課程模塊間的對應關系

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

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

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

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

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

      四、結束語

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

      參考文獻

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

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

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

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

      猜你喜歡
      數(shù)據(jù)結構計算機教學
      數(shù)據(jù)結構線上線下混合教學模式探討
      數(shù)據(jù)結構課程教學網(wǎng)站的設計與實現(xiàn)
      電子測試(2018年15期)2018-09-26 06:01:42
      淺談影響中專計算機教學有效性的因素
      網(wǎng)絡環(huán)境下中職計算機教學的探析
      職業(yè)(2016年10期)2016-10-20 22:29:07
      中學計算機信息技術課程教學存在問題和對策
      基于QQ群的“翻轉課堂”教學模式實踐與應用
      開展研究性學習深化中職計算機教學改革探究
      成才之路(2016年26期)2016-10-08 12:04:07
      計算機教學中存在的問題與對策研究
      成才之路(2016年25期)2016-10-08 10:26:43
      “翻轉課堂”教學模式的探討——以《數(shù)據(jù)結構》課程教學為例
      高職高專數(shù)據(jù)結構教學改革探討
      中國市場(2016年45期)2016-05-17 05:15:48
      休宁县| 广平县| 德昌县| 马关县| 胶州市| 合肥市| 泌阳县| 巴彦淖尔市| 铜梁县| 黄冈市| 白沙| 右玉县| 甘肃省| 张家口市| 太康县| 平遥县| 自治县| 米泉市| 中山市| 溆浦县| 垣曲县| 花莲县| 临朐县| 晋中市| 永胜县| 八宿县| 浦东新区| 崇左市| 永和县| 类乌齐县| 大姚县| 抚松县| 全椒县| 白山市| 巴塘县| 唐河县| 宝坻区| 凤台县| 淳安县| 夏津县| 阿勒泰市|