王欣欣 李炳榮 賀鵬飛
摘要:基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式,本文采用《高級(jí)語言程序設(shè)計(jì)》和《算法與數(shù)據(jù)結(jié)構(gòu)》兩門課相融合的教學(xué)模式,避免二者分開教學(xué)所產(chǎn)生的理論脫節(jié)于編程的問題,提高學(xué)生的實(shí)踐編程能力。
關(guān)鍵詞:高級(jí)語言程序設(shè)計(jì);算法與數(shù)據(jù)結(jié)構(gòu);融合教學(xué)
中圖分類號(hào):G642.41 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2017)38-0275-02
在信息時(shí)代,處理信息的主要工具是計(jì)算機(jī),計(jì)算機(jī)學(xué)習(xí)是現(xiàn)今人們生活的一個(gè)重要組成部分,其應(yīng)用已從傳統(tǒng)數(shù)值計(jì)算發(fā)展到非數(shù)值計(jì)算[1]。在非數(shù)值計(jì)算里,數(shù)據(jù)處理的對(duì)象從簡(jiǎn)單的數(shù)值處理發(fā)展到對(duì)一般的符號(hào)、圖像、聲音、視頻等有一定結(jié)構(gòu)的數(shù)據(jù)處理,面臨的主要問題是:如何在計(jì)算機(jī)中用高級(jí)語言程序有效地表示數(shù)據(jù)、合理地組織和處理數(shù)據(jù)。現(xiàn)今,國(guó)內(nèi)外高校解決這個(gè)問題主要學(xué)習(xí)的課程是《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》。這兩門課采用傳統(tǒng)的相分離的教學(xué)方法,教學(xué)效果并不理想,需要進(jìn)行新的課程探索。
一、基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》新教學(xué)模式的提出
高校提出了“計(jì)算機(jī)理論與編程技能相給合”的可持續(xù)性教學(xué)研究宗旨[2],這需要進(jìn)一步加強(qiáng)學(xué)生的編程實(shí)踐能力,使《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》兩門課程進(jìn)一步融合,成為學(xué)生喜愛的實(shí)踐編程課程,從而真正掌握計(jì)算機(jī)編程技能,為服務(wù)社會(huì)打下堅(jiān)實(shí)的基礎(chǔ)。因此,探討這兩門課程的知識(shí)融合及教學(xué)新模式,具有很好的現(xiàn)實(shí)意義。本文從學(xué)生和教師兩個(gè)層面進(jìn)行分析。(1)學(xué)生學(xué)習(xí)層面。《高級(jí)語言程序設(shè)計(jì)》課程是一門實(shí)踐性較強(qiáng)的課程,是學(xué)生接觸的第一門程序設(shè)計(jì)語言。剛上大學(xué)的學(xué)生,由于受知識(shí)和能力的局限,在學(xué)習(xí)這門課時(shí),只學(xué)會(huì)了基本概念及編寫簡(jiǎn)單程序的編程序,對(duì)較復(fù)雜的結(jié)構(gòu)的學(xué)習(xí),如函數(shù)、數(shù)組、結(jié)構(gòu)體、指針等不太理解,只能編寫或看懂《高級(jí)語言程序設(shè)計(jì)》中的簡(jiǎn)單程序,不知編程何用,學(xué)習(xí)熱情不高,無法應(yīng)對(duì)復(fù)雜問題的編程問題。《高級(jí)程序語言設(shè)計(jì)》等課程是《算法與數(shù)據(jù)結(jié)構(gòu)》課程的先導(dǎo)課[3],編程實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和算法,必須以數(shù)組、指針、結(jié)構(gòu)體等復(fù)雜的概念來設(shè)計(jì)算法和結(jié)構(gòu)。《高級(jí)語言程序設(shè)計(jì)》課程學(xué)習(xí)中編程的薄弱,容易使學(xué)生很難編程完成《算法與數(shù)據(jù)結(jié)構(gòu)》中概念的表示和實(shí)現(xiàn)4。學(xué)生對(duì)每學(xué)一種數(shù)據(jù)結(jié)構(gòu),都應(yīng)上機(jī),用編程實(shí)現(xiàn)該數(shù)據(jù)結(jié)構(gòu)。在《算法與數(shù)據(jù)結(jié)構(gòu)》課堂上,學(xué)生基本上能學(xué)會(huì)數(shù)據(jù)結(jié)構(gòu)邏輯上的模型,上機(jī)時(shí)卻無法通過高級(jí)語言程序來實(shí)現(xiàn),學(xué)習(xí)效果不理想[4]。(2)教師的教學(xué)方法層面。《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》課程一般是分開教學(xué)的,學(xué)生在兩個(gè)學(xué)期內(nèi)學(xué)習(xí)完畢。學(xué)習(xí)《算法與數(shù)據(jù)結(jié)構(gòu)》時(shí),一些學(xué)生忘記了《高級(jí)語言程序設(shè)計(jì)》中的大部分概念、算法及編程方法。還有一些學(xué)生掌握了算法,但是最終不能將算法轉(zhuǎn)換成程序,這使得在學(xué)習(xí)《算法與數(shù)據(jù)結(jié)構(gòu)》課程過程中,需要相當(dāng)一部分時(shí)間花費(fèi)在補(bǔ)習(xí)高級(jí)程序語言的概念上,學(xué)習(xí)效果并不好。教師在授課時(shí),除了講解復(fù)雜的《算法與數(shù)據(jù)結(jié)構(gòu)》知識(shí),還要費(fèi)力講解學(xué)生已經(jīng)忘記的高級(jí)程序語言的內(nèi)容,受課時(shí)限制,學(xué)習(xí)效果不理想。兩門課程分開教學(xué),會(huì)導(dǎo)致理論與編程實(shí)踐的脫節(jié),不利于學(xué)生對(duì)兩門課程的學(xué)習(xí)和實(shí)踐。多年教學(xué)實(shí)踐[5]表明:如果這兩門課是由相同團(tuán)體的教師講授,將編程工具(《高級(jí)語言程序設(shè)計(jì)》)和理論(《算法與數(shù)據(jù)結(jié)構(gòu)》)相融合,授課內(nèi)容連貫起來,有利于學(xué)生對(duì)兩門課程內(nèi)容的掌握,提高編程實(shí)踐能力,達(dá)到預(yù)期的教學(xué)效果。因此,如何將兩門課程有機(jī)地融合起來,解決《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》兩門課程在學(xué)習(xí)和教學(xué)兩個(gè)方面存在的問題,提高學(xué)生的實(shí)踐編程能力,真正做到教學(xué)相長(zhǎng),是本文擬解決的主要問題。針對(duì)這個(gè)問題,本文提出一種將《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》兩門課程融合在一起進(jìn)行教學(xué)的新的基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》教學(xué)模式。
二、基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式
基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式,在教學(xué)內(nèi)容上須進(jìn)行較大調(diào)整。該融合模式將《高級(jí)程序語言》和各種數(shù)據(jù)結(jié)構(gòu)的概念、算法、實(shí)現(xiàn)相融合,重新編寫課程內(nèi)容。《高級(jí)語言程序設(shè)計(jì)》課程中的內(nèi)容需要重新組織,將線性表、數(shù)組、指針等概念糅合在《算法與數(shù)據(jù)結(jié)構(gòu)》各章節(jié)中,使兩門課程很好地融合在一起,學(xué)習(xí)計(jì)算機(jī)編程語言基礎(chǔ)的同時(shí),學(xué)習(xí)復(fù)雜的數(shù)據(jù)類型及基本操作的實(shí)現(xiàn),相輔相成,互相促進(jìn)。解決了《算法與數(shù)據(jù)結(jié)構(gòu)》中的算法和數(shù)據(jù)結(jié)構(gòu)的程序?qū)崿F(xiàn)問題,學(xué)生能夠更好地掌握、理解數(shù)據(jù)結(jié)構(gòu)的內(nèi)在邏輯,并用高級(jí)程序語言在計(jì)算機(jī)中表示出來[6]。基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式,能夠合理地安排高級(jí)程序語言和數(shù)據(jù)結(jié)構(gòu)的教學(xué)內(nèi)容,使兩門課程中的關(guān)鍵知識(shí)融成一個(gè)《高級(jí)語言程序設(shè)計(jì)+數(shù)據(jù)結(jié)構(gòu)》編程體系。融合后的課程,注重理論與實(shí)踐的有機(jī)結(jié)合,注重學(xué)生的編程實(shí)踐能力,提高程序設(shè)計(jì)能力。
三、基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式的應(yīng)用
基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》的新教學(xué)模式中,在教學(xué)方法上采取“理論教學(xué)”與“上機(jī)實(shí)驗(yàn)編程”相融合的教學(xué)模式。(1)融合教學(xué)模式的理論教學(xué)。基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式,重新編寫《高級(jí)語言程序設(shè)計(jì)+數(shù)據(jù)結(jié)構(gòu)》課本[7],重新分配《算法與數(shù)據(jù)結(jié)構(gòu)》和《高級(jí)語言程序設(shè)計(jì)》教學(xué)時(shí)間。將原來分到兩個(gè)學(xué)期由兩個(gè)教師上的《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》兩門課,融合成一門課《基于高級(jí)語言程序設(shè)計(jì)+數(shù)據(jù)結(jié)構(gòu)》,分兩個(gè)學(xué)期講授,授課時(shí)一般由一個(gè)數(shù)據(jù)結(jié)構(gòu)團(tuán)體的教師跟班授課。一個(gè)數(shù)據(jù)結(jié)構(gòu)團(tuán)體的教師會(huì)經(jīng)常在一起討論教學(xué)重點(diǎn)和教學(xué)進(jìn)度,把握整個(gè)教學(xué)過程的走向,即使更換了教師,也不會(huì)影響授課的連續(xù)性和教學(xué)效果。這解決了每位教師按照自己的教學(xué)方法和進(jìn)度上課課程不連續(xù)的弊端。
基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式,教學(xué)的側(cè)重點(diǎn)有所變化,第一個(gè)學(xué)期的重點(diǎn)是如何用《高級(jí)語言程序設(shè)計(jì)》實(shí)現(xiàn)程序的設(shè)計(jì);第二個(gè)學(xué)期的重點(diǎn)是《算法與數(shù)據(jù)結(jié)構(gòu)》的應(yīng)用,讓學(xué)生學(xué)會(huì)利用程序設(shè)計(jì)解決實(shí)際問題。(2)融合教學(xué)模式的上機(jī)實(shí)驗(yàn)教學(xué)。用不同的上機(jī)實(shí)驗(yàn)來實(shí)現(xiàn)理論教學(xué)中所課授的概念、算法和結(jié)構(gòu),使學(xué)生在實(shí)際編程中學(xué)習(xí)并理解相關(guān)基本概念及算法實(shí)現(xiàn)。在每個(gè)章節(jié)的理論講解結(jié)束后,安排一個(gè)綜合的上機(jī)實(shí)例,由學(xué)生上機(jī)實(shí)驗(yàn)編程完成。學(xué)生在應(yīng)用中學(xué)習(xí),在學(xué)習(xí)中應(yīng)用,可以訓(xùn)練他們的編程思維,為編寫較大的程序打下堅(jiān)實(shí)的基礎(chǔ)[8]。因此,上機(jī)編程是基于高級(jí)程序語言的《算法與數(shù)據(jù)結(jié)構(gòu)》融合教學(xué)模式的重點(diǎn)環(huán)節(jié)。上機(jī)一般安排為16個(gè)學(xué)時(shí),建議增加到48學(xué)時(shí),每次理論課帶一次上機(jī)課,這樣學(xué)生可以充分地用高級(jí)語言程序,實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)進(jìn)行實(shí)踐編程,真正學(xué)會(huì)用計(jì)算機(jī)編程的思維來實(shí)現(xiàn)對(duì)具體問題的分析。有條件的學(xué)校,建議在機(jī)房授課,小班授課,能進(jìn)一步提高學(xué)生的編程能力。
四、結(jié)論
《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》兩門課程相融合的教學(xué)模式,體現(xiàn)了高校“計(jì)算機(jī)理論與編程技能相給合”[9]的專業(yè)可持續(xù)性發(fā)展研究教學(xué),克服了以往《高級(jí)語言程序設(shè)計(jì)》程序設(shè)計(jì)和《算法與數(shù)據(jù)結(jié)構(gòu)》分開教學(xué)模式的弊端,很好地解決了《高級(jí)語言程序設(shè)計(jì)》與《算法與數(shù)據(jù)結(jié)構(gòu)》兩門課相脫節(jié)的問題,使數(shù)據(jù)結(jié)構(gòu)的理論更容易理解和應(yīng)用,使學(xué)生真正掌握程序語言的編程設(shè)計(jì)方法,學(xué)會(huì)用程序語言解決實(shí)際問題,為今后的學(xué)習(xí)工作打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1]王欣欣.《數(shù)據(jù)結(jié)構(gòu)》和《C語言》新教學(xué)模式研究[J].教育教學(xué)論壇,2013,(8).
[2]徐春雨.高職院校C語言與數(shù)據(jù)結(jié)構(gòu)課程整合的探索與實(shí)踐[J].福建電腦,2010,(10).
[3]陳紅琳.信管專業(yè)中“C語言”與“數(shù)據(jù)結(jié)構(gòu)”課程的整合研究[J].電腦學(xué)習(xí),2010,(12).
[4]數(shù)據(jù)結(jié)構(gòu)講義《互聯(lián)網(wǎng)文檔資源》2012[Z].
[5]數(shù)據(jù)結(jié)構(gòu)教學(xué)課件(C語言描述)《互聯(lián)網(wǎng)文檔資源》2012[Z].
[6]數(shù)據(jù)結(jié)構(gòu)(C語言版本)《互聯(lián)網(wǎng)文檔資源》2012[Z].
[7]于翔.高職“C語言與數(shù)據(jù)結(jié)構(gòu)”課程整合教學(xué)改革的探索與實(shí)踐[J].時(shí)代教育,2013,(5).
[8]數(shù)據(jù)結(jié)構(gòu)與算法分析第一章緒論《互聯(lián)網(wǎng)文檔資源》2012[Z].
[9]王欣欣.數(shù)據(jù)結(jié)構(gòu)實(shí)用教程(C語言版)[M].西安電子科技大學(xué)出版社,2016.endprint