前言:中文期刊網(wǎng)精心挑選了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文供你參考和學(xué)習(xí),希望我們的參考范文能激發(fā)你的文章創(chuàng)作靈感,歡迎閱讀。
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文1
(中北大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,山西 太原 030051)
摘要:介紹數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺(tái)的設(shè)計(jì)過程,說明其構(gòu)建思路、系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)方法,闡述該平臺(tái)集內(nèi)容提供、多媒體資料庫(kù)瀏覽、流媒體播放和交流互動(dòng)于一身,采用Adobe Flex、PHP、MySQL、Apache和flash Media Server等技術(shù),以純Flash方式展現(xiàn),指出使用該平臺(tái)可以更好地發(fā)揮教師引導(dǎo)、啟發(fā)、監(jiān)控教學(xué)過程的主導(dǎo)作用,同時(shí)又能充分體現(xiàn)學(xué)生作為學(xué)習(xí)過程主體的主動(dòng)性和創(chuàng)造性,有利于教師啟發(fā)教學(xué)和學(xué)生自主建構(gòu)知識(shí)體系。
關(guān)鍵詞 :數(shù)據(jù)結(jié)構(gòu);課程設(shè)計(jì);教學(xué)平臺(tái)
基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(61379125);山西省自然科學(xué)基金項(xiàng)目(2012011015-3);山西省高等學(xué)??萍紕?chuàng)新項(xiàng)目(2014143)。
第一作者簡(jiǎn)介:龐曉瓊,女,講師,研究方向?yàn)樾畔踩c密碼學(xué),xqpang@nuc.edu.cn。
0 引言
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)相關(guān)專業(yè)的核心基礎(chǔ)課程,根據(jù)教學(xué)大綱安排,各章節(jié)安排相應(yīng)教學(xué)內(nèi)容的驗(yàn)證性上機(jī)實(shí)驗(yàn),還設(shè)置針對(duì)課程內(nèi)容的綜合設(shè)計(jì)實(shí)驗(yàn)環(huán)節(jié),這是考查學(xué)生理論聯(lián)系實(shí)際動(dòng)手能力的重要環(huán)節(jié),對(duì)鍛煉學(xué)生發(fā)現(xiàn)問題、解決問題的能力也很有裨益。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)驗(yàn)步驟如下:需求分析——選擇并構(gòu)造合適的數(shù)據(jù)結(jié)構(gòu)——功能函數(shù)設(shè)計(jì)——具體編碼實(shí)現(xiàn)——運(yùn)行測(cè)試——完成課程設(shè)計(jì)說明書。在傳統(tǒng)的教學(xué)安排中,實(shí)驗(yàn)過程由學(xué)生獨(dú)立完成,教師的作用主要是答疑、過程監(jiān)督和成果驗(yàn)收等方面,這種強(qiáng)調(diào)學(xué)生的“學(xué)”而忽視教師主導(dǎo)作用的教學(xué)過程雖然會(huì)涌現(xiàn)出一些優(yōu)秀的作品,但也存在一些問題:一是學(xué)生自由度過大,容易偏離課程設(shè)計(jì)教學(xué)目標(biāo);二是部分學(xué)生由于缺乏專業(yè)訓(xùn)練,沒有形成正解的思維方法,拿到題目無(wú)從下手,只能生搬硬套基本數(shù)據(jù)結(jié)構(gòu);三是代碼編寫不夠規(guī)范,可讀性差,也不注重文檔的整理;四是存在照抄他人課程設(shè)計(jì)的現(xiàn)象 [1-3] 。
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是個(gè)綜合性實(shí)踐環(huán)節(jié),不僅需要數(shù)據(jù)結(jié)構(gòu)知識(shí),還是對(duì)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言、離散數(shù)學(xué)和軟件工程等課程的綜合運(yùn)用。學(xué)生的自主學(xué)習(xí)和教師的主導(dǎo)學(xué)習(xí)相結(jié)合十分重要,為更好地發(fā)揮教師引導(dǎo)、啟發(fā)、監(jiān)控教學(xué)過程的主導(dǎo)作用,結(jié)合當(dāng)前互聯(lián)網(wǎng)應(yīng)用開發(fā)的主流技術(shù),我們?cè)O(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺(tái),用于指導(dǎo)和幫助學(xué)生完成課程設(shè)計(jì)。
1 設(shè)計(jì)過程
1.1 目的與思想
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺(tái)的主要目的包括:①通過優(yōu)化學(xué)生自主學(xué)習(xí)環(huán)境,完善學(xué)習(xí)策略,充分發(fā)揮教師引導(dǎo)、啟發(fā)、監(jiān)控教學(xué)過程的主導(dǎo)作用;②為學(xué)生自主建構(gòu)知識(shí)體系創(chuàng)造條件,使學(xué)生系統(tǒng)掌握數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容、鍛煉和提高編程能力,充分體現(xiàn)學(xué)生的主動(dòng)性、創(chuàng)造性并得到成就感。設(shè)計(jì)思想主要體現(xiàn)在:①充分發(fā)揮互聯(lián)網(wǎng)作用,互聯(lián)網(wǎng)應(yīng)用已成為學(xué)生課余生活的重要組成部分,教師應(yīng)因勢(shì)利導(dǎo),利用互聯(lián)網(wǎng)對(duì)學(xué)生進(jìn)行指導(dǎo)和輔導(dǎo);②要激發(fā)學(xué)生的興趣,興趣是最好的老師,教學(xué)平臺(tái)的界面要美觀大方和簡(jiǎn)潔明朗,注重多媒體組件的選擇和使用;③學(xué)習(xí)環(huán)節(jié)的設(shè)計(jì)要貫穿整個(gè)課程設(shè)計(jì)過程,覆蓋不同知識(shí)層面的學(xué)生;④注重新媒介和新技術(shù)的使用,緊跟時(shí)展步伐;⑤尊重互聯(lián)網(wǎng)規(guī)律,在知識(shí)大爆炸時(shí)代,微課堂、“短平快”是主流,注重化繁為簡(jiǎn)和突出重點(diǎn)。
1.2 內(nèi)容構(gòu)建
(1)教師可結(jié)合數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)環(huán)節(jié)的特點(diǎn),挑選綜合性強(qiáng)、涉及知識(shí)面廣、適合學(xué)生自主創(chuàng)新的經(jīng)典案例,由教師制作成設(shè)計(jì)分析講解、代碼編寫講解和運(yùn)行測(cè)試講解等分段視頻,學(xué)生根據(jù)需要可自主點(diǎn)播。教師通過引導(dǎo)和啟發(fā),開拓學(xué)生思維,鼓勵(lì)學(xué)生自主構(gòu)造更合理的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)更完善的功能。平臺(tái)選取的案例均可用多種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),適用于不同層次的學(xué)生,同時(shí)也考查學(xué)生對(duì)于算法設(shè)計(jì)、內(nèi)外排序、文件存取和實(shí)現(xiàn)效率等各方面知識(shí)點(diǎn)的掌握情況,是對(duì)學(xué)生綜合能力的考驗(yàn)。
(2)為了使學(xué)生能夠?qū)W以致用,教師可通過咨詢社會(huì)上相關(guān)領(lǐng)域的工程師、系統(tǒng)分析師和從業(yè)人員并對(duì)歷屆畢業(yè)、就業(yè)的學(xué)生進(jìn)行問卷調(diào)查,在資源選擇和案例講解中注重理論聯(lián)系實(shí)際,著力從項(xiàng)目管理、軟件工程、測(cè)試驅(qū)動(dòng)開發(fā)等方面?zhèn)魇趶臉I(yè)經(jīng)驗(yàn),為提高學(xué)生的就業(yè)能力打下堅(jiān)實(shí)基礎(chǔ)。
(3)在教學(xué)資源的運(yùn)用上,教師可提供視頻、音像、文檔、幻燈片、表格、圖形圖像和電子書籍等多種媒體形式,涵蓋數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)涉及的C語(yǔ)言程序設(shè)計(jì)、C++語(yǔ)言、算法設(shè)計(jì)、離散數(shù)學(xué)等資源內(nèi)容;尊重原創(chuàng)者的版權(quán),培養(yǎng)學(xué)生的版權(quán)意識(shí),對(duì)所有引用的資源均詳細(xì)標(biāo)明來源及版權(quán)信息。
(4)注重有教無(wú)類,使不同能力水平的學(xué)生都能從中汲取養(yǎng)分。對(duì)于初級(jí)水平的學(xué)生,通過學(xué)習(xí)視頻講解、參考優(yōu)秀作品和閱讀教師點(diǎn)評(píng),找到完成課程設(shè)計(jì)的入口,自主完成課程設(shè)計(jì);對(duì)于能力強(qiáng)、學(xué)有余力的學(xué)生,通過查看共享資源和在自主探索中挑戰(zhàn)自我,鍛煉?cǎi){馭問題的能力,規(guī)范編程風(fēng)格并實(shí)踐軟件工程。
(5)注重溝通交流,授人以漁。平臺(tái)中開設(shè)釋疑解惑欄目和課程設(shè)計(jì)論壇,預(yù)留微信公眾賬號(hào),學(xué)生可以提出問題及求解,促進(jìn)和強(qiáng)化師生間、學(xué)生間的互動(dòng)交流,從點(diǎn)點(diǎn)滴滴中積累學(xué)習(xí)。
2 實(shí)現(xiàn)過程
2.1 系統(tǒng)架構(gòu)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺(tái)的系統(tǒng)架構(gòu)如圖1所示。
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺(tái)Web服務(wù)器采用Apache服務(wù)器,以純Flex技術(shù)實(shí)現(xiàn),數(shù)據(jù)庫(kù)采用MySQL,由PHP從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)形成XML文件提供給Flex使用,用戶通過瀏覽器以HTTP協(xié)議訪問該平臺(tái)。媒體播放采用兩種形式:一是普通的媒體文件,均以Flash形式提供,包括幻燈片、課件、文檔和書籍等;二是流媒體,通過FMS(Adobe Flash Media Server)流媒體服務(wù)器以RTMP協(xié)議向客戶端推送。相對(duì)于下載后觀看的網(wǎng)絡(luò)播放形式而言,流媒體的典型特征是把連續(xù)的音頻和視頻信息壓縮后放到網(wǎng)絡(luò)服務(wù)器上,用戶可以邊下載邊觀看。采用流媒體方式和流媒體服務(wù)器還可以減輕服務(wù)器的訪問壓力,使得平臺(tái)能夠同時(shí)處理更多的用戶視頻點(diǎn)播請(qǐng)求。
2.2 技術(shù)特點(diǎn)
(1)平臺(tái)是一個(gè)典型的富互聯(lián)網(wǎng)應(yīng)用(rich internet application,RIA),RIA的好處在于比用HTML能實(shí)現(xiàn)的接口更加健壯,反應(yīng)更加靈敏,可視化特性更加出色。RIA的實(shí)現(xiàn)技術(shù)包括Ajax、Flex和Silverlight等,本平臺(tái)使用的是Flex技術(shù)。Flex結(jié)合了音頻、視頻和實(shí)時(shí)通訊,用戶體驗(yàn)極佳,具備桌面應(yīng)用程序的用戶交互感和傳統(tǒng)網(wǎng)絡(luò)應(yīng)用的部署便利性。
(2)平臺(tái)開發(fā)堅(jiān)持跨平臺(tái)、跨瀏覽器的特性,使用技術(shù)及組件包括Adobe Flex、Apache、PHP、MySQL、Adobe Flash Media Server等,均具備良好跨平臺(tái)特性,后臺(tái)服務(wù)器支持Windows、Linux和Unix等不同操作系統(tǒng)。平臺(tái)以純粹的Flash形式展現(xiàn),具備良好跨瀏覽器特性,只要裝有Flash Player的瀏覽器都能夠正常瀏覽,支持所有主流瀏覽器,如IE、火狐、UC、Chrome等,客戶端支持Windows、Linux等主流操作系統(tǒng),同樣也支持移動(dòng)互聯(lián)網(wǎng)以及基于Android、iOS的平板電腦、手機(jī)等便攜設(shè)備。
(3)平臺(tái)中使用到的視頻、音像、文檔、幻燈片、表格、圖形圖像和書籍等統(tǒng)一轉(zhuǎn)換為flv格式文件,用戶只需要通過瀏覽器就可以在線查看上述各種形式的媒體資源,不需安裝任何其他插件或應(yīng)用軟件(如Word、 Excel、 Powerpoint等),充分考慮了客戶端的跨平臺(tái)和多樣性。
(4)視頻點(diǎn)播和視頻直播中采用了FMS(Adobe Flash Media Server)流媒體服務(wù)器,該技術(shù)是主流的視頻傳播實(shí)現(xiàn)技術(shù)。通過FMS,流媒體文件將通過RTMP協(xié)議向客戶端推送,圖像壓縮率更高,播放流暢清晰。與下載視頻文件到本地后觀看的網(wǎng)絡(luò)播放形式相比,流媒體的典型特征是用戶可以邊下載邊觀看,瀏覽速度快,播放中支持拖拽和定位。此外,F(xiàn)MS還具備良好的可擴(kuò)展能力,可根據(jù)用戶群規(guī)模增加邊緣服務(wù)器(edge server)迅速提高訪問能力。
(5)流媒體視頻講解中充分利用了電子黑板軟件,結(jié)合數(shù)位板硬件,在多媒體教學(xué)結(jié)合“板書”講解,既“現(xiàn)代”又“傳統(tǒng)”,讓教師能夠把握教學(xué)的主線,學(xué)生有充分的消化時(shí)間,彌補(bǔ)了多媒體教學(xué)中的不足。
(6)設(shè)計(jì)細(xì)節(jié)上注重界面設(shè)計(jì),功能分區(qū)清晰、導(dǎo)航明確、操作簡(jiǎn)便、提示信息豐富;而Flash的動(dòng)態(tài)特點(diǎn)可以增強(qiáng)平臺(tái)的動(dòng)感效果,使得顏色搭配賞心悅目、色調(diào)把握得當(dāng)并以CSS樣式表統(tǒng)一平臺(tái)的風(fēng)格,提高學(xué)生的使用興趣。
2.3 功能模塊
平臺(tái)目前具備7個(gè)模塊,分別是首頁(yè)、影音中心、堂件集萃、資源共享、自主探索、優(yōu)秀作品和釋疑解惑,如圖2所示。
1) 首頁(yè)模塊。
首頁(yè)模塊(如圖3所示)是平臺(tái)的門面,介紹平臺(tái)的目的和特色,展示最新的信息和媒體介紹。首頁(yè)分為4個(gè)功能區(qū)域:1是新聞區(qū),用來最新的通知、相關(guān)信息、教師布置的作業(yè)等;2是最新媒體資源展示區(qū);3是平臺(tái)的菜單導(dǎo)航區(qū);4是網(wǎng)絡(luò)資源鏈接區(qū)。
2) 影音中心模塊。
影音中心模塊(如圖4所示)集中展現(xiàn)平臺(tái)中所有的媒體資源,包括flv形式的流媒體視頻,F(xiàn)lash形式的教學(xué)堂件、幻燈片,F(xiàn)lash形式的文檔、表格、書籍、代碼和資料,分為3個(gè)功能區(qū)域:1是資源類目區(qū),以樹型結(jié)構(gòu)展示;2是媒體放映區(qū),支持各種格式的文檔(如圖5所示),也能進(jìn)行視頻點(diǎn)播和在線視頻直播;3是資源區(qū),顯示當(dāng)前類目對(duì)應(yīng)的視頻、幻燈和文檔資源。
3) 堂件集萃模塊。
堂件集萃模塊(如圖6所示)以圖像列表方式展現(xiàn)理論課堂教學(xué)和案例視頻教學(xué)中的堂件,每個(gè)堂件均配有標(biāo)題、所屬類目、內(nèi)容介紹等文字信息。所有堂件都是以Flash的形式展現(xiàn),支持聲音、動(dòng)畫、切換等功能(如圖7所示)。
4) 資源共享模塊。
資源共享模塊匯集教師和學(xué)生提供的電子書、國(guó)內(nèi)外經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材等信息資源和學(xué)習(xí)輔助材料,每個(gè)文檔均注明資源名稱、來源、所屬類目、內(nèi)容介紹、版權(quán)信息等情況。該模塊以文字列表形式展現(xiàn),通過點(diǎn)擊單條記錄可在線閱覽相應(yīng)文檔。所有文檔資料均采用FlashPaper形式提供在線閱讀,不需安裝其他插件或軟件。
5) 自主探索模塊。
自主探索模塊提供一些課程設(shè)計(jì)實(shí)踐環(huán)節(jié)要求之外的、富有挑戰(zhàn)性的課題,方便學(xué)生開拓思維、勇攀高峰、鍛煉挑戰(zhàn)自我能力,促進(jìn)學(xué)生自學(xué)。
6) 優(yōu)秀作品模塊。
優(yōu)秀作品模塊提供歷屆學(xué)生的優(yōu)秀作品,這些作品均完成得較為出色且富有創(chuàng)新性,具有參考價(jià)值,可供廣大學(xué)生下載和學(xué)習(xí)。每個(gè)作品都包含作者信息,詳細(xì)注明題目要求和設(shè)計(jì)內(nèi)容,有些還附有教師點(diǎn)評(píng)。
7) 釋疑解惑模塊。
釋疑解惑模塊(如圖8所示)是師生之間、學(xué)生與學(xué)生間互助學(xué)習(xí)的園地,分為3個(gè)功能區(qū)域:1區(qū)顯示既往學(xué)生提出的問題及教師的答復(fù);2區(qū)是學(xué)生向教師提出問題的區(qū)域;3區(qū)提供“中北大學(xué)數(shù)據(jù)結(jié)構(gòu)論壇”的鏈接。
3 結(jié)語(yǔ)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺(tái)已在3屆計(jì)算機(jī)、網(wǎng)絡(luò)工程、軟件工程專業(yè)學(xué)生的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)過程中使用。通過指導(dǎo)教師和每個(gè)學(xué)生進(jìn)行一對(duì)一答辯的結(jié)果來看,學(xué)生的課程設(shè)計(jì)水平有了明顯提高,對(duì)數(shù)據(jù)結(jié)構(gòu)的運(yùn)用更加靈活,思路也更加開闊,達(dá)到了建設(shè)該輔助教學(xué)平臺(tái)的初衷。下一步,我們將設(shè)計(jì)開發(fā)與該平臺(tái)對(duì)應(yīng)的微信公眾賬號(hào),使平臺(tái)成為師生課余交流的重要途徑。
參考文獻(xiàn):
[1] 龐曉瓊. 案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革實(shí)踐[J]. 計(jì)算機(jī)教育, 2009(1): 53-55.
[2] 馬巧梅, 龐曉瓊, 楊秋翔. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例教程[M]. 北京: 人民郵電出版社, 2012: 1-3.
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文2
關(guān)鍵詞:程序設(shè)計(jì)基礎(chǔ);數(shù)據(jù)結(jié)構(gòu);計(jì)算思維;教學(xué)銜接
0、引言
程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)類專業(yè)的兩門專業(yè)基礎(chǔ)課,在計(jì)算機(jī)類專業(yè)教學(xué)中具有舉足輕重的作用,都旨在培養(yǎng)學(xué)生的編程能力和計(jì)算思維能力,并為后續(xù)課程打下堅(jiān)實(shí)的專業(yè)基礎(chǔ),但在這兩門課程的教學(xué)過程中,存在一系列問題,嚴(yán)重影響課程的教學(xué)效果。筆者分析和研究產(chǎn)生這些實(shí)際問題的原因,對(duì)這兩門課程的知識(shí)融合、內(nèi)容銜接以及教學(xué)實(shí)踐等進(jìn)行探討,提出切實(shí)可行的解決方案,更好地實(shí)現(xiàn)兩門課程的教學(xué)目標(biāo)。
1、課程教學(xué)內(nèi)容和教學(xué)目標(biāo)
程序設(shè)計(jì)基礎(chǔ)課程是學(xué)生接觸的第一門專業(yè)基礎(chǔ)課,也是進(jìn)行計(jì)算機(jī)編程的入門課程。課程的教學(xué)目標(biāo)是使學(xué)生掌握程序設(shè)計(jì)的基本方法,培養(yǎng)其擁有良好的程序設(shè)計(jì)風(fēng)格、較強(qiáng)的軟件開發(fā)能力以及一定的計(jì)算思維能力,為后續(xù)課程打下良好的基礎(chǔ)。
數(shù)據(jù)結(jié)構(gòu)是繼程序設(shè)計(jì)基礎(chǔ)課程之后的一門綜合專業(yè)基礎(chǔ)課,是計(jì)算機(jī)類專業(yè)的核心課程之一,具有舉足輕重的作用。它是程序設(shè)計(jì)基礎(chǔ)課程所講知識(shí)的自然延伸和具體應(yīng)用。對(duì)數(shù)據(jù)結(jié)構(gòu)的理解、掌握和應(yīng)用拓展,將對(duì)學(xué)生解決具體實(shí)際問題時(shí)的數(shù)據(jù)分析、數(shù)據(jù)組織、數(shù)據(jù)處理和編程能力有著深遠(yuǎn)的影響。課程的教學(xué)目標(biāo)是培養(yǎng)學(xué)生縝密的邏輯思維和數(shù)據(jù)抽象能力以及學(xué)生在軟件設(shè)計(jì)領(lǐng)域中科學(xué)的計(jì)算思維能力,幫助學(xué)生將數(shù)據(jù)結(jié)構(gòu)和算法與具體的編程實(shí)現(xiàn)相結(jié)合并靈活地應(yīng)用到實(shí)踐和工程實(shí)際中。
2、兩門課程間的關(guān)系
從程序與數(shù)據(jù)結(jié)構(gòu)本身的關(guān)系來說,一個(gè)好的程序離不開合適的數(shù)據(jù)結(jié)構(gòu),而數(shù)據(jù)結(jié)構(gòu)中算法的實(shí)現(xiàn)離不開具體的程序設(shè)計(jì)。在計(jì)算機(jī)類專業(yè)的課程體系中,數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)基礎(chǔ)課程雖然獨(dú)立開設(shè),但是它們之間的聯(lián)系是緊密的。在課程設(shè)置上,程序設(shè)計(jì)基礎(chǔ)是數(shù)據(jù)結(jié)構(gòu)的前導(dǎo)課程,兩門課程一脈相承,不可分割。
學(xué)生對(duì)程序設(shè)計(jì)基礎(chǔ)課程的掌握程度、具備的計(jì)算思維和編程能力,直接關(guān)系到以程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)算法的數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果。數(shù)據(jù)結(jié)構(gòu)課程通過創(chuàng)造性思維的訓(xùn)練,重點(diǎn)突出數(shù)據(jù)抽象與程序抽象能力的培養(yǎng),從而進(jìn)一步提升學(xué)生的計(jì)算思維能力和編程能力,但兩門課程在實(shí)際教學(xué)中存在一些問題,主要原因是課程設(shè)置、教學(xué)內(nèi)容、教學(xué)方法和教學(xué)實(shí)踐方式等多方面存在缺陷。經(jīng)分析,對(duì)程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程進(jìn)行知識(shí)整合和內(nèi)容銜接,采用適當(dāng)?shù)慕虒W(xué)方式,改進(jìn)教學(xué)實(shí)踐是探討和研究的主要內(nèi)容。
3、兩門課程在實(shí)際教學(xué)中存在的銜接問題
3.1 兩門課程教學(xué)內(nèi)容的脫離
目前,在實(shí)際教學(xué)中,程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程雖然關(guān)系緊密,但是一直被設(shè)定為兩門完全獨(dú)立的課程,而且教師在制訂教學(xué)大綱和教學(xué)目標(biāo)時(shí)容易忽視兩門課程問的聯(lián)系,在教學(xué)過程中出現(xiàn)一些盲區(qū),要么兩門課程在教學(xué)內(nèi)容上出現(xiàn)不同程度的交叉,要么出現(xiàn)知識(shí)銜接的斷層,令學(xué)生對(duì)兩門課程的內(nèi)在聯(lián)系沒有整體概念和認(rèn)識(shí),從而導(dǎo)致不能深入系統(tǒng)地學(xué)習(xí)相關(guān)知識(shí)。尤其是先行課程序設(shè)計(jì)基礎(chǔ)的教學(xué)內(nèi)容和課程案例完全脫離了數(shù)據(jù)結(jié)構(gòu)課程,使數(shù)據(jù)結(jié)構(gòu)中最頻繁使用的知識(shí)和內(nèi)容在程序設(shè)計(jì)基礎(chǔ)課程中甚少提及,不能為數(shù)據(jù)結(jié)構(gòu)課程的講解打下扎實(shí)的程序設(shè)計(jì)基礎(chǔ)。
3.2 程序設(shè)計(jì)編程語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)語(yǔ)言不一致
程序設(shè)計(jì)基礎(chǔ)課程所教授的編程語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)教材或?qū)嶒?yàn)所使用的實(shí)現(xiàn)語(yǔ)言不一致,如將C++語(yǔ)言作為程序設(shè)計(jì)基礎(chǔ)的教授語(yǔ)言,而在數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)上選擇c語(yǔ)言或Java語(yǔ)言,以至于數(shù)據(jù)結(jié)構(gòu)的理論教學(xué)與具體上機(jī)編程實(shí)現(xiàn)脫節(jié),嚴(yán)重影響了上機(jī)實(shí)驗(yàn)和課程設(shè)計(jì)環(huán)節(jié)。
3.3 程序設(shè)計(jì)方法與數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)方法不一致
程序設(shè)計(jì)基礎(chǔ)課程中或注重面向過程的程序設(shè)計(jì)方法,或注重面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,但在數(shù)據(jù)結(jié)構(gòu)課程中卻很難利用前導(dǎo)課程中學(xué)到的程序設(shè)計(jì)方法實(shí)現(xiàn)相關(guān)的數(shù)據(jù)結(jié)構(gòu)和算法,從而影響了學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)課程知識(shí)的應(yīng)用與實(shí)現(xiàn)。另一方面,學(xué)生在學(xué)習(xí)過程中沒有充分理解數(shù)據(jù)結(jié)構(gòu)課程的作用和實(shí)際意義,以至于在實(shí)際項(xiàng)目和問題中不知使用什么方法(面向過程或面向?qū)ο螅┓治鼋鉀Q問題,不知如何運(yùn)用數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問題。
3.4 前導(dǎo)課程對(duì)后續(xù)課程實(shí)踐環(huán)節(jié)的影響
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)環(huán)節(jié)相對(duì)課堂理論環(huán)節(jié)較薄弱。此問題的存在多半是因?yàn)閿?shù)據(jù)結(jié)構(gòu)具體實(shí)現(xiàn)的關(guān)鍵技術(shù)在程序設(shè)計(jì)基礎(chǔ)課中未被講解或強(qiáng)調(diào),在進(jìn)行數(shù)據(jù)結(jié)構(gòu)算法從理論到偽代碼、再由偽代碼到真代碼轉(zhuǎn)換的過程中難以真正編程實(shí)現(xiàn),使學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)的理解和掌握僅停留在抽象層、概念層、理論層,難以上升到實(shí)現(xiàn)層,從而影響學(xué)生的學(xué)習(xí)興趣和積極性。同時(shí),課程中的實(shí)踐項(xiàng)目過于單一且相對(duì)獨(dú)立,使實(shí)踐環(huán)節(jié)與實(shí)際項(xiàng)目的聯(lián)系過于松散,學(xué)生運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力和實(shí)際工程能力很難得以鍛煉。
3.5 缺少計(jì)算思維能力的培養(yǎng),缺乏理論知識(shí)與實(shí)際應(yīng)用的聯(lián)系
提高學(xué)生計(jì)算思維能力是程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程共同的目標(biāo)。計(jì)算思維是抽象的多個(gè)層次上的思維,而抽象是表達(dá)實(shí)際的方法。然而,現(xiàn)行教學(xué)方法過多關(guān)注程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)知識(shí)點(diǎn)的講解,缺乏對(duì)學(xué)生思維能力的培養(yǎng)。
如果缺乏理論聯(lián)系實(shí)際,那么將影響學(xué)生計(jì)算思維的培養(yǎng)。數(shù)據(jù)結(jié)構(gòu)中的知識(shí)又太抽象,如果缺乏相應(yīng)的實(shí)際案例對(duì)抽象知識(shí)加以應(yīng)用,那么就會(huì)導(dǎo)致學(xué)生不知道怎樣將所學(xué)的知識(shí)應(yīng)用到實(shí)際中,缺乏具體問題具體分析和解決的能力。
3.6 教師本身知識(shí)結(jié)構(gòu)欠缺,上機(jī)實(shí)踐指導(dǎo)教師數(shù)量不足
授課教師知識(shí)結(jié)構(gòu)的缺乏將導(dǎo)致一些現(xiàn)實(shí)問題:如果程序設(shè)計(jì)基礎(chǔ)的教師不懂?dāng)?shù)據(jù)結(jié)構(gòu),那么其自然不會(huì)將相關(guān)知識(shí)引入課堂,同時(shí)也缺乏用所教授的語(yǔ)言具體實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中結(jié)構(gòu)和算法的能力;如果數(shù)據(jù)結(jié)構(gòu)的教師缺乏相關(guān)編程語(yǔ)言知識(shí),那么就會(huì)給上機(jī)輔導(dǎo)帶來困難。同時(shí),兩門課程具有很強(qiáng)的實(shí)踐性,若上機(jī)實(shí)踐輔導(dǎo)教師不足,將不利于學(xué)生編程能力的提升以及相關(guān)軟件大賽學(xué)生的培養(yǎng)和輔導(dǎo)。
針對(duì)以上實(shí)際教學(xué)中存在的問題,可知為提高程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果,根據(jù)計(jì)算機(jī)類專業(yè)這兩門課程教學(xué)內(nèi)容和目標(biāo),對(duì)兩門課程進(jìn)行知識(shí)整合和內(nèi)容銜接的必要性,對(duì)課程銜接的方法和思路等進(jìn)行探討勢(shì)在必行。同時(shí),課程教學(xué)不僅要關(guān)注知識(shí)的傳授,還要培養(yǎng)學(xué)生主動(dòng)獲取知識(shí)并綜合已有知識(shí)創(chuàng)造新知識(shí)的能力。
4、程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程銜接的新方法和思路
4.1 做好兩門課程教學(xué)內(nèi)容的融合和銜接
教師需緊密結(jié)合計(jì)算機(jī)類專業(yè)的培養(yǎng)目標(biāo),精心設(shè)計(jì)程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)內(nèi)容,既要滿足課程的專業(yè)基礎(chǔ)性,又要滿足后續(xù)課程學(xué)習(xí)的需要,嚴(yán)密制訂教學(xué)大綱,做好程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)教學(xué)內(nèi)容的銜接以及相關(guān)教材的選定。
在程序設(shè)計(jì)基礎(chǔ)課程教學(xué)中,教師需要關(guān)注學(xué)生計(jì)算思維能力的培養(yǎng),將重點(diǎn)放在講解思路上,教學(xué)生如何對(duì)問題進(jìn)行抽象,還要介紹一些簡(jiǎn)單的基礎(chǔ)算法和數(shù)據(jù)結(jié)構(gòu)。程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)的聯(lián)系過程必須做到循序漸進(jìn),若引入的數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí)過難,會(huì)打擊學(xué)生的學(xué)習(xí)積極性。例如,教師講數(shù)組時(shí)可引入幾種數(shù)據(jù)結(jié)構(gòu)中簡(jiǎn)單的排序算法冒泡排序、選擇排序等;講完指針和結(jié)構(gòu)體后可引入最基本的數(shù)據(jù)結(jié)構(gòu)――鏈表;講完嵌套函數(shù)調(diào)用后可引入“遞歸”,它是數(shù)據(jù)結(jié)構(gòu)中解決問題的常見思想和算法,可以通過簡(jiǎn)單的遞歸函數(shù)幫助學(xué)生理解遞歸思想和遞歸調(diào)用過程,這些是理解數(shù)據(jù)結(jié)構(gòu)中復(fù)雜遞歸函數(shù)的基礎(chǔ)。在程序設(shè)計(jì)基礎(chǔ)教學(xué)中,只講遞歸函數(shù)的簡(jiǎn)單應(yīng)用,而在數(shù)據(jù)結(jié)構(gòu)教學(xué)中,需要介紹遞歸函數(shù)的復(fù)雜應(yīng)用:棧、樹、八皇后問題、N個(gè)數(shù)的全排列等。圍繞“遞歸”這一重要知識(shí)點(diǎn),從易到難并結(jié)合課程本身特點(diǎn)進(jìn)行理論分析,將有益于整合課程教學(xué)內(nèi)容,引導(dǎo)學(xué)生循序漸進(jìn)地學(xué)習(xí)和思考。
針對(duì)在程序設(shè)計(jì)基礎(chǔ)課程中不重要但在數(shù)據(jù)結(jié)構(gòu)及算法中被廣泛使用的知識(shí)點(diǎn),教師需要在講解程序設(shè)計(jì)課程時(shí)將其點(diǎn)出并告訴學(xué)生此知識(shí)在后續(xù)數(shù)據(jù)結(jié)構(gòu)課中的重要性,引起學(xué)生對(duì)該知識(shí)點(diǎn)的興趣和重視,如指針的靈活使用、結(jié)構(gòu)體類型的復(fù)雜應(yīng)用、類型重命名、類的拷貝構(gòu)造函數(shù)(深拷貝)、函數(shù)模板、類模版等。
同時(shí),教師要對(duì)程序設(shè)計(jì)基礎(chǔ)課程內(nèi)容進(jìn)行適當(dāng)補(bǔ)充和擴(kuò)充,如增加c++函數(shù)模板、類模板的相關(guān)知識(shí),為將泛型程序設(shè)計(jì)、c++的STL引人數(shù)據(jù)結(jié)構(gòu)課程奠定知識(shí)基礎(chǔ),縮小教學(xué)知識(shí)與實(shí)際運(yùn)用的距離,提高學(xué)生的動(dòng)手編程能力和知識(shí)運(yùn)用能力。
4.2 保證程序設(shè)計(jì)編程語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)語(yǔ)言的一致
程序設(shè)計(jì)基礎(chǔ)課程所教授的編程語(yǔ)言要與數(shù)據(jù)結(jié)構(gòu)教材或?qū)嶒?yàn)所使用的編程語(yǔ)言一致,這樣不僅能大大提高學(xué)生的編程能力,還有利于數(shù)據(jù)結(jié)構(gòu)課程的上機(jī)實(shí)現(xiàn)。
4.3 將面向?qū)ο笏枷胍氤绦蛟O(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)中
隨著程序設(shè)計(jì)方法從傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)演化到面向?qū)ο蟪绦蛟O(shè)計(jì),數(shù)據(jù)結(jié)構(gòu)在面向?qū)ο蟪绦蛟O(shè)計(jì)中也將成為面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu),且將隨著程序設(shè)計(jì)理論和技術(shù)的發(fā)展而不斷變化發(fā)展。在程序設(shè)計(jì)基礎(chǔ)課程中講授面向?qū)ο蟮木幊陶Z(yǔ)言如c++語(yǔ)言,既可以實(shí)現(xiàn)面向過程的數(shù)據(jù)結(jié)構(gòu),又能實(shí)現(xiàn)面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)課程采用面向?qū)ο蟮挠^點(diǎn)講授并以C++語(yǔ)言作為算法的描述工具,從而強(qiáng)化數(shù)據(jù)結(jié)構(gòu)基本知識(shí)和面向?qū)ο蟾呒?jí)程序設(shè)計(jì)基本能力的雙基訓(xùn)練以及實(shí)際動(dòng)手能力培養(yǎng)。在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)實(shí)踐項(xiàng)目時(shí),將面向?qū)ο蟮某绦蛟O(shè)計(jì)思想、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)課程教學(xué)內(nèi)容恰當(dāng)?shù)厝诤?,有效整合兩門課程中的重疊部分,突出各自的側(cè)重點(diǎn),符合當(dāng)前軟件設(shè)計(jì)思想和軟件開發(fā)趨勢(shì)。
4.4 加強(qiáng)課程中計(jì)算思維能力的培養(yǎng)
在程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)的教學(xué)方法上,將面向語(yǔ)法為中心的教學(xué)逐漸轉(zhuǎn)變?yōu)槊嫦騿栴}求解的教學(xué),從問題出發(fā)采用適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),將其抽象成解決問題的算法描述,用程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)問題求解,使課程從過去的僅講授孤立的知識(shí)點(diǎn),轉(zhuǎn)變?yōu)橹v授計(jì)算思維和問題求解的過程,從而達(dá)到突出思維方法訓(xùn)練的目的。在程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)授課時(shí)盡量將理論聯(lián)系實(shí)際,將知識(shí)點(diǎn)解釋和應(yīng)用為身邊容易理解的真實(shí)案例。例如,講“圖”時(shí),可以把現(xiàn)在流行的復(fù)雜網(wǎng)絡(luò)、社交網(wǎng)絡(luò)引入其中;講解“隊(duì)列”時(shí),可將春節(jié)買票引入其中,讓學(xué)生從身邊的例子理解理論知識(shí)的具體應(yīng)用。對(duì)有些案例可以提倡“一題多解”,不局限于一種數(shù)據(jù)結(jié)構(gòu)、解題思路和實(shí)現(xiàn)方法,通過一題多問、一題多解帶動(dòng)學(xué)生探索、比較、尋求更好的解決途徑,達(dá)到學(xué)生分析解決問題能力的提高和計(jì)算思維能力的培養(yǎng)。
4.5 提升教師能力,配備充足的上機(jī)輔導(dǎo)教師
學(xué)校要加強(qiáng)程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)課程相關(guān)授課教師整體能力的提升。教師不僅要掌握自己所教授課程的知識(shí),還要對(duì)該課程的前續(xù)及后續(xù)課程內(nèi)容有所了解,便于維護(hù)教學(xué)的整體秩序和融合學(xué)生的知識(shí)體系。同時(shí),教師要積極參與各種軟件大賽和企業(yè)培訓(xùn),將教授的理論知識(shí)和實(shí)際項(xiàng)目相結(jié)合,達(dá)到應(yīng)用知識(shí)解決復(fù)雜問題的目的。此外,兩門課程的上機(jī)實(shí)踐環(huán)節(jié)要配備足量的輔導(dǎo)教師,不讓學(xué)生輸在編程入門的起跑線上。
4.6 依托程序設(shè)計(jì)競(jìng)賽,提高學(xué)生的編程能力
依托全國(guó)軟件大賽、ACM大賽等程序設(shè)計(jì)競(jìng)賽,將競(jìng)賽題目引入程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課堂中。此類題目強(qiáng)調(diào)考查學(xué)生對(duì)各種算法的應(yīng)用能力,綜合性較強(qiáng),非常適合輔助學(xué)生學(xué)習(xí)和體會(huì)數(shù)據(jù)結(jié)構(gòu)的妙用,提升學(xué)生分析和解決實(shí)際問題的能力,引導(dǎo)學(xué)生將所學(xué)知識(shí)準(zhǔn)確而靈活地運(yùn)用到實(shí)際生活中,大大提高學(xué)生的實(shí)踐動(dòng)手和程序設(shè)計(jì)能力,促進(jìn)其知識(shí)的融會(huì)貫通。另外,通過競(jìng)賽等多種活動(dòng)可以為學(xué)生提供展現(xiàn)程序設(shè)計(jì)能力的舞臺(tái),激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性,培養(yǎng)其計(jì)算思維能力。
例如,在教授程序設(shè)計(jì)基礎(chǔ)時(shí),講完邏輯表達(dá)式和多重循環(huán)結(jié)構(gòu)后,可以將大賽中的邏輯推理題目引入教學(xué)中并引出常見的解題方法和思路一枚舉法,從而加深對(duì)枚舉法的認(rèn)識(shí)。通過采用數(shù)據(jù)結(jié)構(gòu)中的雙向鏈表和線性數(shù)組兩種方式實(shí)現(xiàn)大賽中常見的約瑟夫環(huán)問題。
4.7 引入OJ平臺(tái)。加強(qiáng)課程實(shí)踐環(huán)節(jié)
引人在線判題(Online Judge,oJ)系統(tǒng),提高學(xué)生的實(shí)踐能力。能力需要以豐富的知識(shí)作為支撐,而實(shí)踐是能力賴以生長(zhǎng)的土壤。在OJ系統(tǒng)中,學(xué)生可以在線提交程序源代碼,系統(tǒng)對(duì)源代碼進(jìn)行編譯和執(zhí)行并通過預(yù)先設(shè)計(jì)的測(cè)試數(shù)據(jù)檢驗(yàn)程序源代碼的正確性。引入0J系統(tǒng)不僅可以輔助教師批改作業(yè),減輕教師工作壓力,還可以促使學(xué)生加強(qiáng)平時(shí)上機(jī)編程練習(xí),通過編程排名方式提高學(xué)生的學(xué)習(xí)興趣。OJ系統(tǒng)中擁有大量題庫(kù),可以讓學(xué)生進(jìn)行上機(jī)實(shí)踐,培養(yǎng)自身的計(jì)算思維能力,提高編程能力。0J系統(tǒng)不僅可以作為程序設(shè)計(jì)基礎(chǔ)課程的實(shí)踐平臺(tái),還可作為數(shù)據(jù)結(jié)構(gòu)課程的實(shí)踐平臺(tái)。
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文3
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)課程;實(shí)驗(yàn);設(shè)計(jì);Java;軟件工程
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)類專業(yè)的核心專業(yè)基礎(chǔ)課之一,主要討論數(shù)據(jù)的合理組織和有效存儲(chǔ)、處理以及算法的正確設(shè)計(jì)、分析和評(píng)價(jià),課程本身概念抽象、方法靈活、強(qiáng)調(diào)邏輯思維能力、難度較大,同時(shí)課程實(shí)踐性強(qiáng),實(shí)驗(yàn)是該課程不可或缺的重要環(huán)節(jié)[1-4]。通常數(shù)據(jù)結(jié)構(gòu)課程實(shí)驗(yàn)是由教師將問題描述和基本要求作為實(shí)驗(yàn)題目給出,但又絕不是讓學(xué)生拿到實(shí)驗(yàn)題目就直接上機(jī)進(jìn)行編程調(diào)試,而是要通過在實(shí)驗(yàn)中貫穿軟件工程的方法和原理,嚴(yán)格按照分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試等軟件工程過程并結(jié)合具體的實(shí)現(xiàn)語(yǔ)言來完成實(shí)驗(yàn),培養(yǎng)學(xué)生養(yǎng)成良好的實(shí)驗(yàn)習(xí)慣。下文針對(duì)課程實(shí)驗(yàn)特點(diǎn)和目標(biāo),結(jié)合軟件工程思想、面向?qū)ο笳Z(yǔ)言Java,在課程的實(shí)驗(yàn)組織、過程設(shè)計(jì)、保障等方面進(jìn)行了一些探索。
1課程實(shí)驗(yàn)特點(diǎn)和目標(biāo)
由于面向?qū)ο蠓椒ㄒ呀?jīng)成為目前系統(tǒng)開發(fā)和程序設(shè)計(jì)的主流方式,而Java語(yǔ)言是一種目前使用最為廣泛的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,因此不少計(jì)算機(jī)類專業(yè)的數(shù)據(jù)結(jié)構(gòu)課程采用了Java語(yǔ)言描述。作為是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,Java在提高程序的復(fù)用性和安全性時(shí),在不同類的資源配置方面,較面向過程的程序設(shè)計(jì)語(yǔ)言有更高層面的要求[3],通過Java語(yǔ)言表現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)、實(shí)現(xiàn)相關(guān)算法是數(shù)據(jù)結(jié)構(gòu)課程的難點(diǎn)之一,這給語(yǔ)言基礎(chǔ)薄弱的學(xué)生完成實(shí)驗(yàn)帶來很大困難,迫切需要在目標(biāo)、過程、方法等各方面精心組織和設(shè)計(jì)實(shí)驗(yàn)。
如圖1所示,作為課程教學(xué)的重要組成部分,課程實(shí)驗(yàn)的目標(biāo)主要圍繞數(shù)據(jù)結(jié)構(gòu)與算法、軟件分析與設(shè)計(jì)、程序?qū)崿F(xiàn)與驗(yàn)證、抽象邏輯思維等方面展開[4-7],即:①以數(shù)據(jù)結(jié)構(gòu)和算法為核心,幫助學(xué)生加深對(duì)數(shù)據(jù)結(jié)構(gòu)的理解;②以軟件工程思想為基礎(chǔ),反復(fù)練習(xí)包括軟件分析與設(shè)計(jì)在內(nèi)的軟件開發(fā)過程,培養(yǎng)分析問題、解決問題和程序設(shè)計(jì)的能力;③以面向?qū)ο蟮腏ava程序設(shè)計(jì)語(yǔ)言為工具,提高學(xué)生利用Java語(yǔ)言實(shí)現(xiàn)和驗(yàn)證算法的能力;④在理解掌握數(shù)據(jù)結(jié)構(gòu)、應(yīng)用軟件工程思想、熟練使用Java語(yǔ)言的同時(shí),還要培養(yǎng)嚴(yán)密的抽象邏輯思維能力。
上述實(shí)驗(yàn)?zāi)繕?biāo)師生都提出了更高的要求,為了更好地達(dá)到上述目標(biāo),并幫助學(xué)生在學(xué)習(xí)過程中充分發(fā)揮主觀能動(dòng)作用,圍繞課程在數(shù)據(jù)結(jié)構(gòu)、軟件開發(fā)、程序?qū)崿F(xiàn)、邏輯思維各個(gè)方面的目標(biāo),進(jìn)行了課程實(shí)驗(yàn)的設(shè)計(jì),主要包括切實(shí)可行的實(shí)驗(yàn)任務(wù)組織、科學(xué)合理的實(shí)驗(yàn)過程設(shè)計(jì)、結(jié)合多種方法的嚴(yán)格過程保障等方面,如圖2所示。
2實(shí)驗(yàn)任務(wù)組織
根據(jù)課程實(shí)驗(yàn)特點(diǎn)和目標(biāo),對(duì)實(shí)驗(yàn)任務(wù)進(jìn)行了精心組織,主要是針對(duì)不同基礎(chǔ)和層次的學(xué)生進(jìn)行了任務(wù)的劃分,如圖3所示。
2.1基本任務(wù)
對(duì)于所有的學(xué)生,不管其基礎(chǔ)或?qū)哟稳绾危急仨毻瓿梢欢ǖ幕救蝿?wù),那就是用程序驗(yàn)證各種邏輯結(jié)構(gòu)的基本實(shí)現(xiàn)和算法,在實(shí)驗(yàn)的總體結(jié)構(gòu)中實(shí)現(xiàn)函數(shù)的編寫、測(cè)試、調(diào)試、驗(yàn)證,通過這一驗(yàn)證過程達(dá)到加深理解各種數(shù)據(jù)結(jié)構(gòu)和算法、掌握基本教學(xué)內(nèi)容的目的,這也是傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)課程實(shí)驗(yàn)所要求的任務(wù)。
2.2基礎(chǔ)強(qiáng)化
部分學(xué)生學(xué)習(xí)基礎(chǔ)較差,特別是Java語(yǔ)言的編程能力不足,對(duì)類、接口、封裝、多態(tài)、方法調(diào)用等的認(rèn)識(shí)較模糊,需要在基本的Java語(yǔ)言以及基本的方法功能理解、方法編寫及調(diào)用等方面加強(qiáng)實(shí)驗(yàn),通過對(duì)基本數(shù)據(jù)結(jié)構(gòu)和算法與對(duì)應(yīng)程序的反復(fù)閱讀、編寫、測(cè)試等訓(xùn)練,達(dá)到提高對(duì)Java程序結(jié)構(gòu)、語(yǔ)法以及Java方法在程序設(shè)計(jì)中作用的認(rèn)識(shí)。
2.3能力提升
針對(duì)基礎(chǔ)較好、學(xué)習(xí)興趣較濃的學(xué)生,為提供其發(fā)揮能力的空間,有效提高其學(xué)習(xí)興趣,提出一些要求更高、具有一定挑戰(zhàn)性的任務(wù),要求能進(jìn)行分析、設(shè)計(jì)并實(shí)現(xiàn)、測(cè)試,包括:完成比教材里典型基本功能更強(qiáng)的拓展功能,開拓學(xué)生的思路,如統(tǒng)計(jì)線性表中給定值的元素個(gè)數(shù);使用已學(xué)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)完成一些擴(kuò)展任務(wù),提高學(xué)生分析問題、解決問題的能力,如統(tǒng)計(jì)二叉樹的結(jié)點(diǎn)個(gè)數(shù);靈活應(yīng)用編寫的方法,實(shí)現(xiàn)不同的功能要求,培養(yǎng)學(xué)生對(duì)實(shí)驗(yàn)總體結(jié)構(gòu)配置、方法外特性的認(rèn)識(shí),如利用隊(duì)列和堆棧實(shí)現(xiàn)單鏈表的逆序排列。
總之,在課程實(shí)驗(yàn)組織中,做到有對(duì)整體結(jié)構(gòu)加以介紹的說明;有給學(xué)生完成實(shí)驗(yàn)的思路提示;對(duì)有一定難度的任務(wù)還給出具有參考價(jià)值的實(shí)現(xiàn)作為參照。這樣,根據(jù)課程實(shí)驗(yàn)?zāi)繕?biāo)和學(xué)生的基礎(chǔ)、興趣設(shè)計(jì)客觀、可行的實(shí)驗(yàn)要求和過程,符合人們認(rèn)識(shí)事物的特點(diǎn),避免了因?yàn)橐箅y度太大挫傷學(xué)生的學(xué)習(xí)熱情。
3實(shí)驗(yàn)過程設(shè)計(jì)
如果僅僅依靠傳統(tǒng)的驗(yàn)證型實(shí)驗(yàn),學(xué)生只是將課本中算法的對(duì)應(yīng)程序敲入計(jì)算機(jī),運(yùn)行一下程序、驗(yàn)證一下結(jié)論而已,基本上沒有涉及到問題思考、分析分析、總體結(jié)構(gòu)設(shè)計(jì)、程序設(shè)計(jì)等軟件工程所強(qiáng)調(diào)的工作,而如果教師沒有嚴(yán)格要求、反復(fù)強(qiáng)調(diào)、嚴(yán)格考核,多數(shù)學(xué)生都不做預(yù)習(xí)準(zhǔn)備工作,更不用說養(yǎng)成分析、設(shè)計(jì)、比較和總結(jié)的習(xí)慣,結(jié)果是學(xué)生來作實(shí)驗(yàn)了,但不了解實(shí)驗(yàn)的目標(biāo)、流程、問題產(chǎn)生的原因,實(shí)驗(yàn)效果、課程學(xué)習(xí)效果大打折扣。
3.1實(shí)驗(yàn)過程的規(guī)范
首先嚴(yán)格規(guī)范實(shí)驗(yàn)流程,讓學(xué)生反復(fù)體會(huì)從接受任務(wù)到分析、設(shè)計(jì)、編碼、測(cè)試的軟件開發(fā)過程[5]。在最初的兩三個(gè)實(shí)驗(yàn)時(shí),由教師根據(jù)實(shí)驗(yàn)題目指導(dǎo)學(xué)生一步一步完成圖4所示內(nèi)容:①問題描述,即實(shí)驗(yàn)要解決問題的描述;②基本要求,即實(shí)驗(yàn)要達(dá)到的具體要求;③測(cè)試數(shù)據(jù),即設(shè)計(jì)能達(dá)到測(cè)試目的的測(cè)試數(shù)據(jù);④算法思想,即描述解決相應(yīng)問題的算法思想;⑤類劃分,即分析問題所需的類,并給出類的邏輯功能描述;⑥源程序,即有充分注釋的參考實(shí)現(xiàn)源程序清單;⑦測(cè)試情況,即程序的測(cè)試情況以及必要的分析和說明。由于數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)尚未要求進(jìn)行較強(qiáng)功能軟件的開發(fā),故上述過程中雖然涉及了軟件工程思想和軟件開發(fā)過程,但一般并不強(qiáng)調(diào)過分詳細(xì)的需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)等步驟,也不必要求提供詳細(xì)的使用手冊(cè)。在隨后的整個(gè)課程實(shí)驗(yàn)過程中,對(duì)學(xué)生嚴(yán)格要求、反復(fù)強(qiáng)調(diào)必須嚴(yán)格遵守圖4的實(shí)驗(yàn)過程,并采用抽查等方式保證其嚴(yán)格執(zhí)行。
3.2關(guān)注點(diǎn)的分離
為了將數(shù)據(jù)結(jié)構(gòu)與Java語(yǔ)言、軟件工程有效結(jié)合,要求在課程的實(shí)驗(yàn)過程中也始終與理論教學(xué)中一樣,按圖5所示的三個(gè)典型步驟來解決所遇到的數(shù)據(jù)結(jié)構(gòu)和算法問題:①抽象,即分析問題需求,抽象出一個(gè)解決該問題的適當(dāng)?shù)臄?shù)學(xué)模型(抽象數(shù)據(jù)類型ADT);②接口設(shè)計(jì),即對(duì)應(yīng)地設(shè)計(jì)一個(gè)規(guī)格說明來描述ADT應(yīng)支持的操作,并將這個(gè)規(guī)格說明用Java接口來表示;③實(shí)現(xiàn),即選擇合適的數(shù)據(jù)結(jié)構(gòu)和算法來實(shí)現(xiàn)上述Java接口,最后對(duì)各種不同實(shí)現(xiàn)的代價(jià)進(jìn)行分析和比較。這樣的步驟清楚地區(qū)分了ADT的接口與實(shí)現(xiàn),體現(xiàn)了軟件工程中分離關(guān)注點(diǎn)的重要原則[6],同時(shí)很好地利用了Java語(yǔ)言在抽象、封裝等方面的優(yōu)勢(shì)。
4實(shí)驗(yàn)保障措施
通過已有的實(shí)驗(yàn)過程發(fā)現(xiàn),僅有實(shí)驗(yàn)任務(wù)組織和實(shí)驗(yàn)過程設(shè)計(jì)是不夠的,還必須要有良好的動(dòng)手習(xí)慣培養(yǎng)、基本知識(shí)積累以及編程能力提高等作為保障措施,才能較好地達(dá)到所提出的課程實(shí)驗(yàn)?zāi)繕?biāo)。
4.1動(dòng)手習(xí)慣的培養(yǎng)
部分學(xué)生沒有動(dòng)手的習(xí)慣,實(shí)踐教學(xué)中應(yīng)注重培養(yǎng)學(xué)生的動(dòng)手習(xí)慣,特別是培養(yǎng)記錄、畫圖、打草稿等基本的動(dòng)手習(xí)慣,避免學(xué)生對(duì)知識(shí)把握不準(zhǔn)、似是而非。如在講解、演示或討論時(shí),讓學(xué)生跟隨教師動(dòng)手在草稿紙上畫圖、記錄,講解完立即就剛剛所學(xué)內(nèi)容的部分關(guān)鍵步驟再抽查學(xué)生重新講解,并要求輔以圖、表等(當(dāng)然抽查也可以在下一次課進(jìn)行),如果存在問題可以由其他同學(xué)糾正,最后由教師進(jìn)一步分析、總結(jié),讓學(xué)生深刻體會(huì)動(dòng)手習(xí)慣對(duì)知識(shí)學(xué)習(xí)所起的鞏固作用。
4.2簡(jiǎn)單知識(shí)的積累
部分學(xué)生不注重積累那些功能簡(jiǎn)單的小算法,實(shí)踐教學(xué)中教師應(yīng)注重培養(yǎng)學(xué)生對(duì)簡(jiǎn)單知識(shí)的理解、記憶、積累,經(jīng)常抽查,在面對(duì)那些較為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法時(shí),充分分析、分解其中涉及到的基本知識(shí)點(diǎn)之間、算法之間的聯(lián)系,提示學(xué)生注意類的小型化、原子化,只有長(zhǎng)期注重對(duì)基本知識(shí)點(diǎn)的理解、記憶和積累,才能避免遇到問題時(shí)無(wú)從下手,避免理論與實(shí)踐脫節(jié)。
4.3編程能力的提高
由于前導(dǎo)課程如C語(yǔ)言、Java等掌握不好、認(rèn)識(shí)不深、基礎(chǔ)不牢,不少學(xué)生編程能力較弱,缺乏把數(shù)據(jù)結(jié)構(gòu)和算法轉(zhuǎn)化成代碼實(shí)現(xiàn)的能力,部分學(xué)生甚至不能把一些簡(jiǎn)單的算法轉(zhuǎn)換成完整的程序,以及缺乏基本的排錯(cuò)能力,都大大影響了這些學(xué)生學(xué)習(xí)這門課的積極性和效果。
為了使實(shí)驗(yàn)過程清晰并降低實(shí)現(xiàn)的難度、提高可操作性,要求學(xué)生一開始所設(shè)計(jì)的ADT不一定功能很完備,只要具有那些典型的、能初步表現(xiàn)問題需求的基本功能即可,隨著上述步驟的一作結(jié)束,根據(jù)問題的需求,進(jìn)一步完善現(xiàn)有的ADT及其實(shí)現(xiàn)。讓學(xué)生既在運(yùn)用中逐步體會(huì)了軟件工程原理和應(yīng)用,又對(duì)通過不斷運(yùn)用Java的基本知識(shí),提高了編程能力。
另外,加強(qiáng)現(xiàn)場(chǎng)指導(dǎo)、交流、溝通,及時(shí)發(fā)現(xiàn)學(xué)生的困難,有針對(duì)性地幫助學(xué)生提高認(rèn)識(shí)、解決問題,以及實(shí)驗(yàn)完成后進(jìn)行分析總結(jié),集中討論實(shí)驗(yàn)中的一些普遍問題,都是提升實(shí)驗(yàn)效果的有力措施。
5結(jié)語(yǔ)
基于實(shí)驗(yàn)在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的重要地位,精心的任務(wù)組織、科學(xué)的過程設(shè)計(jì)和嚴(yán)格的保障措施是十分必要的。一段時(shí)間的運(yùn)行表明,上述做法對(duì)于促進(jìn)學(xué)生在學(xué)習(xí)過程中充分發(fā)揮主觀能動(dòng)作用,增強(qiáng)對(duì)數(shù)據(jù)對(duì)象特征的理解、數(shù)據(jù)組織方法的掌握、軟件開發(fā)過程的熟悉、程序?qū)崿F(xiàn)技能的培養(yǎng)以及抽象邏輯思維能力的提高等方面都起到了積極的作用。
參考文獻(xiàn):
[1] 楊紅賓. 數(shù)據(jù)結(jié)構(gòu)課程改革探討[J]. 教育與職業(yè),2009(32):131-132.
[2] 沈根海. 高職院校數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)教學(xué)的探索[J]. 電腦知識(shí)與技術(shù),2008(33):1427-1428.
[3] 張濟(jì)礎(chǔ),楊亞莉. 高職院校“數(shù)據(jù)結(jié)構(gòu)Java語(yǔ)言描述”課程的實(shí)驗(yàn)設(shè)計(jì)[J]. 計(jì)算機(jī)教育,2010(1):64-65.
[4] 楊曉波. 淺析數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中的實(shí)驗(yàn)環(huán)節(jié)[J]. 甘肅高師學(xué)報(bào),2003(5):49-50.
[5] 朱戰(zhàn)立. 數(shù)據(jù)結(jié)構(gòu)Java語(yǔ)言描述[M]. 北京:清華大學(xué)出版社,2005:295-299.
[6] 周大慶. 實(shí)用數(shù)據(jù)結(jié)構(gòu)教程Java語(yǔ)言描述[M]. 北京:人民郵電出版社,2007:1-2.
[7] WEISS M A. Data structure and problem solving using Java[M]. London:Pearson Education,2006:1-5.
Experimental Design of Data Structure Course Using Java
LI Gang, HUANG Tongyuan, ZHANG Xiaochuan
(School of Computer, Chongqing University of Technology, Chongqing 400050, China)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文4
關(guān)鍵詞:迭代增化增量模型;工作任務(wù);數(shù)據(jù)結(jié)構(gòu)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:B
1引言
“數(shù)據(jù)結(jié)構(gòu)”是高職學(xué)院計(jì)算機(jī)專業(yè)的核心課程,是程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),為后繼專業(yè)課的學(xué)習(xí)提供必要的基礎(chǔ)知識(shí)、基本理論和方法。教學(xué)目的包括:熟練掌握基本的數(shù)據(jù)結(jié)構(gòu)和算法;能應(yīng)用重要的算法策略和分析方法;在實(shí)際的工程設(shè)計(jì)中應(yīng)用算法。
“數(shù)據(jù)結(jié)構(gòu)”是一門技術(shù)性很強(qiáng)的課程,以高職學(xué)生的思維習(xí)慣和抽象思維能力,在有限的時(shí)間里很難對(duì)課程的原理和方法的應(yīng)用有清楚的認(rèn)識(shí)。他們學(xué)習(xí)更注重知識(shí)和理論的應(yīng)用性,而傳統(tǒng)的實(shí)驗(yàn)課缺少有實(shí)用價(jià)值的工程應(yīng)用設(shè)計(jì),內(nèi)容枯燥而缺乏創(chuàng)造性,學(xué)生的主動(dòng)性和積極性不高。
為了將嚴(yán)謹(jǐn)抽象的理論教學(xué)延伸至現(xiàn)實(shí)生活中的問題情境,提高學(xué)生將數(shù)據(jù)結(jié)構(gòu)中的知識(shí)應(yīng)用于實(shí)際問題的能力,本文首先提出了基于迭代增量的開發(fā)方式設(shè)計(jì)實(shí)踐學(xué)習(xí)情境,從接受任務(wù)到任務(wù)完成都遵循“需求分析數(shù)據(jù)結(jié)構(gòu)/算法設(shè)計(jì)編碼實(shí)現(xiàn)測(cè)試”這一基本的工作流程,然后根據(jù)數(shù)據(jù)結(jié)構(gòu)課程知識(shí)體系結(jié)構(gòu)設(shè)計(jì)了具有連續(xù)性和序列性的實(shí)驗(yàn)任務(wù),進(jìn)而分析各個(gè)任務(wù)如何在迭代增量過程具體實(shí)施操作,最后對(duì)比傳統(tǒng)的實(shí)驗(yàn)教學(xué)來評(píng)價(jià)該實(shí)踐方法的有效性。
2實(shí)驗(yàn)教學(xué)過程設(shè)計(jì)
迭代增量模型是軟件開發(fā)過程中常用的開發(fā)模型,將其引入數(shù)據(jù)結(jié)構(gòu)的實(shí)踐教學(xué)中設(shè)置教學(xué)場(chǎng)景,使實(shí)踐教學(xué)處于開放狀態(tài),不拘泥課堂內(nèi)外的界限,也不受制于數(shù)據(jù)結(jié)構(gòu)課程通常的總課時(shí)數(shù)。將設(shè)計(jì)的30個(gè)實(shí)驗(yàn)任務(wù)平鋪于整個(gè)學(xué)期,每個(gè)任務(wù)從接受到任務(wù)完成都遵循“需求分析數(shù)據(jù)結(jié)構(gòu)/算法設(shè)計(jì)編碼實(shí)現(xiàn)測(cè)試”這一基本的工作流程,如圖1所示。
從圖中可知,迭代增量的迭代是通過對(duì)核心開發(fā)活動(dòng)的重復(fù)應(yīng)用,包括了對(duì)問題解決方案定義以及解決方案實(shí)現(xiàn)的連續(xù)細(xì)化,其中的增量是指:軟件開發(fā)過程中,隨著數(shù)據(jù)結(jié)構(gòu)理論課程知識(shí)由少至多的學(xué)習(xí),在一次迭代運(yùn)行的周期中,學(xué)生對(duì)問題的理解以及解決方案提供的功能均會(huì)增長(zhǎng),先開發(fā)每個(gè)實(shí)驗(yàn)任務(wù)的主要功能模塊,再開發(fā)次要功能模塊,逐步完善,最終開發(fā)出相對(duì)完整的符合需求的軟件作品。這樣將整個(gè)實(shí)踐的全過程都融入在一系列的工程任務(wù)中,在實(shí)踐開發(fā)中,其中連續(xù)地組織起來數(shù)個(gè)或更多的應(yīng)用,以構(gòu)成一個(gè)完整的項(xiàng)目。
學(xué)生按照上面的開發(fā)模型,在實(shí)驗(yàn)課程中引入軟件工程的原理,按照規(guī)范的開發(fā)過程學(xué)習(xí)和應(yīng)用數(shù)據(jù)結(jié)構(gòu)原理和方法,故而開展小規(guī)模軟件數(shù)據(jù)管理系統(tǒng)調(diào)研,設(shè)計(jì),編碼測(cè)試工作。另外根據(jù)“軟件技術(shù)應(yīng)用崗位職業(yè)標(biāo)準(zhǔn)”,分析工作過程中的一系列真實(shí)職業(yè)角色,指導(dǎo)學(xué)生按照“需求分析員架構(gòu)架構(gòu)師編碼員測(cè)試員”等不同角色的轉(zhuǎn)換在迭代增量過程中完成任務(wù),著力培養(yǎng)學(xué)生的職業(yè)能力。
3實(shí)驗(yàn)教學(xué)內(nèi)容的組織與設(shè)計(jì)
本課程實(shí)踐教學(xué)內(nèi)容的組織、安排的基本思路是遵循迭代增量的開發(fā)基本流程,以真實(shí)工作任務(wù)及其工作過程為依據(jù)整合、序化教學(xué)內(nèi)容,精心設(shè)計(jì)了30個(gè)學(xué)習(xí)性工作任務(wù)。從課程教學(xué)內(nèi)容組織而言,考慮對(duì)于正在發(fā)生迅速變革的計(jì)算機(jī)領(lǐng)域,選擇那些相對(duì)穩(wěn)定、長(zhǎng)期有用的、對(duì)應(yīng)用領(lǐng)域必不可少的知識(shí)結(jié)構(gòu)作為實(shí)驗(yàn)任務(wù)設(shè)計(jì)的內(nèi)容。課程教學(xué)內(nèi)容和學(xué)習(xí)工作任務(wù)的總體組織安排如圖2所示。
其中,課程教學(xué)內(nèi)容共計(jì)14個(gè)專題模塊與30個(gè)學(xué)習(xí)工作任務(wù)交叉對(duì)應(yīng),全部任務(wù)將所有知識(shí)結(jié)構(gòu)迭代覆蓋,各個(gè)工作任務(wù)按教學(xué)內(nèi)容的先后依照進(jìn)度逐一展開。30個(gè)
結(jié)合具體問題構(gòu)造的軟件設(shè)計(jì)工作任務(wù)經(jīng)常會(huì)要求學(xué)生“用特定的數(shù)據(jù)結(jié)構(gòu)/算法”來解決某個(gè)問題,學(xué)生需要撰寫詳細(xì)的設(shè)計(jì),描述現(xiàn)在要解決的問題和最后的結(jié)果。對(duì)于算法的描述,應(yīng)該按照4點(diǎn)要求執(zhí)行:
(1) 算法的中英文描述,提供偽代碼(pseudocode)。
(2) 最少以一個(gè)工作例子或圖表來更明確的顯示算法怎樣運(yùn)作。
(3) 算法正確性的一個(gè)證明(或表示)。
(4) 算法執(zhí)行時(shí)間的分析。
這樣數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)這一核心工作流程尤為重要,教師必須加強(qiáng)的指導(dǎo)力度,做到邊講邊練、邊學(xué)邊做。而在需求分析過程中,教師帶領(lǐng)學(xué)生深入現(xiàn)實(shí)實(shí)際獲取和調(diào)研需求,學(xué)生會(huì)跟隨理論課知識(shí)進(jìn)一步學(xué)習(xí)和調(diào)研,增加需求,迭代需求分析這一核心工作過程。每個(gè)任務(wù)持續(xù)的時(shí)間和任務(wù)本身的規(guī)模有關(guān),如某個(gè)超市購(gòu)物系統(tǒng)會(huì)持續(xù)到學(xué)期末,如后期學(xué)習(xí)的排序,查找會(huì)在系統(tǒng)中得到應(yīng)用設(shè)計(jì),整個(gè)迭代的過程會(huì)持續(xù)至數(shù)據(jù)結(jié)構(gòu)課程全部結(jié)束,這樣基于迭代增量過程就能發(fā)揮更大作用。而編碼和測(cè)試過程則以學(xué)生為主導(dǎo),自主自覺地根據(jù)前期的分析和設(shè)計(jì)展開具體的實(shí)現(xiàn)過程。在此過程中,學(xué)生覺得編碼過程不再困難,而有想早點(diǎn)實(shí)現(xiàn)以見其效的積極想法。對(duì)每個(gè)任務(wù),以軟件工程流程或者角色為軸線的迭代,學(xué)生在教師的指導(dǎo)下參與所有的工作活動(dòng),按照如圖3進(jìn)行多次迭代開發(fā)設(shè)計(jì)。
根據(jù)迭代增量的工程流程,我們篩選了主要的項(xiàng)目活動(dòng):需求分析、分析設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試、項(xiàng)目管理。理論上,每種軟件工程流程都會(huì)對(duì)應(yīng)一個(gè)單獨(dú)的計(jì)劃,而且每個(gè)軟件工程流程會(huì)定義自己的迭代周期和迭代次數(shù)。教師的重要職責(zé)之一就是識(shí)別和管理各個(gè)任務(wù)與知識(shí)結(jié)構(gòu)的依賴關(guān)系,保證各個(gè)設(shè)計(jì)任務(wù)的順利進(jìn)行。此外,在考核方面重點(diǎn)放在過程考核,強(qiáng)調(diào)素質(zhì)與能力,不再進(jìn)行單獨(dú)的課程考核,按照工作任務(wù)評(píng)估表對(duì)學(xué)生的工作過程進(jìn)行評(píng)價(jià),課程成績(jī)計(jì)算按任務(wù)的難度工作量規(guī)模大小分配權(quán)重,進(jìn)行最后總評(píng),直至完成整個(gè)工作任務(wù)的實(shí)施。
4實(shí)踐教學(xué)評(píng)價(jià)與結(jié)論
我院從2005年開始在計(jì)算機(jī)專業(yè)采用基于迭代化的增量軟件開發(fā)方式開放數(shù)據(jù)結(jié)構(gòu)的實(shí)驗(yàn)教學(xué),通過實(shí)驗(yàn)對(duì)比方法,將3年制計(jì)算機(jī)專業(yè)學(xué)生分為實(shí)驗(yàn)組和對(duì)照組,從定性和定量?jī)蓚€(gè)方面科學(xué)地觀察實(shí)踐課程的教學(xué)效果。通過學(xué)生數(shù)據(jù)結(jié)構(gòu)課程考試成績(jī)的對(duì)比分析、問卷調(diào)查以及實(shí)踐成果的對(duì)比分析,匯總情況如表1所示:
從上表可知,實(shí)驗(yàn)組學(xué)生在基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)系統(tǒng)知識(shí)學(xué)習(xí)、分析問題和解決問題能力以及后期專業(yè)知識(shí)的學(xué)習(xí)方面均具有更好的效果。此外,后期的問卷調(diào)查結(jié)果也表明,實(shí)驗(yàn)班學(xué)生對(duì)課程的總體印象在優(yōu)良以上的占83%,教師對(duì)“實(shí)施基于迭代增量的實(shí)踐課程總體印象”表示“較好”以上的為81%。
目前,數(shù)據(jù)結(jié)構(gòu)課程實(shí)驗(yàn)課程的設(shè)計(jì)和實(shí)施還存在著一定問題,如同一任務(wù)體系間的相互融合貫通還不夠,在教學(xué)方法上的改革還不足等;將來還需要進(jìn)一步改進(jìn)迭代增量法在教學(xué)情境的實(shí)施應(yīng)用,研究和開發(fā)更多實(shí)用性實(shí)踐課程工作任務(wù),發(fā)揮其在后期專業(yè)課程學(xué)習(xí)中的延伸效果,持續(xù)提高高職計(jì)算機(jī)學(xué)生的專業(yè)和工程應(yīng)用設(shè)計(jì)能力。
參考文獻(xiàn):
[1] [美]沙赫查. 面向?qū)ο筌浖こ蘙M]. 黃林鵬,T小輝,伍建j,譯. 北京:機(jī)械工業(yè)出版社,2009.
[2] 殷人昆. 數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcC++語(yǔ)言描述)[M]. 北京:機(jī)械工業(yè)出版社,2007.
[3] [美]B.S.布盧姆. 教育目標(biāo)分類學(xué)[M]. 羅黎輝,譯. 上海:華東師范大學(xué)出版社,1986.
[4] 劉韶濤,王寧生. 軟件體系結(jié)構(gòu)的迭代增量構(gòu)建方法[J]. 計(jì)算機(jī)應(yīng)用研究,2003(20).
[5] 羅偉,張翠英. 對(duì)高職院校實(shí)踐教學(xué)中“關(guān)鍵能力”培養(yǎng)的探討[J]. 職業(yè)教育研究,2008(3).
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文5
【關(guān)鍵詞】數(shù)據(jù)結(jié)構(gòu);知識(shí)體系;教學(xué)設(shè)計(jì)
1 課程的地位與作用
《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的核心專業(yè)基礎(chǔ)課程,是計(jì)算機(jī)程序設(shè)計(jì)的重要理論和實(shí)踐基礎(chǔ),是計(jì)算機(jī)理論與技術(shù)的重要基石?!稊?shù)據(jù)結(jié)構(gòu)》上承高級(jí)語(yǔ)言程序設(shè)計(jì),下啟算法分析與設(shè)計(jì),是計(jì)算機(jī)科學(xué)與技術(shù)人才素質(zhì)框架中的脊梁骨,對(duì)學(xué)生能力培養(yǎng)至關(guān)重要,向來是計(jì)算機(jī)本科教學(xué)的重中之重。調(diào)查表明已畢業(yè)的學(xué)生通過他們的工作實(shí)踐認(rèn)為《數(shù)據(jù)結(jié)構(gòu)》是最有用的課程之一,這也從另一方面說明了該課程的重要性。
計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的培養(yǎng)目標(biāo)之一是掌握計(jì)算機(jī)科學(xué)與技術(shù)的基本理論、計(jì)算機(jī)軟/硬件基本知識(shí)及應(yīng)用技術(shù),《數(shù)據(jù)結(jié)構(gòu)》在培養(yǎng)目標(biāo)的實(shí)現(xiàn)中具有舉足輕重的作用,是理解計(jì)算機(jī)科學(xué)與程序開發(fā)技術(shù)的關(guān)鍵課程。作為一門重要的專業(yè)必修課程,《數(shù)據(jù)結(jié)構(gòu)》課程既是對(duì)以往課程的深入和擴(kuò)展,也是為將來更加深入地學(xué)習(xí)其他專業(yè)課程打下基礎(chǔ)。課程中所學(xué)習(xí)的排序問題的算法,以及基本的樹、圖等數(shù)據(jù)結(jié)構(gòu),是計(jì)算機(jī)科學(xué)的基本功。B+樹等高級(jí)數(shù)據(jù)結(jié)構(gòu),也是數(shù)據(jù)庫(kù)、操作系統(tǒng)、編譯原理、計(jì)算機(jī)網(wǎng)絡(luò)等后續(xù)課程的基礎(chǔ)。《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)專業(yè)考研的統(tǒng)考課程,也是很多大賽(“藍(lán)橋杯”、ACM等)必涉及的知識(shí)。
《數(shù)據(jù)結(jié)構(gòu)》與其它課程關(guān)系如圖1所示。
圖1 《數(shù)據(jù)結(jié)構(gòu)》與其它課程關(guān)系
《數(shù)據(jù)結(jié)構(gòu)》在培養(yǎng)目標(biāo)中的作用如圖2所示。
圖2 《數(shù)據(jù)結(jié)構(gòu)》在培養(yǎng)目標(biāo)中的作用
2 課程的教學(xué)目標(biāo)與主要內(nèi)容
2.1 課程的教學(xué)目標(biāo)
學(xué)習(xí)本課程后,應(yīng)達(dá)到下列基本要求:
(1)理解數(shù)據(jù)結(jié)構(gòu)的基本概念;
(2)熟練掌握線性表、棧、隊(duì)列、樹、圖等常用數(shù)據(jù)結(jié)構(gòu)的基本運(yùn)算的實(shí)現(xiàn)及應(yīng)用;
(3)熟練掌握排序和查找的常用算法及應(yīng)用;
(4)能夠?qū)λ惴ㄟM(jìn)行時(shí)間復(fù)雜度度、空間復(fù)雜度的分析;
(5)培養(yǎng)學(xué)生分析數(shù)據(jù)、組織數(shù)據(jù)的能力,能夠根據(jù)實(shí)際問題來選擇合適的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)有效的算法。
2.2 教材與主要參考資料
教材
耿國(guó)華《數(shù)據(jù)結(jié)構(gòu)(用C語(yǔ)言描述)》,高等教育出版社,2011年
教材選擇的依據(jù):
(1)該教材跟蹤技術(shù)發(fā)展需要,體系科學(xué),是“十一五”國(guó)家級(jí)規(guī)劃教材。
(2)該教材理論的闡述由淺入深、通俗易懂。
(3)該教材理論結(jié)合實(shí)際,配有大量的例題、習(xí)題與實(shí)習(xí)題。
主要參考資料
[1]嚴(yán)蔚敏,吳偉民《數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》,清華大學(xué)出版社,2006年
[2]張銘,王騰蛟,趙海燕《數(shù)據(jù)結(jié)構(gòu)與算法》,高等教育出版社,2008年
[3]朱戰(zhàn)立《數(shù)據(jù)結(jié)構(gòu)――使用C語(yǔ)言(第4版)》,電子工業(yè)出版社,2009年
[4]王曉東《數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).》電子工業(yè)出版社,2007年
[5]西北大學(xué)數(shù)據(jù)結(jié)構(gòu)精品課程網(wǎng)站
http//:/datastr
[6]北大數(shù)據(jù)結(jié)構(gòu)與算法課程網(wǎng)站
http:///pkujpk/course/sjjg/
[7]洛陽(yáng)理工學(xué)院數(shù)據(jù)結(jié)構(gòu)精品課程網(wǎng)站
http//:/sjjg
[8]洛陽(yáng)理工學(xué)院數(shù)據(jù)結(jié)構(gòu)精品資源共享課程網(wǎng)站
http//:/ds
2.3 知識(shí)體系
《數(shù)據(jù)結(jié)構(gòu)》知識(shí)體系可分為分為三大塊,如圖3所示。
圖3 《數(shù)據(jù)結(jié)構(gòu)》知識(shí)體系
數(shù)據(jù)結(jié)構(gòu)課程的基本知識(shí)模塊是以數(shù)據(jù)的邏輯結(jié)構(gòu)為主線,順序介紹線性結(jié)構(gòu)(線性表、棧、隊(duì)列、串、數(shù)組、廣義表)、樹形結(jié)構(gòu)、圖結(jié)構(gòu)。在介紹每種數(shù)據(jù)結(jié)構(gòu)時(shí),再討論其存儲(chǔ)結(jié)構(gòu)以及相關(guān)的算法。在介紹完基本的數(shù)據(jù)結(jié)構(gòu)及其存儲(chǔ)結(jié)構(gòu)和相關(guān)的算法后,介紹了兩種常用技術(shù):查找和排序。
3 課程教學(xué)內(nèi)容安排
3.1 課程重點(diǎn)、難點(diǎn)
重點(diǎn):線性表、棧、隊(duì)列、二叉樹、圖典型數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作的實(shí)現(xiàn)方法,各種典型的排序和查找算法思想。
難點(diǎn):各種數(shù)據(jù)結(jié)構(gòu)的操作實(shí)現(xiàn)和應(yīng)用
第1章是對(duì)數(shù)據(jù)結(jié)構(gòu)課程的認(rèn)識(shí),基本概念比較多,概念要講清楚、準(zhǔn)確,第一章要通過豐富的例子講解如何分析算法時(shí)間復(fù)雜度,這是貫穿整門課程的內(nèi)容,也是本課程的一個(gè)難點(diǎn),第2章是整個(gè)課程的重要基礎(chǔ),要講得十分詳細(xì),為后面的章節(jié)打下良好的基礎(chǔ),第3章的棧與遞歸的實(shí)現(xiàn)是本書的一個(gè)難點(diǎn),要通過例子講透,并且在第6章還要進(jìn)一步地講遞歸到非遞歸的轉(zhuǎn)換。第四章內(nèi)容較簡(jiǎn)單,而且學(xué)生在高級(jí)語(yǔ)言程序設(shè)計(jì)中學(xué)習(xí)過字符串,因此留給學(xué)生自學(xué),也可以培養(yǎng)學(xué)生的自學(xué)能力。第五章數(shù)組和廣義表一般講解即可。第6章的二叉樹要詳細(xì)講解,第7章的幾個(gè)關(guān)于圖的算法較難,要結(jié)合例子講解,第8章中的難點(diǎn)是平衡二叉樹的調(diào)整和B樹,要通過例子把算法的思想講清楚,使學(xué)生能實(shí)際操作。第9章要把各種排序的思想、特點(diǎn)講清楚,特別是較難的希爾排序、快速排序、堆排序、基數(shù)排序一定要結(jié)合實(shí)例講解。
3.2 課時(shí)分配
表1 總課時(shí):72;理論授課:58,實(shí)驗(yàn):14
4 課程實(shí)踐環(huán)節(jié)
數(shù)據(jù)結(jié)構(gòu)是與實(shí)踐緊密結(jié)合的課程,學(xué)生學(xué)習(xí)的理論必須經(jīng)過大量的實(shí)踐才能更好的掌握,因此必須強(qiáng)化實(shí)踐教學(xué)。數(shù)據(jù)結(jié)構(gòu)實(shí)踐分兩部分:一部分是隨課程進(jìn)行的實(shí)驗(yàn),另一部分是課程結(jié)束后為期一周的課程設(shè)計(jì)。通過合理、有效地設(shè)計(jì)上機(jī)題目,改進(jìn)實(shí)驗(yàn)考核方式,調(diào)動(dòng)學(xué)生的積極性,啟發(fā)引導(dǎo)學(xué)生掌握基礎(chǔ)理論并能創(chuàng)新應(yīng)用,增強(qiáng)學(xué)生綜合運(yùn)用有關(guān)知識(shí)的能力。
實(shí)驗(yàn)內(nèi)容包括六個(gè)實(shí)驗(yàn)項(xiàng)目,分別為:線性表的基本操作(2學(xué)時(shí)),棧的基本操作(2學(xué)時(shí)),隊(duì)列的基本操作(2學(xué)時(shí)),二叉樹的建立及遍歷(2學(xué)時(shí)),圖的遍歷的實(shí)現(xiàn)(2學(xué)時(shí)),宿舍管理查詢系統(tǒng)(4學(xué)時(shí))。其中宿舍管理查詢系統(tǒng)實(shí)驗(yàn)為三性實(shí)驗(yàn)。
課程設(shè)計(jì)是課程結(jié)束后進(jìn)行的很重要的實(shí)踐環(huán)節(jié),本課程課程設(shè)計(jì)給出14個(gè)題目,這些題目都是綜合性的,學(xué)生可任選一題,完成后要寫出課程設(shè)計(jì)報(bào)告。通過課程設(shè)計(jì),使學(xué)生進(jìn)一步理解和掌握所學(xué)各種基本知識(shí),培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問題的能力;訓(xùn)練學(xué)生用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),使學(xué)生具備軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。
學(xué)生完成實(shí)驗(yàn)后,不僅要求學(xué)生提交高質(zhì)量的規(guī)范的實(shí)驗(yàn)報(bào)告,還要引導(dǎo)學(xué)生互相交流,開闊視野。好的實(shí)驗(yàn)作業(yè)要放到班級(jí)公共郵箱里和所有學(xué)生共享。
5 課程的建設(shè)情況
5.1 課程資源情況
該課程教學(xué)文件完備。通過多年的教學(xué),積累了必要的一些輔助教學(xué)資料(包括教學(xué)參考書、參考課件、聲像、影像等),并且使用效果良好。補(bǔ)充的學(xué)習(xí)資料有:
(1)教學(xué)網(wǎng)站:http:///sjjg/
http:///ds/
(2)搜集了大量探討數(shù)據(jù)結(jié)構(gòu)理論與算法、介紹學(xué)科前沿動(dòng)態(tài)的中、英文學(xué)術(shù)論文和碩、博論文,對(duì)其分類整理后在課程教學(xué)網(wǎng)站上提供下載鏈接,以供學(xué)生深入研究、學(xué)習(xí);
(3)自編《數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書》;
(4)多媒體電子教案的紙制版和網(wǎng)絡(luò)版;
(5)數(shù)據(jù)結(jié)構(gòu)與課程實(shí)驗(yàn)指導(dǎo)書的紙制版和網(wǎng)絡(luò)版;
(6)自編的算法演示器;
(7)Flash課件和Flash算法演示;
(8)圖書館內(nèi),國(guó)外優(yōu)秀的經(jīng)典教材。
5.2 實(shí)驗(yàn)實(shí)習(xí)條件
所有實(shí)驗(yàn)在計(jì)算機(jī)系機(jī)房進(jìn)行,機(jī)房現(xiàn)有的實(shí)驗(yàn)平臺(tái)功能齊全,課程中所涉及的實(shí)驗(yàn)項(xiàng)目均可在平臺(tái)上完成。目前課程實(shí)驗(yàn)大綱中所列的實(shí)驗(yàn)開出率達(dá)到100%,實(shí)驗(yàn)教學(xué)效果良好。
5.3 課程成果
該課程2010年被評(píng)為河南省級(jí)精品課程,2012河南省級(jí)精品資源課程。
6 教學(xué)設(shè)計(jì)
《數(shù)據(jù)結(jié)構(gòu)》是一門理論與實(shí)踐相結(jié)合的課程。由于理論的抽象性,學(xué)生難以建立起數(shù)據(jù)結(jié)構(gòu)的相應(yīng)算法概念,容易產(chǎn)生畏懼和茫然的情緒。因此教學(xué)中在積極引導(dǎo)學(xué)生、啟發(fā)學(xué)生,激發(fā)學(xué)生學(xué)習(xí)的積極性。教學(xué)以課堂講授為主,同時(shí)借助網(wǎng)絡(luò)教學(xué)平臺(tái),拓展課堂講授的相關(guān)知識(shí),便于同學(xué)自主學(xué)習(xí)、鞏固課堂所學(xué)內(nèi)容。另外,組織獨(dú)立習(xí)題課,針對(duì)學(xué)生作業(yè)中出現(xiàn)的典型問題進(jìn)行深入探討。
在教學(xué)中要貫徹“以理論學(xué)習(xí)為主線,以課程實(shí)驗(yàn)、課程設(shè)計(jì)為補(bǔ)充”的教學(xué)思想。
6.1 精心組織教學(xué)內(nèi)容
分析學(xué)生的需求和現(xiàn)實(shí),同時(shí)緊緊抓住教學(xué)目的,參考相關(guān)院校的教材和教學(xué)計(jì)劃,取長(zhǎng)補(bǔ)短,參考考研大綱、軟考大綱,對(duì)課程的內(nèi)容進(jìn)行嚴(yán)格的篩選,刪除一些較深且應(yīng)用不是很廣泛的內(nèi)容,對(duì)于重點(diǎn)的內(nèi)容要精講、細(xì)講,而對(duì)于有些較簡(jiǎn)單且與先修課程交叉的內(nèi)容(如字符串與數(shù)組),就粗講,甚至可以留給學(xué)生去自學(xué)。這樣重點(diǎn)突出,簡(jiǎn)潔明了。在課程內(nèi)容的安排上由淺入深,循序漸進(jìn)。對(duì)每種數(shù)據(jù)結(jié)構(gòu)都按三個(gè)層次來組織教學(xué)內(nèi)容,并且把這三個(gè)層次的思想貫穿于數(shù)據(jù)結(jié)構(gòu)教學(xué)的各個(gè)環(huán)節(jié)。第一個(gè)層次,基本概念、方法,這是最基本的內(nèi)容,學(xué)生必須掌握,在學(xué)生很好地掌握了這個(gè)層次的內(nèi)容后,可進(jìn)入第二個(gè)層次,基本概念、知識(shí)的簡(jiǎn)單應(yīng)用,這一層次是對(duì)基本概念、知識(shí)加深理解,這個(gè)層次學(xué)生必須達(dá)到。第三個(gè)層次就是基本概念、方法的深入應(yīng)用,把所學(xué)的知識(shí)、方法串起來靈活運(yùn)用。要達(dá)到這個(gè)層次,需經(jīng)過大量的訓(xùn)練才行。
6.2 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)課程與其先修和后續(xù)課程的無(wú)縫銜接
程序設(shè)計(jì)語(yǔ)言(如C語(yǔ)言)是本課程的一門非常重要的先修課程,數(shù)據(jù)庫(kù)原理、編譯原理、操作系統(tǒng)是該課程的后續(xù)課程,這些課程不能各自為政,而要無(wú)縫銜接,教這些課程的老師要互相交流,這樣在講程序設(shè)計(jì)語(yǔ)言時(shí)可以有的放矢的把和數(shù)據(jù)結(jié)構(gòu)聯(lián)系緊密的內(nèi)容預(yù)先告知學(xué)生,這樣學(xué)生就會(huì)對(duì)相關(guān)知識(shí)印象深刻,到數(shù)據(jù)結(jié)構(gòu)課中就很容易用的得心應(yīng)手。在數(shù)據(jù)結(jié)構(gòu)課中講到各種后續(xù)課程中用到的數(shù)據(jù)結(jié)構(gòu)時(shí)也告訴學(xué)生,并且在后續(xù)課程中用到相關(guān)數(shù)據(jù)結(jié)構(gòu)時(shí)提醒學(xué)生這是這種數(shù)據(jù)結(jié)構(gòu)在本課程中的應(yīng)用。這樣使學(xué)生的知識(shí)一脈相承,使學(xué)生在學(xué)習(xí)各門課程時(shí)把知識(shí)融會(huì)貫通。
6.3 精講多練,加強(qiáng)實(shí)踐環(huán)節(jié),培養(yǎng)學(xué)生分析問題解決問題的能力
數(shù)據(jù)結(jié)構(gòu)既有大量的理論又是實(shí)踐性很強(qiáng)的課程,學(xué)生要很好地掌握這門課,必須要有一定的理論知識(shí),又要經(jīng)過大量的上機(jī)實(shí)踐。因此,針對(duì)應(yīng)用型本科的特點(diǎn),在教學(xué)過程中,即注重理論,又重視實(shí)踐,加大上機(jī)實(shí)踐的力度。實(shí)踐由與理論課同時(shí)進(jìn)行的上機(jī)實(shí)驗(yàn)和理論課講授完畢后的課程設(shè)計(jì)兩部分組成。對(duì)所學(xué)的每一部分內(nèi)容都要要求學(xué)生完成相應(yīng)的實(shí)驗(yàn)習(xí)題。整個(gè)實(shí)踐過程要結(jié)合教學(xué)進(jìn)度與學(xué)生的實(shí)際情況,制定實(shí)踐的內(nèi)容。每部分的實(shí)驗(yàn)習(xí)題必須精心挑選,和上述三個(gè)層次對(duì)應(yīng),分為基礎(chǔ)與驗(yàn)證型實(shí)驗(yàn)、設(shè)計(jì)與綜合型實(shí)驗(yàn),開發(fā)與創(chuàng)新型實(shí)驗(yàn)。既要把基本知識(shí)掌握好,又要會(huì)靈活運(yùn)用?;A(chǔ)與驗(yàn)證型實(shí)驗(yàn)是基本的、較簡(jiǎn)單的題目,主要結(jié)合課堂理論教學(xué)內(nèi)容展開,學(xué)生可以對(duì)在課堂上學(xué)到的基本算法進(jìn)行驗(yàn)證;設(shè)計(jì)與綜合型實(shí)驗(yàn)是具有挑戰(zhàn)性的較難的新穎有趣的題目,讓學(xué)生充分利用所學(xué)的理論知識(shí)進(jìn)行相對(duì)較復(fù)雜的應(yīng)用設(shè)計(jì),培養(yǎng)學(xué)生綜合能力;開發(fā)與創(chuàng)新型實(shí)驗(yàn)培養(yǎng)學(xué)生的創(chuàng)新意識(shí),提高綜合能力和創(chuàng)新實(shí)踐能力。
6.4 多樣化的教學(xué)方法
6.4.1 啟發(fā)式教學(xué)
教師主要起引導(dǎo)的作用,激發(fā)學(xué)生的學(xué)習(xí)興趣,發(fā)揮學(xué)生的學(xué)習(xí)積極性,與學(xué)生進(jìn)行互動(dòng),鼓勵(lì)學(xué)生對(duì)教學(xué)內(nèi)容提出問題,師生共同討論,提高教學(xué)和學(xué)習(xí)水平。鼓勵(lì)學(xué)生多動(dòng)腦子進(jìn)行思考,在學(xué)習(xí)過程中不拘于以往的解法,對(duì)同一個(gè)問題可以提出不同的解法,深化對(duì)問題的理解。另外還要強(qiáng)調(diào)學(xué)生自己學(xué)會(huì)對(duì)知識(shí)的總結(jié)、梳理、推演和挖掘??偨Y(jié)是教學(xué)中一個(gè)非常重要的環(huán)節(jié),不可忽視。通過對(duì)所學(xué)內(nèi)容的總結(jié)、梳理、推演和挖掘,理清內(nèi)容的內(nèi)在聯(lián)系,使知識(shí)條理化、系統(tǒng)化,加強(qiáng)對(duì)知識(shí)的理解和掌握,培養(yǎng)學(xué)生的歸納總結(jié)能力和思維創(chuàng)造能力,對(duì)所學(xué)內(nèi)容提煉出精華的東西。(下轉(zhuǎn)第260頁(yè))
(上接第167頁(yè))6.4.2 對(duì)比式教學(xué)
對(duì)同一問題,引導(dǎo)學(xué)生從不同的角度去思考,找出多種方法來解決。比如,在解決約瑟夫環(huán)問題時(shí),可以采用循環(huán)鏈表作存儲(chǔ)結(jié)構(gòu),或采用線性表的順序存儲(chǔ)結(jié)構(gòu),也可以采用數(shù)組作存儲(chǔ)結(jié)構(gòu)。這種對(duì)同一問題尋找不同算法實(shí)現(xiàn)的教學(xué)方式,有效地開闊了學(xué)生的思路,同時(shí)通過對(duì)不同算法的比較,加深了學(xué)生對(duì)算法的理解和掌握。
6.4.3案例教學(xué)
通過實(shí)例引入知識(shí)點(diǎn)。比如講最小生成樹可以通過城市間建立通信聯(lián)絡(luò)網(wǎng)為例引入最小生成樹及其求解算法,再比如講最短路徑可以通過去旅游選擇最短路徑為例引入最短路徑及其求解方法。
6.5 把課程與考研、軟考、相關(guān)競(jìng)賽有機(jī)的結(jié)合起來
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)考研和軟考的必考科目,在教學(xué)過程中有意識(shí)地把考研和軟考引入教學(xué)中,使學(xué)生學(xué)完本課程后能夠從容應(yīng)對(duì)考研和軟考中的數(shù)據(jù)結(jié)構(gòu)題目。組織和鼓勵(lì)學(xué)生參加程序員,高級(jí)程序員證書考試,輔導(dǎo)學(xué)生參加各種編程競(jìng)賽比如ACM大賽。
7 考核方法
要加強(qiáng)平時(shí)的學(xué)習(xí)過程管理,不定時(shí)地進(jìn)行一些隨堂的小測(cè)試,課堂提問等。考試以學(xué)生完成日常作業(yè)和實(shí)驗(yàn)環(huán)節(jié)為必要條件,期末考試采用筆試方式。成績(jī)?cè)u(píng)定由三部分組成:期末考試占總成績(jī)的60%,平時(shí)成績(jī)占總成績(jī)的20%,實(shí)驗(yàn)占總成績(jī)的20%,綜合考核學(xué)生該科成績(jī)。
8 結(jié)語(yǔ)
《數(shù)據(jù)結(jié)構(gòu)》對(duì)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生來說是非常重要的課程,組織好教學(xué),使學(xué)生通過該課程的教學(xué),很好地掌握數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí),為今后的學(xué)習(xí)奠定良好的基礎(chǔ)是非常重要的。
【參考文獻(xiàn)】
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文6
關(guān)鍵詞:課程教學(xué)改革;課程群;民辦獨(dú)立高校;數(shù)據(jù)結(jié)構(gòu)
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2016)46-0073-02
高等教育是培養(yǎng)高級(jí)專門人才的主要社會(huì)活動(dòng)[1]。隨著社會(huì)的不斷發(fā)展,承擔(dān)高等教育工作的公辦高校已不能滿足日益增長(zhǎng)的就學(xué)需求;作為補(bǔ)充,民辦獨(dú)立高校為社會(huì)提供了高質(zhì)量本科層次的大眾化高等教育服務(wù)[2]。民辦獨(dú)立高校辦學(xué)靈活,直面社會(huì)和職場(chǎng),以培養(yǎng)高素質(zhì)應(yīng)用型人才為目標(biāo),因此其教育模式與傳統(tǒng)公辦研究型高校有所不同;這一差異也直接體現(xiàn)在其教學(xué)活動(dòng)中。
課程是教學(xué)活動(dòng)的組織方式,是實(shí)現(xiàn)教學(xué)目標(biāo)的基本途徑,因此課程建設(shè)直接關(guān)系到人才培養(yǎng)的質(zhì)量,是高等教育改革的核心[3]。本世紀(jì)90年代以來,作為高等教育改革的熱點(diǎn)問題之一,高校課程建設(shè)中的重要一環(huán),課程群建設(shè)逐漸引起人們的重視。
課程群(以下簡(jiǎn)稱課群)是某一學(xué)科內(nèi)的諸多課程的集合,是“從屬于某個(gè)學(xué)科,相互間性質(zhì)相關(guān)或相近,如相承、滲透、互補(bǔ)等課程的集合體”[4]。顯然,課程是課群的要素;課程教學(xué)改革則是從微觀角度,以某一課程為對(duì)象,以提高教學(xué)效果為目標(biāo),對(duì)課程的實(shí)施手段和教學(xué)方法進(jìn)行改進(jìn)。
本文以南京航空航天大學(xué)金城學(xué)院(以下簡(jiǎn)稱南航金城學(xué)院)信息工程系“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革為例,探討在“數(shù)據(jù)結(jié)構(gòu)和算法”課群建設(shè)中“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革方案的實(shí)施。在不改動(dòng)課程原有學(xué)時(shí)的前提下,通過調(diào)整該門課程的具體教學(xué)內(nèi)容和方法、考核方案,達(dá)到優(yōu)化課程知識(shí)體系,提高教學(xué)質(zhì)量的目的;同時(shí)滿足民辦獨(dú)立高校因材施教、分層次、多渠道的人才培養(yǎng)模式的要求。
一、數(shù)據(jù)結(jié)構(gòu)和算法課群的建立
“數(shù)據(jù)結(jié)構(gòu)和算法”課群是以南航金城學(xué)院信息工程系計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的人才培養(yǎng)計(jì)劃為指導(dǎo),包含“離散數(shù)學(xué)”、“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)”以及“算法設(shè)計(jì)與分析”四門課程;具體課群體系結(jié)構(gòu)如圖1所示。
其中“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的專業(yè)基礎(chǔ)課程;是“算法設(shè)計(jì)與分析”的重要先修課程。其教學(xué)目標(biāo)是通過分析數(shù)據(jù)的結(jié)構(gòu)特性,為具體應(yīng)用(例如,建立用戶廣告服務(wù)系統(tǒng))涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其相應(yīng)的解題算法;同時(shí)涉及算法的時(shí)間、空間效率分析技術(shù)。整個(gè)課程同時(shí)也是一個(gè)復(fù)雜程序設(shè)計(jì)的訓(xùn)練過程;要求學(xué)生編寫的程序結(jié)構(gòu)清楚,正確易讀,符合軟件工程的規(guī)范。而這一要求也直接體現(xiàn)在“數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)”的實(shí)踐教學(xué)過程中?!八惴ㄔO(shè)計(jì)與分析”是計(jì)算機(jī)科學(xué)與軟件工程中的核心研究領(lǐng)域之一。許多實(shí)際問題的求解都依賴于有效算法的設(shè)計(jì)與實(shí)現(xiàn):如用戶廣告服務(wù)系統(tǒng)等一旦深入下去就能夠被描述成一組以網(wǎng)絡(luò)流為模型的問題[5]。“離散數(shù)學(xué)”是研究離散量的結(jié)構(gòu)及其相互關(guān)系的數(shù)學(xué)類課程?!半x散數(shù)學(xué)”在計(jì)算機(jī)科學(xué)與技術(shù)領(lǐng)域有著廣泛的應(yīng)用,同時(shí)也是“數(shù)據(jù)結(jié)構(gòu)”和“算法設(shè)計(jì)與分析”的重要先修課程。
在課群建設(shè)中,首先處理數(shù)據(jù)結(jié)構(gòu)和算法之間的關(guān)系,離散數(shù)學(xué)與數(shù)據(jù)結(jié)構(gòu)、算法之間的關(guān)系;其次以數(shù)據(jù)結(jié)構(gòu)為主線,結(jié)合算法設(shè)計(jì)技術(shù)對(duì)如何選擇數(shù)據(jù)結(jié)構(gòu)的教學(xué)內(nèi)容進(jìn)行分析,靈活處理離散數(shù)學(xué)中的基礎(chǔ)知識(shí),突出算法設(shè)計(jì)的中心思想,強(qiáng)化實(shí)踐教學(xué)環(huán)節(jié)。整個(gè)課群建設(shè)遵循:“單門課程建設(shè)課群建設(shè)”模式;以單門課程教學(xué)改革為點(diǎn),課群建設(shè)為線,專業(yè)建設(shè)為面?!包c(diǎn)、線、面”逐步推進(jìn),從而達(dá)到優(yōu)化課程知識(shí)體系,提高教學(xué)質(zhì)量,滿足民辦獨(dú)立高校高素質(zhì)應(yīng)用型人才培養(yǎng)的目標(biāo)。
二、數(shù)據(jù)結(jié)構(gòu)課程改革方案
1.理論教學(xué)改革?!皵?shù)據(jù)結(jié)構(gòu)”課程的理論教學(xué)內(nèi)容主要包括:線性結(jié)構(gòu)、非線性結(jié)構(gòu)、查找和排序三大部分。其中前兩部涉及線性表、棧和隊(duì)列、字符串、數(shù)組和廣義表、樹和二叉樹、圖等多種基本數(shù)據(jù)結(jié)構(gòu)。在實(shí)際教學(xué)中,任課教師多遵循“邏輯結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)相關(guān)操作”的主線,對(duì)所涉及的知識(shí)點(diǎn)進(jìn)行逐個(gè)講解。查找和排序部分,則羅列出多種不同的解決計(jì)算機(jī)查找和排列數(shù)據(jù)的算法,講解時(shí)需要比較不同算法在時(shí)間和空間上的性能差異。針對(duì)“數(shù)據(jù)結(jié)構(gòu)和算法”課群建設(shè)的要求,“數(shù)據(jù)結(jié)構(gòu)”課程的理論教學(xué)內(nèi)容和教學(xué)方式做了如下調(diào)整:
(1)以實(shí)際案例為主線,將各個(gè)知識(shí)點(diǎn)串聯(lián)起來。比如,在講授圖的應(yīng)用時(shí),最短路徑算法是重點(diǎn)也是難點(diǎn);不僅因?yàn)橹R(shí)點(diǎn)本身在原理的理解上較為困難,同時(shí)學(xué)生也不太能夠接觸到該算法的實(shí)際應(yīng)用。因此在實(shí)際教學(xué)過程中,以“游戲地圖的查找”為例說明該算法,并強(qiáng)調(diào)圖的結(jié)構(gòu)特性(邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)以及涉及的基本操作);這實(shí)際上是一種案例分析方法。
(2)強(qiáng)調(diào)課程間的知識(shí)點(diǎn)的銜接。例如,講解最短路徑算法時(shí),將案例(交通咨詢系統(tǒng))的實(shí)現(xiàn),放置在“數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)”的實(shí)踐環(huán)節(jié)中;該算法的正確性證明則在“算法設(shè)計(jì)與分析”課程中給予解釋。又如,講解快速排序和簡(jiǎn)單交換排序時(shí),重點(diǎn)讓學(xué)生能夠區(qū)分不同算法的執(zhí)行步驟;著重強(qiáng)調(diào)程序本身的特性,操作對(duì)象的特性等涉及數(shù)據(jù)結(jié)構(gòu)的知識(shí)點(diǎn)。而算法時(shí)間性能的比較則放在“算法設(shè)計(jì)與分析”課程中來解決。此外,“離散數(shù)學(xué)”中圖論部分的知識(shí)點(diǎn)教學(xué)也需要和“數(shù)據(jù)結(jié)構(gòu)”中圖部分的知識(shí)點(diǎn)教學(xué)內(nèi)容相銜接。
(3)在課程考核上增加平時(shí)成績(jī),提高理論知識(shí)點(diǎn)的實(shí)際掌握程度的考核比重;避免一次考試成績(jī)定成敗。將最終的考核總評(píng)成績(jī)分為三部分:平時(shí)成績(jī)(課后練習(xí)成績(jī)、課堂回答問題成績(jī)、出勤率等綜合考評(píng)成績(jī))占總成績(jī)的20%;上機(jī)實(shí)驗(yàn)環(huán)節(jié)評(píng)分(線性結(jié)構(gòu)、非線性結(jié)構(gòu)、查找和排序)占30%;結(jié)課考試(筆試)占50%??傮w評(píng)分標(biāo)準(zhǔn)中,理論知識(shí)點(diǎn)的實(shí)際掌握程度通過實(shí)踐環(huán)節(jié)來進(jìn)行考核;對(duì)不同學(xué)生進(jìn)行差異化教學(xué)(能力強(qiáng)、對(duì)知識(shí)點(diǎn)理解深入的學(xué)生可以選擇難度較大的案例來實(shí)現(xiàn))。事實(shí)證明,在2015年秋季的實(shí)際教學(xué)活動(dòng)中,取得了較好的教學(xué)效果,很多同學(xué)的學(xué)習(xí)積極性被調(diào)動(dòng)起來了;課堂回答問題的熱情較高,同時(shí)課后提問的次數(shù)也明顯增多。
2.實(shí)踐教學(xué)改革。與“數(shù)據(jù)結(jié)構(gòu)”課程密切相關(guān)的實(shí)踐教學(xué)環(huán)節(jié)主要分兩部分:一是理論課程中的實(shí)驗(yàn)上機(jī)環(huán)節(jié);二是“數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)”環(huán)節(jié)。將“數(shù)據(jù)結(jié)構(gòu)”理論教學(xué)內(nèi)容所涉及的應(yīng)用案例分別安排在兩個(gè)實(shí)踐教學(xué)環(huán)節(jié)中,要求學(xué)生編程實(shí)現(xiàn)。同時(shí),另外再增設(shè)多個(gè)較為復(fù)雜的典型案例實(shí)現(xiàn)。
在實(shí)踐教學(xué)內(nèi)容設(shè)置上,不但系統(tǒng)地闡述了“數(shù)據(jù)結(jié)構(gòu)”的基本原理,同時(shí)也給出了一些的典型案例。每個(gè)案例的敘述完全按照解決實(shí)際問題的思路進(jìn)行,這對(duì)學(xué)生如何面對(duì)實(shí)際工程項(xiàng)目問題有著很好的啟迪作用。
三、結(jié)論
“數(shù)據(jù)結(jié)構(gòu)”這門課程的開設(shè)如何滿足民辦獨(dú)立高校的人才培養(yǎng)目標(biāo),如何滿足課群建設(shè)的實(shí)際要求,是一個(gè)值得不斷探索的課題。本文從南航金城學(xué)院信息工程系計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)核心課程“數(shù)據(jù)結(jié)構(gòu)”的課程教學(xué)改革出發(fā),從課程的理論教學(xué)和實(shí)踐教學(xué)兩方面進(jìn)行探討,提出了相應(yīng)的改革思路。在2015年秋季的實(shí)際教學(xué)過程中,取得了較為明顯的效果。顯然,學(xué)生不但獲得了扎實(shí)的理論基礎(chǔ),同時(shí)也掌握了一定的專業(yè)技能:以數(shù)據(jù)結(jié)構(gòu)知識(shí)為基礎(chǔ),分析案例、解決實(shí)際問題的能力。
參考文獻(xiàn):
[1]楊樹勛.現(xiàn)代高等教育學(xué)[M].北京:化學(xué)工業(yè)出版社,1999:97-98.
[2]齊鳳和.民辦獨(dú)立學(xué)院的四大困惑及解決途徑[J].現(xiàn)代教育科學(xué):高教研究,2005,(6):53-56.
[3]黃偉娣.課程與課程建設(shè)[J].杭州師范學(xué)院學(xué)報(bào),1994,(5):116-120.