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

        ?

        數(shù)據(jù)結(jié)構(gòu)課程中分步式案例設(shè)計的探索與實踐

        2019-10-23 05:15:00陳青青
        計算機(jī)教育 2019年10期
        關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)結(jié)點(diǎn)代碼

        陳青青

        (莆田學(xué)院 信息工程學(xué)院,福建 莆田 351100)

        0 引 語

        數(shù)據(jù)結(jié)構(gòu)與算法課程是計算機(jī)學(xué)科的專業(yè)基礎(chǔ)必修課程,屬于專業(yè)課程體系中的核心課程,在教學(xué)體系中起著舉足輕重的作用。它所討論的知識體系和方法技術(shù),無論對于下一步學(xué)習(xí)其他相關(guān)計算機(jī)課程,或是將來從事信息行業(yè)開發(fā)工作,都是重要且必備的基礎(chǔ)之一。

        該門課程的教學(xué)目標(biāo)是學(xué)會分析研究計算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應(yīng)用涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲結(jié)構(gòu)及其相應(yīng)的算法,并初步掌握算法的時間分析和空間分析的技術(shù)[1]。另一方面,本課程的學(xué)習(xí)過程也是復(fù)雜程序設(shè)計的訓(xùn)練過程,要求學(xué)生編寫的程序結(jié)構(gòu)清楚和正確易讀,符合軟件工程的規(guī)范。

        1 課堂教學(xué)存在的問題

        該門課程的特點(diǎn)是知識點(diǎn)多,理論性強(qiáng),內(nèi)容比較抽象枯燥,掌握起來相對困難。在傳統(tǒng)的教學(xué)過程中,存在以下問題。

        (1)數(shù)據(jù)結(jié)構(gòu)課程需要學(xué)生熟悉不同數(shù)據(jù)結(jié)構(gòu)的特性,從而在分析解決具體的問題時,為所要處理的數(shù)據(jù)選擇合適的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu);而教師往往按照教材授課,在講解不同數(shù)據(jù)結(jié)構(gòu)時,選用不同的案例進(jìn)行教學(xué),相互之間沒有關(guān)聯(lián)與對比,學(xué)生無法理解不同數(shù)據(jù)結(jié)構(gòu)在解決同一問題時的不同點(diǎn)及優(yōu)缺點(diǎn),對如何根據(jù)實際問題選擇恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)了解得并不深刻。

        (2)本門課程的實踐教學(xué)環(huán)節(jié)對學(xué)生的程序設(shè)計能力具有較高的要求。在莆田學(xué)院,C 語言程序設(shè)計的課程在大一下學(xué)期開設(shè),而數(shù)據(jù)結(jié)構(gòu)與算法課程在大二下學(xué)期開設(shè)。經(jīng)過了一年的時間,大部分學(xué)生對高級程序設(shè)計語言的相關(guān)知識點(diǎn)比較陌生,再加上大一下學(xué)期學(xué)習(xí)時掌握不到位,直接影響了代碼的編寫質(zhì)量[2]。常見的問題包括變量定義不規(guī)范,指針、結(jié)構(gòu)體和函數(shù)相關(guān)應(yīng)用弱,代碼可讀性差,程序調(diào)試能力弱等,同時,傳統(tǒng)教學(xué)過程偏重于數(shù)據(jù)結(jié)構(gòu)理論,沒有對代碼編寫進(jìn)行強(qiáng)調(diào)和規(guī)范。

        (3)數(shù)據(jù)結(jié)構(gòu)課程實踐部分的考核,目前是以學(xué)生提交上來的實驗報告和代碼作為考評依據(jù),但是由于課程的復(fù)雜度與難度較大的特點(diǎn),學(xué)生不愿意主動思考,提交上來的實驗報告和代碼往往千篇一律,抄襲現(xiàn)象嚴(yán)重,從而影響考評的效果,偏離考評的真正目的。

        2 分步式案例設(shè)計

        學(xué)生通過設(shè)計系統(tǒng)雛形,再利用所學(xué)章節(jié)知識分步完善系統(tǒng)的方式掌握各知識點(diǎn),可以解決目前教學(xué)過程中各章節(jié)的案例設(shè)計相互之間沒有聯(lián)系的問題。

        2.1 章節(jié)案例設(shè)計與選擇

        案例的選擇是教學(xué)改革中的核心環(huán)節(jié)之一,通過選擇適當(dāng)?shù)陌f知識的教學(xué)案例,并經(jīng)過案例分析引出即將學(xué)習(xí)的新知識,以此驅(qū)動數(shù)據(jù)結(jié)構(gòu)課程不同章節(jié)的學(xué)習(xí),可以提高學(xué)生的學(xué)習(xí)興趣,幫助學(xué)生進(jìn)一步理解不同數(shù)據(jù)結(jié)構(gòu)的選擇和取用,從而達(dá)到教學(xué)目的。

        計算機(jī)學(xué)科的學(xué)生在應(yīng)用數(shù)據(jù)結(jié)構(gòu)知識解決實際問題時,經(jīng)常接觸數(shù)據(jù)列表的建立、查找、插入、刪除等操作,這也是將來在開發(fā)編寫完整的系統(tǒng)代碼時,不可避免將接觸和實現(xiàn)的部分。在線性表這一章節(jié),選用“學(xué)生基本信息系統(tǒng)”案例,貼近學(xué)生的日常生活,學(xué)生也更易理解系統(tǒng)的邏輯條理。通過分步教學(xué),學(xué)生使用順序表結(jié)構(gòu)和鏈表結(jié)構(gòu)兩種物理存儲方式進(jìn)行實現(xiàn),從而進(jìn)一步掌握兩種方式的區(qū)別。

        1)利用順序存儲結(jié)構(gòu)實現(xiàn)。

        學(xué)生基本信息系統(tǒng)是一個小型的處理學(xué)生基本信息的程序,主要用于實現(xiàn)學(xué)生信息的錄入、刪除、查找等功能。在講解順序結(jié)構(gòu)前,即以任務(wù)驅(qū)動的方式[3],將該題目下達(dá)于學(xué)生,讓學(xué)生進(jìn)行分組討論,討論如何建立合適的數(shù)據(jù)元素類型,如何在此基礎(chǔ)上實現(xiàn)插入、刪除、查找等操作。學(xué)生首先利用已經(jīng)學(xué)過的C 語言相關(guān)知識進(jìn)行討論和實踐,之后教師在了解學(xué)生討論結(jié)果的基礎(chǔ)上,提出數(shù)據(jù)結(jié)構(gòu)中“結(jié)點(diǎn)”的概念作為數(shù)據(jù)元素類型的建立,并通過回顧復(fù)習(xí)學(xué)生學(xué)過的關(guān)于數(shù)組的相關(guān)知識,提出“結(jié)點(diǎn)”以順序結(jié)構(gòu)存儲的知識點(diǎn),進(jìn)一步讓學(xué)生討論并動手編寫對各“結(jié)點(diǎn)”進(jìn)行插入、刪除、查找的代碼,并進(jìn)行調(diào)試分析。

        2)討論順序存儲結(jié)構(gòu)優(yōu)缺點(diǎn)。

        在實現(xiàn)上述系統(tǒng)的基礎(chǔ)上,與學(xué)生通過分析討論,對在原有數(shù)據(jù)集合中插入或刪除學(xué)生數(shù)據(jù)所需的時間和空間復(fù)雜度進(jìn)行分析,發(fā)現(xiàn)在插入或刪除某條學(xué)生數(shù)據(jù)時,需要移動大量其他學(xué)生數(shù)據(jù),以達(dá)到“線性表”結(jié)構(gòu)的要求,這種方法耗費(fèi)的時間多,操作也繁瑣。

        3)提出以鏈?zhǔn)酱鎯Y(jié)構(gòu)實現(xiàn)。

        基于順序存儲結(jié)構(gòu)的缺點(diǎn),提出鏈?zhǔn)酱鎯Y(jié)構(gòu)的知識點(diǎn),每個學(xué)生數(shù)據(jù)“結(jié)點(diǎn)”之間以指針相關(guān)聯(lián),特別針對“指針”進(jìn)行著重強(qiáng)調(diào),讓學(xué)生了解對于新“結(jié)點(diǎn)”的插入或刪除,僅需改變相關(guān)聯(lián)“結(jié)點(diǎn)”的指針即可,從而引出基于鏈表的結(jié)構(gòu)建立、查找、插入、刪除等操作偽代碼,并讓學(xué)生通過上機(jī)實踐的方式實現(xiàn)。

        通過以上3 個步驟,學(xué)生首先通過回顧復(fù)習(xí),利用原有的C 語言知識編寫系統(tǒng)雛形,之后分別以“結(jié)點(diǎn)”+順序結(jié)構(gòu)、“結(jié)點(diǎn)”+鏈?zhǔn)浇Y(jié)構(gòu)兩種方式加以完善,通過“案例驅(qū)動型”實踐模式,即同一案例、同一系統(tǒng)利用不同存儲結(jié)構(gòu)的實現(xiàn)與實踐過程,加深關(guān)于順序存儲和鏈?zhǔn)酱鎯Φ牧私?,理解二者的?yōu)缺點(diǎn)與區(qū)別,從而達(dá)到教學(xué)目的。

        對于其他章節(jié)的實踐案例,實踐內(nèi)容安排見表1。

        表1 各章節(jié)實踐案例設(shè)計

        經(jīng)過以上實踐環(huán)節(jié),學(xué)生可以利用不同章節(jié)的知識,分步驟對所開發(fā)的系統(tǒng)進(jìn)行逐步完善,既能掌握課程的相關(guān)知識,又能了解如何建立系統(tǒng)并逐步添加新功能,對于后期完成綜合型案例具有較大的幫助。

        2.2 綜合型實踐設(shè)計

        這個環(huán)節(jié)的教學(xué)是在整個數(shù)據(jù)結(jié)構(gòu)的課堂教學(xué)結(jié)束之后,即課程設(shè)計環(huán)節(jié)部分完成[4]。在該環(huán)節(jié)的實踐中,學(xué)生可以自行組織4~5 人組成一個團(tuán)隊,在教師提供的幾個實驗項目中,自行挑選一個項目,對任務(wù)進(jìn)行分解與分配,合作完成。

        以圖書管理系統(tǒng)為例,可將系統(tǒng)功能分解為初始數(shù)據(jù)的建立、圖書的插入、圖書的查找、圖書的排序、圖書的編輯與刪除等多個模塊,每個團(tuán)隊成員選擇其中一個模塊完成,同時進(jìn)行小組討論,設(shè)計統(tǒng)一的數(shù)據(jù)接口,以實現(xiàn)不同模塊的相互調(diào)用和組合,最后,小組成員一起對模塊組合后的系統(tǒng)進(jìn)行調(diào)試分析,發(fā)現(xiàn)不足并改進(jìn)。這不僅能進(jìn)一步加強(qiáng)學(xué)生的分析問題與實踐編程能力,還能鍛煉學(xué)生的團(tuán)隊合作能力。實驗項目選題匯總見表2。

        表2 綜合型實驗選題匯總

        3 算法實現(xiàn)步驟改革

        學(xué)生在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法這門課程時,往往只經(jīng)過一個學(xué)期的C 語言學(xué)習(xí),編程基礎(chǔ)較薄弱,代碼編寫不規(guī)范,模塊分析與邏輯設(shè)計還不嚴(yán)謹(jǐn);而在該門課程的案例實現(xiàn)時,往往需要編寫幾個模塊的函數(shù)代碼,代碼量較大,相比以往僅僅是一兩個函數(shù)相互調(diào)用的C 語言學(xué)習(xí),復(fù)雜度更高,整體與模塊分析比例更大,同時,還要以新“結(jié)點(diǎn)”的方式實現(xiàn),學(xué)生往往難以上手,并容易產(chǎn)生畏難情緒,學(xué)習(xí)積極性不高。

        基于以上原因,以線性表為例,在學(xué)生上機(jī)實踐“學(xué)生基本信息系統(tǒng)”環(huán)節(jié),采用以下步驟與方法。

        1)先以數(shù)組方式實現(xiàn)基本數(shù)據(jù)類型的數(shù)據(jù)操作。

        先讓學(xué)生以原有的C 語言知識編寫一個小型的、僅有兩三個函數(shù)的程序,實現(xiàn)基本數(shù)據(jù)類型數(shù)組的數(shù)據(jù)輸入、查找、插入、刪除等操作。這一代碼既是“學(xué)生基本信息系統(tǒng)”的雛形,又可以讓學(xué)生先以1~2 個課時的時間,復(fù)習(xí)回顧C(jī)程序的相關(guān)知識點(diǎn)和編寫過程,對編程知識進(jìn)行查漏補(bǔ)缺。

        2)在提出“結(jié)點(diǎn)”概念與“順序結(jié)構(gòu)”數(shù)據(jù)操作偽代碼后,讓學(xué)生針對第一步驟實現(xiàn)的代碼進(jìn)行修改。

        在提出“順序結(jié)構(gòu)”存儲的相關(guān)知識點(diǎn)后,首先讓學(xué)生以“結(jié)點(diǎn)”替代上一代碼中的基本數(shù)據(jù)類型,并在此基礎(chǔ)上修改上一步驟代碼中有關(guān)數(shù)據(jù)操作的部分。采用這一方法的目的,即是讓學(xué)生在此步驟中,重點(diǎn)關(guān)注數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)以及“結(jié)點(diǎn)”數(shù)據(jù)的訪問方式,而將了解數(shù)據(jù)查找、插入、刪除等算法設(shè)計的原理流程這一學(xué)習(xí)過程在上一步驟就完成,從而在這一步驟簡化并突出知識點(diǎn)的學(xué)習(xí),分步完成基于順序表結(jié)構(gòu)的“學(xué)生基本信息系統(tǒng)”。

        3)在提出“鏈?zhǔn)浇Y(jié)構(gòu)”的概念與數(shù)據(jù)操作偽代碼后,讓學(xué)生針對第2 步驟實現(xiàn)的代碼進(jìn)行修改。

        在提出“鏈?zhǔn)浇Y(jié)構(gòu)”存儲的相關(guān)知識點(diǎn)后,讓學(xué)生修改上一步驟的代碼,將“結(jié)點(diǎn)”數(shù)據(jù)修改為以“鏈表”存儲,并修改查找、插入、刪除的相關(guān)代碼。學(xué)生在修改的過程中,可以進(jìn)一步比較兩種不同存儲結(jié)構(gòu)在進(jìn)行數(shù)據(jù)操作時的異同點(diǎn),并通過比較前后兩個版本代碼的時間與空間復(fù)雜度,了解如何在不同需求的情況下,選用不同的數(shù)據(jù)存儲結(jié)構(gòu)。

        4)在以上3 個步驟中,學(xué)生在編寫完各自的代碼后,采用相互之間分析、找錯、糾錯的方式,提高代碼編寫規(guī)范與程序調(diào)試能力。

        寫完的代碼需要調(diào)試,學(xué)生在調(diào)試代碼方面往往存在問題,較難發(fā)現(xiàn)自己代碼的問題,可以通過同學(xué)間的相互改錯糾錯,發(fā)現(xiàn)問題所在,這樣學(xué)生不僅學(xué)習(xí)興趣高漲,還能進(jìn)一步提高有關(guān)代碼編寫、調(diào)試的能力。

        4 實踐考評方式改革

        (1)實踐考評成績=實驗報告與代碼(30%)+答辯(50%)+組內(nèi)成員互評(20%)。

        (2)在答辯環(huán)節(jié),組內(nèi)每個成員對自己所承擔(dān)部分的系統(tǒng)任務(wù)進(jìn)行演示與解說,包括匯報遇到的問題與解決方式等[5]。教師可以對學(xué)生進(jìn)行提問,通過學(xué)生的回答了解學(xué)生的實際完成過程,并綜合學(xué)生的完成與答辯情況進(jìn)行評分。

        (3)在組內(nèi)成員互評部分,組內(nèi)成員間通過匿名互評的方式,對其他成員的任務(wù)完成情況和團(tuán)隊合作情況進(jìn)行評分。

        通過以上考評方式的改進(jìn),學(xué)生就不能再僅僅依靠實驗報告與代碼的簡單復(fù)制粘貼通過考評,而是通過真正的團(tuán)隊合作以及思考與動手實踐,從而提高學(xué)習(xí)主動性,保障考評的實際意義。

        5 結(jié) 語

        數(shù)據(jù)結(jié)構(gòu)與算法課程所采用的分步式任務(wù)驅(qū)動型教學(xué)改革和考評改革,改變了按教材內(nèi)容教學(xué)、按教材中一個算法接一個算法講解的傳統(tǒng)教學(xué)過程,更強(qiáng)調(diào)章節(jié)之間的聯(lián)結(jié),從學(xué)生C 語言基礎(chǔ)的實際掌握能力出發(fā),從學(xué)生的學(xué)習(xí)效果出發(fā),設(shè)計合適的案例,并采用循序漸進(jìn)的步驟,從代碼雛形出發(fā),根據(jù)實際的數(shù)據(jù)結(jié)構(gòu)知識點(diǎn)進(jìn)行進(jìn)一步修改完善,將傳統(tǒng)教學(xué)過程中學(xué)生本應(yīng)同時掌握的多個知識點(diǎn)拆解開來,分步教學(xué),更適合學(xué)生的學(xué)習(xí)節(jié)奏;同時,通過新的實踐考評辦法,激發(fā)學(xué)生的學(xué)習(xí)主動性。在莆田學(xué)院近年的教學(xué)過程中,使用上述方法對數(shù)據(jù)結(jié)構(gòu)與算法課程進(jìn)行教學(xué)改革實踐,結(jié)果表明,學(xué)生更容易理解教材中各類數(shù)據(jù)操作的偽代碼,對于不同數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)與區(qū)別也理解得更為深刻,學(xué)生的學(xué)習(xí)與程序編寫興趣更高,編寫的代碼更加嚴(yán)謹(jǐn)、完整,取得了更好的學(xué)習(xí)效果。

        猜你喜歡
        數(shù)據(jù)結(jié)構(gòu)結(jié)點(diǎn)代碼
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個數(shù)估計
        “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
        高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
        中國市場(2016年45期)2016-05-17 05:15:48
        TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
        《數(shù)據(jù)結(jié)構(gòu)》教學(xué)方法創(chuàng)新探討
        河南科技(2014年5期)2014-02-27 14:08:57
        基于Raspberry PI為結(jié)點(diǎn)的天氣云測量網(wǎng)絡(luò)實現(xiàn)
        亚洲乱亚洲乱妇50p| 国产人妖一区二区av| 男人的精品天堂一区二区在线观看| 熟女体下毛荫荫黑森林| 亚洲精品无码成人a片| 亚洲AV无码精品色欲av| 中文字幕中文字幕人妻黑丝| 亚洲av网站在线观看一页| 欧洲美女黑人粗性暴交| 国产欧美一区二区三区在线看| 九九99无码精品视频在线观看| 99久久久69精品一区二区三区| 国产精品一区二区久久蜜桃| 人人妻人人澡人人爽超污| 亚洲av日韩av不卡在线观看| 国产乱人伦AⅤ在线麻豆A| 无色码中文字幕一本久道久| 男人扒开添女人下部免费视频| 国产成人+亚洲欧洲+综合| 中文字幕一区二区网站| 色婷婷久久精品一区二区| 午夜福利试看120秒体验区| 乱伦一区二| 亚洲福利视频一区二区三区| 亚洲无av在线中文字幕| 亚洲av久久无码精品九九| 亚洲欧美成人久久综合中文网| 亚洲国产综合人成综合网站| 中文无码精品a∨在线观看不卡| 久久夜色撩人精品国产小说| 91精品国产综合久久久蜜臀九色| 亚洲成在人线视av| 天天爽夜夜爽人人爽一区二区| 最新国产一区二区精品久久| 亚洲中国美女精品久久久| 99re6在线视频精品免费下载| 无套内射蜜桃小视频| 亚洲成AV人片在一线观看| 亚洲综合中文字幕日韩| 亚洲午夜福利在线视频| 1精品啪国产在线观看免费牛牛|