錢紅兵 唐發(fā)根
摘 要:“算法與數(shù)據(jù)結(jié)構(gòu)”課程是高等學(xué)校計算機(jī)專業(yè)重要的專業(yè)基礎(chǔ)課。本文針對該課程教學(xué)中所面臨的實際問題,提出了一個兼顧課堂教學(xué)和課后實踐的三層教學(xué)體系改革方案,并給出了方案實施的具體要求、方法和手段。
關(guān)鍵詞:算法與數(shù)據(jù)結(jié)構(gòu);三層教學(xué)體系;課堂授課;課程實踐;復(fù)習(xí)與評估
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1 教學(xué)體系建設(shè)的意義
“算法與數(shù)據(jù)結(jié)構(gòu)”課程是高等學(xué)校計算機(jī)專業(yè)重要的專業(yè)與專業(yè)基礎(chǔ)課程之一,該課程的目標(biāo)是通過該課程的學(xué)習(xí),使學(xué)生能夠運用課程所討論的概念和方法更好地進(jìn)行算法設(shè)計與算法分析,掌握計算機(jī)進(jìn)行數(shù)據(jù)處理的基本原理和技巧,為進(jìn)一步提高程序設(shè)計的能力、進(jìn)一步學(xué)習(xí)和掌握計算機(jī)專業(yè)知識奠定基礎(chǔ)。顯然,這門課教學(xué)效果的好壞將直接影響到學(xué)生能否學(xué)習(xí)和掌握未來計算機(jī)課程知識及綜合利用計算機(jī)的能力。然而,由于這門課要求學(xué)生即要有一定的理論基礎(chǔ),如要掌握“程序設(shè)計語言”和“離散數(shù)學(xué)”的知識,又要有一定的編程能力,能夠通過實際的高級編程語言實現(xiàn)具體的算法,因此目前這門課的實際教學(xué)還面臨著一些問題,一個是上課學(xué)生的理解能力、業(yè)務(wù)水平及掌握的專業(yè)基礎(chǔ)知識存在差異,如何在教學(xué)上兼顧所有同學(xué),讓每一個同學(xué)都能理解和掌握所授的知識點是個問題;二是上課課時有限,如何在短時間內(nèi)使學(xué)生能充分理解所授內(nèi)容并將課堂教學(xué)與課后學(xué)習(xí)有機(jī)結(jié)合起來,鞏固和提高教學(xué)效果需要考究;三是這門課的學(xué)生人數(shù)較多,如何保證學(xué)生問題的及時答疑、學(xué)生課后作業(yè)的及時評判、檢查和管理也是需要解決的問題。為了更好地提高教學(xué)的效果,達(dá)到教學(xué)目的,充分利用計算機(jī)普及使用的特點,探索新的教學(xué)理念和方法、新的教學(xué)體系是十分重要的。
2 “算法與數(shù)據(jù)結(jié)構(gòu)”課程的三層教學(xué)體系
“算法與數(shù)據(jù)結(jié)構(gòu)”是理論和實踐相結(jié)合的課程,為此我們應(yīng)建立一個能解決上述問題的兼顧課堂教學(xué)和課后實踐的教學(xué)體系,如圖1所示。
(1) 課堂授課
課堂授課是學(xué)生學(xué)習(xí)和掌握知識的基本途徑,由于這門課的大部分內(nèi)容都與算法相關(guān),講解起來容易使學(xué)生產(chǎn)生枯燥乏味的感覺。為了提高學(xué)生的學(xué)習(xí)興趣,吸引學(xué)生的注意力,在教學(xué)內(nèi)容的展示上可采用適當(dāng)活潑的方式,充分利用Powerpoint工具提供的多種功能解決所授內(nèi)容的呆板問題,如通過顏色的變換強(qiáng)調(diào)重點應(yīng)該掌握的內(nèi)容,用圖示的方式甚至一些動畫的方式來演示關(guān)鍵算法的解決思路等。在授課內(nèi)容的講解上明確所授知識點能解決什么實際問題,在授課形式上采用目標(biāo)驅(qū)動的方法,即在講授一個新知識點之前,先提出實際的問題,然后讓學(xué)生帶著問題去學(xué)習(xí)新的知識點,之后,再提出一些啟發(fā)性的問題,引導(dǎo)學(xué)生積極探索不同知識點之間的關(guān)系,融會貫通所學(xué)知識。同時,在教學(xué)內(nèi)容安排上適當(dāng)增加習(xí)題課,從實用性角度激發(fā)學(xué)生的興趣,使學(xué)生深刻體會學(xué)習(xí)這門課有什么實際用途,拉近理論與實際的距離,通過分析實際的例題使學(xué)生了解面對一個實際問題時,如何去分析和解決它。
為了配合課堂的教學(xué)活動,還要加強(qiáng)教學(xué)的管理工作。針對有些學(xué)生缺乏自我控制能力,對自己學(xué)業(yè)要求不嚴(yán)、沉迷于網(wǎng)游而不愿意上課、對知識缺乏鉆研精神等問題不能放任不管,要加強(qiáng)上課的考勤制度,對多次無故缺課的同學(xué)采取必要的手段(如要經(jīng)過系主管領(lǐng)導(dǎo)的同意才能參加考試等)督促其上課。另外,在介紹完知識點后講解例題之前先讓學(xué)生花幾分鐘時間思考如何解決這個問題,并將寫有姓名和班號的答案提交,這樣一方面吸引學(xué)生的注意力,檢驗學(xué)生學(xué)習(xí)的效果,另一方面也從側(cè)面完成了點名考勤制度。
(2) 課后復(fù)習(xí)與評估
由于“算法與數(shù)據(jù)結(jié)構(gòu)”這門課主要討論抽象數(shù)據(jù)類型和算法的定義、表示和實現(xiàn),所講授的內(nèi)容具有抽象性、動態(tài)性和靈活性的特點,在課堂教學(xué)中雖然通過采用圖示的方式甚至一些動畫的方式在一定程度上化抽象為直觀,但課堂教學(xué)畢竟時間有限,很難全面展現(xiàn)所述對象的瞬間動態(tài)過程和算法的作用過程,使得學(xué)生理解教學(xué)內(nèi)容不夠深入和扎實,而且學(xué)生在理解所授知識點和真正掌握并靈活運用各種算法分析與設(shè)計的方法和技術(shù)也存在著距離,因此,對于一些學(xué)習(xí)能力不突出的學(xué)生來說,在學(xué)習(xí)這門課程的過程中普遍感覺難度較大。為了幫助學(xué)生更好地理解和掌握教學(xué)內(nèi)容,建立一個有利于學(xué)生課后復(fù)習(xí)與評估的教學(xué)輔助平臺——核心知識學(xué)習(xí)與動態(tài)練習(xí)系統(tǒng)是解決這個問題的有效途徑,該教學(xué)輔助平臺能對典型算法進(jìn)行網(wǎng)上動態(tài)交互式模擬跟蹤,將抽象的數(shù)據(jù)結(jié)構(gòu)和算法實現(xiàn)動態(tài)同步可視化,當(dāng)學(xué)生需要復(fù)習(xí)和評估自己對某個典型算法(如插入排序)的理解時,通過點取輔助平臺中算法的鏈接,一組需求排序的原始序列的數(shù)據(jù)以圖形圖標(biāo)形式顯示在學(xué)生面前,學(xué)生通過拉動圖標(biāo)模擬該算法的執(zhí)行過程,最后系統(tǒng)可根據(jù)學(xué)生的操作來判斷正確執(zhí)行的步驟,學(xué)生也可以通過系統(tǒng)給出的標(biāo)準(zhǔn)答案演示來理解該算法的正確執(zhí)行的過程。這樣即能達(dá)到對課堂講解內(nèi)容的補(bǔ)充(作為對老師課堂講解的演示),又能使學(xué)生在課外通過對關(guān)鍵算法如何執(zhí)行反復(fù)觀察、練習(xí)和體會,加深教學(xué)知識點的掌握和融會貫通。同時,學(xué)生通過算法的模擬練習(xí)和結(jié)果的自動評判,對自己掌握知識的程度有一個清楚地了解。
在課后復(fù)習(xí)與評估教學(xué)輔助平臺建設(shè)的具體實施中,可按照教學(xué)大綱的知識點要求,設(shè)計與課程內(nèi)容相一致的輔助核心知識學(xué)習(xí)與算法動態(tài)練習(xí)系統(tǒng),采用分階段完成的思路,先選擇簡單的算法進(jìn)行設(shè)計,完成原型的設(shè)計,經(jīng)過評審和實際的試用,對原型進(jìn)行修改和逐步完善。
(3) 課程實踐
這門課要求學(xué)生必須掌握高級程序設(shè)計語言及離散數(shù)學(xué)的相關(guān)知識,通過高級程序設(shè)計語言將算法的思路描述出來并通過實際算法的執(zhí)行來檢驗算法的正確與否。從實際的教學(xué)結(jié)果來看,盡管學(xué)生已經(jīng)學(xué)過一些高級程序設(shè)計語言,但仍不能自如地綜合利用所學(xué)的知識去解決實際的問題,使用高級語言實現(xiàn)具體算法設(shè)計時仍然不能得心應(yīng)手,這就說明應(yīng)用高級程序設(shè)計能力的培養(yǎng)要有一定的過程,需要在不斷的學(xué)習(xí)和實踐過程中鞏固和加強(qiáng),這就要求我們在講授教學(xué)內(nèi)容的同時加強(qiáng)教學(xué)實踐工作,讓學(xué)生一方面通過課堂的教學(xué)學(xué)習(xí)新的理論知識和算法設(shè)計技巧,另一方面通過不斷地完成實際的課程練習(xí)及綜合作業(yè)來加深對教學(xué)內(nèi)容的理解和掌握,同時進(jìn)一步提高綜合運用知識、解決實際問題的能力。目前,由于學(xué)生人數(shù)多,布置給學(xué)生的作業(yè)量較大,如果以電子郵件方式或當(dāng)面提交電子版作業(yè),但評判卻由人工完成這種方式了解學(xué)生掌握所學(xué)知識、完成作業(yè)的實際情況,則效率低而且不易檢查學(xué)生作業(yè)相互拷貝情況(這種現(xiàn)象在本課程學(xué)生中比較普遍),同時也不好管理。另外,如果學(xué)生答疑仍以傳統(tǒng)方式為主,即在規(guī)定時間內(nèi)學(xué)生找老師答疑,則答疑的時間和地點都要受到限制。而且學(xué)生在上機(jī)編寫程序時通常會遇到許多問題,需要老師解答,在規(guī)定的上機(jī)時間內(nèi)這不是問題。但學(xué)生往往是在非規(guī)定的上機(jī)時間(因為規(guī)定上機(jī)時間對完成上機(jī)作業(yè)是遠(yuǎn)遠(yuǎn)不夠的)完成作業(yè)的,此時,學(xué)生最希望問題能得到及時解答,如果學(xué)生的問題不能及時解決,勢必影響到學(xué)習(xí)的熱情和對知識的理解和掌握。顯然傳統(tǒng)的答疑方式解決不了這個問題。而且算法與數(shù)據(jù)結(jié)構(gòu)這門課的考試以筆試為主,對學(xué)生的實際程序設(shè)計能力缺乏考察。這類問題是多數(shù)計算機(jī)課程教學(xué)過程中遇到的普遍問題。因此,為了加強(qiáng)這門課程的教學(xué)實踐和管理,需要建立一個提高教學(xué)實驗環(huán)節(jié)作業(yè)管理輔助教學(xué)平臺,該平臺具有以下功能:
(1) 支持網(wǎng)上信息瀏覽、網(wǎng)上作業(yè)布置、提交及評判、網(wǎng)上答疑等整個教學(xué)互動活動。
(2) 作業(yè)的設(shè)計與教學(xué)內(nèi)容相一致,每個章節(jié)由多個作業(yè)組成,作業(yè)內(nèi)容按難易程度分為選擇題、填空題、簡答題和編程題來設(shè)計,另外,還設(shè)計了綜合實驗大作業(yè)來鍛煉學(xué)生的知識綜合運用能力。老師通過此平臺可按教學(xué)要求選擇不同類型的作業(yè)定時在網(wǎng)上發(fā)布和關(guān)閉,學(xué)生只能在提交作業(yè)的有效期內(nèi)完成并提交作業(yè),這樣也可督促學(xué)生及時完成作業(yè)。
(3) 為了充分利用選用的輔助教學(xué)平臺工具可以自動評判某類(選擇題、編程題)作業(yè)的功能,設(shè)計符合要求的作業(yè)形式,以達(dá)到最大程度的作業(yè)自動評判,減少老師評判作業(yè)的勞動強(qiáng)度。
(4) 利用輔助教學(xué)平臺的網(wǎng)上答疑和互動功能,不僅學(xué)生的學(xué)習(xí)問題能夠及時得到解答,而且也鼓勵學(xué)生之間對問題的討論,對積極參與的同學(xué)給予一定的獎勵,提高同學(xué)的參與興趣。
3 結(jié)論
隨著Internet網(wǎng)絡(luò)及計算機(jī)的普及,使得信息可以隨時、隨處可得,這要求教學(xué)手段及方法也應(yīng)更新,我們采用算法與數(shù)據(jù)結(jié)構(gòu)的三層教學(xué)體系,在繼承原有教學(xué)體系中關(guān)注課堂教學(xué)的基礎(chǔ)上,加強(qiáng)課程的課后復(fù)習(xí)及教學(xué)實踐環(huán)節(jié),可以使算法與數(shù)據(jù)結(jié)構(gòu)這門課的教學(xué)更加系統(tǒng)和全面,更加適應(yīng)現(xiàn)代教學(xué)的特點及教學(xué)改革時代的潮流,對提高教學(xué)的質(zhì)量、效果和效率無疑是非常必要的。
目前,在國外大學(xué)課程教學(xué)過程中,基于計算機(jī)網(wǎng)絡(luò),利用音頻、視頻甚至虛擬現(xiàn)實技術(shù)已經(jīng)相當(dāng)普遍,也是發(fā)展趨勢。國內(nèi)許多高校如清華大學(xué)、廣東工業(yè)大學(xué)等都開展了數(shù)據(jù)結(jié)構(gòu)和算法課程教學(xué)輔助平臺的研究和實踐工作,國外也開展了有關(guān)的研究和實踐工作,如芬蘭赫爾辛基技術(shù)大學(xué)就提供有專門的針對數(shù)據(jù)結(jié)構(gòu)與算法課程練習(xí)的輔助教學(xué)網(wǎng)。這些研究的成果也給我們實施算法與數(shù)據(jù)結(jié)構(gòu)這門課的改革提供了參考和依據(jù)。
我們的教學(xué)工作正按照所提出的三層教學(xué)體系不斷的建設(shè)和完善,作業(yè)管理輔助教學(xué)平臺已經(jīng)投入使用,支持課后復(fù)習(xí)與評估的教學(xué)輔助平臺正在建設(shè)之中,相信“算法與數(shù)據(jù)結(jié)構(gòu)”這門課的教學(xué)質(zhì)量和效果在我們不斷的教學(xué)改革中會越來越好。
參考文獻(xiàn):
[1] 唐發(fā)根. 數(shù)據(jù)結(jié)構(gòu)教程[M]. 2版. 北京:北京航空航天大學(xué)出版社,2005.
[2] 楊桂芝.“數(shù)據(jù)結(jié)構(gòu)”教學(xué)方法探索與實踐[J]. 計算機(jī)教育,2007(06).
[3] 張 娟,安少華,胡選子,等.“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)改革與實踐[J]. 計算機(jī)教育,2008(16).
[4] 徐鳳生,任傳成,李天志.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革探討[EB/OL]. http://qkzz.net/magazine/1006-8228/2006/03/ 343395.htm.