亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        案例驅動的數(shù)據(jù)結構課程設計教學改革實踐

        2009-03-06 05:17:56龐曉瓊
        計算機教育 2009年1期
        關鍵詞:教學改革

        龐曉瓊

        文章編號:1672-5913(2009)01-0053-03

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

        關鍵詞:課程設計;數(shù)據(jù)結構;案例驅動;教學改革

        中圖分類號:G642

        文獻標識碼:B

        1引言

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

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

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

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

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

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

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

        3案例驅動的數(shù)據(jù)結構課程設計教學改革特點

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

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

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

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

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

        4典型數(shù)據(jù)結構課程設計案例分析

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

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

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

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

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

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

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

        typedef struct log //存取記錄

        {

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

        char W_D; //存取標志

        float Amount; //存取金額

        } log;

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

        {

        log data; //存取記錄

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

        } node_log, *p_node_log;

        typedef struct account //賬戶記錄

        {

        char ID[10]; //賬號

        char Name[10]; //姓名

        float Balance; //余額

        } account;

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

        {

        account data; //賬戶記錄

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

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

        } node_account, *p_node_account;

        其他功能模塊便可以參照數(shù)據(jù)結構教材上的相關算法設計實現(xiàn)。

        5結果與結論

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

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

        參考文獻:

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

        [2] 吳宏偉,張殿龍,梅險. 高校網(wǎng)絡輔助教學的探索與實踐[J]. 計算機教育,2007,(7):18-21.

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

        [4] 姜芳,楊晉明. 淺析研究性教學在高校教學中的運用[J]. 教育與現(xiàn)代化,2004,(1):13-16.

        [5] 嚴蔚敏等. 數(shù)據(jù)結構[M]. 北京:清華大學出版社,2006.

        猜你喜歡
        教學改革
        完全學分制下選課管理的思考與實踐
        考試周刊(2016年76期)2016-10-09 10:08:04
        金工實習教育對工科院校創(chuàng)客教育影響分析
        考試周刊(2016年76期)2016-10-09 10:04:11
        新形勢下小學語文教學方法研究
        考試周刊(2016年76期)2016-10-09 08:47:08
        譯林版英語教材的人文特點研究
        成才之路(2016年26期)2016-10-08 11:33:49
        當前農(nóng)村學校實施“新教育實驗”的研究
        成才之路(2016年25期)2016-10-08 10:05:54
        構建和改進現(xiàn)代化學校美育工作體系研究
        成才之路(2016年25期)2016-10-08 10:04:29
        中職學校“生本課堂”的調(diào)查研究與實踐
        成才之路(2016年25期)2016-10-08 10:03:04
        高校三維動畫課程教學方法研究
        成才之路(2016年25期)2016-10-08 10:00:36
        基于人才培養(yǎng)的技工學校德育實效性研究
        成才之路(2016年25期)2016-10-08 09:51:08
        現(xiàn)代信息技術在高職數(shù)學教學改革中的應用研究
        科技視界(2016年20期)2016-09-29 12:59:03
        国产三级久久精品三级91| 亚洲AV无码一区二区三区天堂网| 久久中文字幕亚洲精品最新| 久久亚洲宅男天堂网址| 不卡日韩av在线播放| 一边吃奶一边摸做爽视频| 国产欧美日韩网站| 女同视频网站一区二区| 亚洲国产成人久久综合碰碰| 天堂资源中文最新版在线一区| 国产亚洲精品自在久久蜜tv| 日本成人三级视频网站| 精品人妻va一区二区三区| 性色做爰片在线观看ww| 亚洲另类欧美综合久久图片区| 亚洲高清av一区二区| 国产精品亚洲av无人区一区香蕉| 熟女体下毛毛黑森林| 久久狠狠高潮亚洲精品暴力打| 全程国语对白资源在线观看| 黑人大群体交免费视频| 夜夜嗨av一区二区三区| 尤物AV无码色AV无码麻豆| 亚洲岛国一区二区三区| 亚洲av一二三四区四色婷婷 | 亚洲精品日韩自慰喷水白浆| 中文字幕人成乱码中文乱码| 国产一区二区三区在线蜜桃| 日本高清h色视频在线观看| 乱子伦av无码中文字幕| 国产精品自拍网站在线| 亚洲av日韩av女同同性| 亚洲不卡中文字幕无码| 国产一区二区三区杨幂| 国产一区二区三区在线蜜桃| 国语精品一区二区三区| av资源在线看免费观看| 日韩国产精品一区二区三区| 一本久久a久久精品vr综合| 黄色毛片视频免费| 韩国黄色三级一区二区|