999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數(shù)據(jù)結(jié)構(gòu)的對象化教學方式探討與實踐

2011-10-23 09:09:14
中國現(xiàn)代教育裝備 2011年9期
關(guān)鍵詞:課程設計教學

徐 翀 徐 建

杭州電子科技大學 浙江杭州 310018

數(shù)據(jù)結(jié)構(gòu)的對象化教學方式探討與實踐

徐 翀 徐 建

杭州電子科技大學 浙江杭州 310018

數(shù)據(jù)結(jié)構(gòu)是高等院校計算機專業(yè)的一門重要的專業(yè)課。就目前普遍采用的面向過程的教學方式的弊端,提出了進行對象化的教學方式。結(jié)合我院實踐,提出了一系列的教學步驟,并對此作了分析和探討。

數(shù)據(jù)結(jié)構(gòu);面向?qū)ο螅荒0孱?/p>

Abstract: Data structure is an important course for computer science major in university. In this paper, the abuse of a commonly used processoriented teaching method has been analyzed; the author proposes the object-oriented teaching methods. Based on the experience of our college,it puts forward a series of teaching procedures then have been analyzed and discussed.

Key words: data structure; object oriented; template class

數(shù)據(jù)結(jié)構(gòu)是計算機軟件技術(shù)的基礎(chǔ),以數(shù)據(jù)為中心講述問題如何在計算機程序中得以實現(xiàn),這門課程的理解和掌握,對學生進行數(shù)據(jù)分析、組織及處理能力以及編程能力有著非常深遠的影響。課程教學目標不僅要培養(yǎng)學生縝密的邏輯思維和數(shù)據(jù)抽象能力,更要培養(yǎng)學生在軟件設計領(lǐng)域科學的思維方式,將算法理論和編程實踐完美結(jié)合,能夠在工程實際中靈活加以應用。因此不斷改進數(shù)據(jù)結(jié)構(gòu)的教學方法,提高數(shù)據(jù)結(jié)構(gòu)課程的教學質(zhì)量是培養(yǎng)高素質(zhì)軟件人才的迫切要求。

眾所周知,面向?qū)ο蟪绦蛟O計思想是目前的主流,它首先著眼于應用問題所涉及的對象、對象的屬性、操作等,據(jù)此建立類的繼承層次結(jié)構(gòu),實現(xiàn)所應完成的功能。在存儲結(jié)構(gòu)的訪問上,只有通過類的成員函數(shù)才能完成,提高了數(shù)據(jù)的安全性。并且這種程序可靠性,可復用性均比面向過程的程序更為優(yōu)越。在數(shù)據(jù)結(jié)構(gòu)課程中,可體現(xiàn)為主要工作是處理數(shù)據(jù),對于基本的數(shù)據(jù)結(jié)構(gòu)(線性表、棧、隊列、樹、圖),可以將其數(shù)據(jù)元素的類型定義和基本操作封裝在類中,對這些類作概括抽象,建立實例,能幫助學生加深對數(shù)據(jù)結(jié)構(gòu)整體認識,并鍛煉學生的編程能力,培養(yǎng)好的編程習慣,從根本上解決學生不會分析問題,走出不會編程實現(xiàn)的困境。

本文中使用的面向?qū)ο笳Z言為C++,以《二叉樹和圖》這一章節(jié)中的內(nèi)容為例,探討了使用面向?qū)ο蟮慕虒W方式,在我校經(jīng)實踐取得了不錯的效果。

1 目前主流的數(shù)據(jù)結(jié)構(gòu)教學方法存在的弊端

目前國內(nèi)高校計算機專業(yè)的數(shù)據(jù)結(jié)構(gòu)課程教學大多采用面向過程的思想,當描述一種數(shù)據(jù)結(jié)構(gòu)時,通常使用抽象數(shù)據(jù)類型(ADT)。而解決一個具體問題時,首先從系統(tǒng)要實現(xiàn)的功能著手,自頂向下,逐步分解來實現(xiàn)相應的程序模塊。采用這種思想,該課程側(cè)重點在于具體算法設計實現(xiàn)上,學生往往會注重算法而忽略數(shù)據(jù)結(jié)構(gòu)的定義,考慮問題的著眼點放在局部而非整體。另一方面每一個算法是由一個具體問題研究而出,導致程序的可復用性很差,不是當前的程序設計方法主流。

經(jīng)查閱資料發(fā)現(xiàn),目前國內(nèi)高校采用面向?qū)ο蟮乃枷脒M行數(shù)據(jù)結(jié)構(gòu)教學還不多見,所使用的語言描述工具常是偽代碼指令,學生往往很困惑,無法調(diào)動學習積極性。

通過上面的分析,可以看出我們正面臨著一個問題:如何修正數(shù)據(jù)結(jié)構(gòu)課程的教學指導思想來適應快速發(fā)展的軟件開發(fā)技術(shù),引入面向?qū)ο蟮拿枋龇椒▉碚归_教學已迫在眉睫。

2 進行面向?qū)ο髷?shù)據(jù)結(jié)構(gòu)教學的步驟

2.1 做好面向?qū)ο蟪绦蛟O計的教學前期工作

面向?qū)ο蟪绦蛟O計,有2個最為重要的思想即封裝和繼承。作為數(shù)據(jù)結(jié)構(gòu)的先修課程,在教學過程要重點把握好這兩點。

2.1.1 認識封裝,學會用對象來構(gòu)造程序

在培養(yǎng)學生編程思維時,要能夠首先考慮用什么對象來解決問題,學會用對象來構(gòu)造程序。

2.1.2 使用繼承,實現(xiàn)代碼重用

使用繼承的方法很好地實現(xiàn)了軟件的可重用性,讓學生從實例中領(lǐng)悟一般與特殊的關(guān)系,在進行開發(fā)程序時,就可以從類庫中選擇類,進行繼承功能。

2.2 用模板類的方式實現(xiàn)每種基本數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)課程的主要教學內(nèi)容是數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和數(shù)據(jù)的操作。4大基本數(shù)據(jù)結(jié)構(gòu)分別是集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖形結(jié)構(gòu)。在數(shù)據(jù)結(jié)構(gòu)中,更側(cè)重于算法的實現(xiàn),因此對各種數(shù)據(jù)類型通過使用模板,可以只設計一個類來處理多種類型的數(shù)據(jù),而不必為每一種類型分別創(chuàng)建類,指定一組基于相同代碼但是處理不同類型或類的函數(shù)就可以完成。下面以二叉樹為例構(gòu)建模板類:

在這個模板類中,首先定義了二叉樹結(jié)點BTNode,是一個結(jié)構(gòu)體,包含數(shù)據(jù)域、左孩子指針和右孩子指針。再定義了一個二叉鏈表類BinaryTree,公有函數(shù)中包含了該類的構(gòu)造函數(shù)和析構(gòu)函數(shù),除此還有二叉樹先序中序和后序遍歷等。另預留了2個create函數(shù)作為接口,作為學生在學完后的課程設計作業(yè)。若要添加操作,只需在類中增加相應函數(shù)即可實現(xiàn)。私有函數(shù)是封裝的,通過調(diào)用類中的公有函數(shù)來訪問它。

2.3 用案例加深面向?qū)ο蟮睦斫?/p>

在教學過程中,講解各種數(shù)據(jù)結(jié)構(gòu)及其算法往往使學生覺得枯燥無味,很多學生學完了數(shù)據(jù)結(jié)構(gòu)后經(jīng)常會發(fā)問:學習這種數(shù)據(jù)結(jié)構(gòu)有何用途?或者在現(xiàn)實生活中哪里可以應用到?引入案例更能吸引學生,提高他們的學習興趣,因此案例是重要的教學資源。教師在講授每一種數(shù)據(jù)結(jié)構(gòu)時,首先設計與現(xiàn)實生活緊密相連的實際問題,讓學生試著先用面向過程的方式去解決,再由教師用面向?qū)ο蟮姆绞饺ソ鉀Q,從程序編碼的數(shù)量,到重用代碼的便利等多方面進行比較,加深對面向?qū)ο蟮睦斫狻H缭凇秷D》這一章中,設計一個實例為教學計劃編制問題,若用面向過程的方式來完成,必須要構(gòu)造圖,建立鄰接表作為存儲結(jié)構(gòu),利用基本數(shù)據(jù)結(jié)構(gòu)棧的出棧入棧等操作,最后用拓撲的方式完成。程序所用函數(shù)調(diào)用如圖1所示:

圖1 函數(shù)層次關(guān)系圖

而用面向?qū)ο蟮姆绞?因為已經(jīng)將圖的存儲結(jié)構(gòu)和基本操作封裝在一個頭文件中,使用這種數(shù)據(jù)結(jié)構(gòu)時,只需要將相應的頭文件包含在程序中,隨用隨調(diào)。這樣可以幫助學生將所學知識形成一個完整框架,讓學生懂得設計程序不僅要懂得算法,還要讓程序設計得模塊化,結(jié)構(gòu)化。這正是面向?qū)ο笏枷氲木琛?/p>

2.4 改革課程設計讓學生從看懂到會做

課程設計是培養(yǎng)學生動手實踐能力的具體體現(xiàn)。配套相應的課程設計讓學生自行完成,能加深學生對數(shù)據(jù)結(jié)構(gòu)的理解,使用面向?qū)ο蟮乃枷胱寣W生真正學會編程,學會分析問題,解決問題。我院主要從如下2點進行了課程設計的教學改革:

2.4.1 梯度命題,循序漸進

課程設計以往是教師根據(jù)實驗指導書布置課題后由學生完成,部分學生感到難度很大,無從下手。現(xiàn)階段我們將課程設計改為驗證型、驗證設計型、設計應用型多種層次,進行梯度命題,分層教學,使得不同層次的學生各有收獲。針對各種基本數(shù)據(jù)結(jié)構(gòu),教師首先用模板類實現(xiàn),學生在課程設計時先用實例驗證程序,在此基礎(chǔ)上,設計出預留的一些函數(shù)接口,實現(xiàn)該類的部分功能。最后再針對某一具體問題,由學生開發(fā)出完整的程序。這是一個由易入難的循序漸進的過程,學生通過驗證型實驗更加牢固掌握基本數(shù)據(jù)結(jié)構(gòu),再由驗證設計型和設計應用型實驗學會如何應用數(shù)據(jù)結(jié)構(gòu),如何在計算機中實現(xiàn)存儲,實現(xiàn)各種需求的功能。

如二叉樹部分,教師設定的驗證型實驗為:給定一棵二叉樹,驗證其先序中序和后序遍歷結(jié)果。在掌握了二叉樹遍歷的基礎(chǔ)上,設計出模板類中預留的兩個接口函數(shù)create1和create2。最后,安排設計型實驗為創(chuàng)建表達式樹;分別用3種遍歷方式遍歷該樹,比較它與實際的波蘭式、中綴式和逆波蘭式之間的區(qū)別;完成給定表達式樹的表達式求值運算。這樣有梯度地安排課程設計,一方面強化了基本概念,另一方面引導學生完成更復雜的設計。對基礎(chǔ)薄弱的同學來說,驗證型實驗難度不大,基本都能完成,大大增強了自信;對優(yōu)秀學生來說,挑戰(zhàn)設計型實驗更能提高自身的能力。

2.4.2 精編課題,聯(lián)系實際

教師在每一章精編幾道綜合實用課題,從功能定義、系統(tǒng)分析、數(shù)據(jù)抽象、類的定義、代碼實現(xiàn)等方面進行指導,彌補學生在學習理論知識時不能聯(lián)系實際的情況。我校課程設計的題目有:學生成績管理系統(tǒng)(線性表)、地圖四染色問題(棧)、舞伴問題(隊列)、線索二叉樹問題、報文編碼問題(哈夫曼樹)、校園導航問題(圖的最短路徑)、教學計劃編制(拓撲排序)、文本文件單詞的檢索(查找)、排序綜合問題等,并要求學生利用類模板完成上述程序。課程設計的成績由幾個方面綜合決定,包括課題的難易度、完成情況、代碼編寫質(zhì)量等,最后由學生提交設計報告進行總結(jié)和討論。設計報告要學生再“多想一點”,即其他可能存在的求解方法,該設計的優(yōu)缺點,如何提高時間空間性能等問題。通過總結(jié),學生對問題有了更加深入全面的理解。

3 結(jié)束語

數(shù)據(jù)結(jié)構(gòu)作為計算機專業(yè)的重要基礎(chǔ)課程之一,對學生軟件開發(fā)的過程和習慣的培養(yǎng)是至關(guān)重要的。在教學過程中應該把面向?qū)ο蟮乃枷肴谌脒M去,用類和模板的形式描述數(shù)據(jù)結(jié)構(gòu),讓學生適應快速發(fā)展的軟件開發(fā)技術(shù)。從4個方面討論了如何進行面向?qū)ο蠡臄?shù)據(jù)結(jié)構(gòu)教學,在我院經(jīng)過實踐,通過2個學期的教學,從效果上來看,比前幾屆學生的動手能力、學習積極性上均有了明顯提高,絕大部分的同學都能順利完成課程設計并獲得較好成績。

[1] 李睿,林亞平.做中學—面向?qū)ο蟪绦蛟O計與數(shù)據(jù)結(jié)構(gòu)課程一體化研究[J].計算機教育,2008,16:151~152

[2] 馮莉.用OOP探討數(shù)據(jù)結(jié)構(gòu)的教學思想和方法[J].襄樊學院學報,2008,29(8):74~77

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

Discussion and practice on data structure by object-oriented teaching method

Xu Chong, Xu Jian
Hangzhou dianzi university, Hangzhou, 310018, China

2010-12-16 稿件編號:1012090

徐翀,碩士,講師。徐建,博士,副教授。

杭州電子科技大學高教科研項目(編號:ZC1017)。

猜你喜歡
課程設計教學
數(shù)字圖像處理課程混合式教學改革與探索
微課讓高中數(shù)學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
軟件設計與開發(fā)實踐課程探索與實踐
計算機教育(2020年5期)2020-07-24 08:53:38
為什么要學習HAA課程?
瞞天過海——仿生設計萌到家
“自我診斷表”在高中數(shù)學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
跨越式跳高的教學絕招
體育師友(2013年6期)2013-03-11 18:52:18
主站蜘蛛池模板: 人妻夜夜爽天天爽| 国产成人精品一区二区不卡 | 亚洲欧洲免费视频| 91精品aⅴ无码中文字字幕蜜桃 | 超清人妻系列无码专区| 国产精品尤物铁牛tv| 亚洲无码37.| 不卡无码网| 人妻无码中文字幕一区二区三区| 91无码视频在线观看| 国产人成乱码视频免费观看| 99久久99这里只有免费的精品| 精品乱码久久久久久久| 红杏AV在线无码| 久久性妇女精品免费| 国产福利一区视频| 亚洲乱伦视频| 午夜日本永久乱码免费播放片| 国产高清精品在线91| 婷婷午夜影院| 国产又黄又硬又粗| 国产粉嫩粉嫩的18在线播放91| 国产一级在线观看www色| 久久情精品国产品免费| 精品自窥自偷在线看| 国产精选自拍| 亚洲第一视频免费在线| 午夜爽爽视频| 国产在线视频导航| 色综合天天操| 欧美国产日韩在线观看| 真实国产乱子伦高清| 狠狠色综合网| 国产第一页免费浮力影院| 亚洲,国产,日韩,综合一区| 久久精品只有这里有| 亚洲国产av无码综合原创国产| 欧美在线黄| 99热免费在线| 亚洲第一成网站| 婷婷久久综合九色综合88| 久久久久国产精品嫩草影院| 性视频一区| 亚洲综合九九| 亚洲av无码牛牛影视在线二区| 亚洲综合极品香蕉久久网| 乱人伦中文视频在线观看免费| 欧美日韩中文国产| av一区二区三区高清久久| 97一区二区在线播放| 国产精品自在拍首页视频8| 国产在线观看一区精品| 国产激情影院| 日本午夜在线视频| 在线播放91| 国产区网址| 亚洲欧美在线精品一区二区| 在线无码私拍| 人妻无码中文字幕第一区| 国产女人水多毛片18| 亚洲成aⅴ人片在线影院八| 国产白丝av| 国产成年无码AⅤ片在线| 中文字幕伦视频| 91久久偷偷做嫩草影院| 波多野结衣中文字幕久久| 韩日免费小视频| 久久久噜噜噜久久中文字幕色伊伊 | 国产亚洲欧美另类一区二区| 精品综合久久久久久97| 麻豆精品视频在线原创| 黄色网站在线观看无码| 国产中文在线亚洲精品官网| 精品无码国产一区二区三区AV| 国产乱人伦AV在线A| 91精品情国产情侣高潮对白蜜| 夜夜高潮夜夜爽国产伦精品| 爆乳熟妇一区二区三区| 久久精品国产亚洲麻豆| 东京热av无码电影一区二区| 亚洲精品无码AⅤ片青青在线观看| 无码一区二区波多野结衣播放搜索|