楊 霞 黔南民族師范學(xué)院計算機(jī)科學(xué)系,貴州 都勻 558000
應(yīng)用型本科《數(shù)據(jù)結(jié)構(gòu)》教學(xué)初探
楊 霞 黔南民族師范學(xué)院計算機(jī)科學(xué)系,貴州 都勻 558000
數(shù)據(jù)結(jié)構(gòu)課程的理論性和實踐性都很強(qiáng),本文從應(yīng)用的觀點出發(fā),探討學(xué)生知識、技能和態(tài)度等方面的培養(yǎng)問題。
應(yīng)用型本科;數(shù)據(jù)結(jié)構(gòu);教學(xué)
應(yīng)用本科教育屬于較高層次的技術(shù)教育,是我國高職教育中的重要組成部分。它是相對于普通本科和高職??贫缘模炔煌谝话闼哪曛频钠胀ū究?,也不同于專科層次的高職。
普通本科和應(yīng)用本科是本科教育的兩種類型,它們的關(guān)系應(yīng)該是平行發(fā)展的。應(yīng)用本科是高職教育的一個層次,它同一般普通本科相比具有鮮明的技術(shù)應(yīng)用型特征。在培養(yǎng)規(guī)格上,應(yīng)用本科培養(yǎng)的不是學(xué)科型、學(xué)術(shù)型、研究型人才,而是培養(yǎng)適應(yīng)生產(chǎn)、建設(shè)、管理、服務(wù)第一線需要的高等技術(shù)應(yīng)用型人才;在培養(yǎng)模式上,應(yīng)用本科以適應(yīng)社會需要為目標(biāo),以培養(yǎng)技術(shù)應(yīng)用能力為主線,設(shè)計學(xué)生的知識、能力、素質(zhì)結(jié)構(gòu)和培養(yǎng)方案,以“應(yīng)用”為主旨和特征構(gòu)建課程和教學(xué)內(nèi)容體系,重視學(xué)生的技術(shù)應(yīng)用能力培養(yǎng)。
另一方面,應(yīng)用本科與高職??葡啾纫灿休^大的不同。盡管高職都是培養(yǎng)第一線需要的技術(shù)應(yīng)用人才,但應(yīng)用本科出現(xiàn)以后,高職??频木唧w培養(yǎng)目標(biāo)和規(guī)格應(yīng)當(dāng)有所調(diào)整,與應(yīng)用本科有所分工。高職專科主要培養(yǎng)一般企事業(yè)部門的技術(shù)應(yīng)用型人才,尤其是培養(yǎng)大量一線需要的技術(shù)人才。應(yīng)用本科則主要培養(yǎng)技術(shù)密集產(chǎn)業(yè)的高級技術(shù)應(yīng)用型人才,并擔(dān)負(fù)培養(yǎng)生產(chǎn)第一線需要的管理者、組織者以及職業(yè)學(xué)校的師資等任務(wù)。
數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機(jī)硬件和計算機(jī)軟件三者之間的綜合性基礎(chǔ)課。這一課程的內(nèi)容不僅是一般程序設(shè)計的基礎(chǔ),而且是設(shè)計和實現(xiàn)編譯程序,操作系統(tǒng),數(shù)據(jù)庫系統(tǒng)以及其他系統(tǒng)程序的重要基礎(chǔ)。
根據(jù)高等院校應(yīng)用型本科教育“理論夠用,注重實踐”的特點,應(yīng)用型本科數(shù)據(jù)結(jié)構(gòu)課程的培養(yǎng)目標(biāo)是培養(yǎng)既懂得扎實數(shù)據(jù)結(jié)構(gòu)理論知識,又掌握數(shù)據(jù)結(jié)構(gòu)應(yīng)用技能的高級應(yīng)用人才。
計算機(jī)解決一個具體問題時,大致需要下列幾個步驟:首先要從具體問題中抽象出一個適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計一個解此數(shù)學(xué)模型的算法,最后編出程序進(jìn)行測試調(diào)整,直至得到最終解答。簡單來講,數(shù)據(jù)結(jié)構(gòu)的設(shè)計過程可分為抽象層、數(shù)據(jù)結(jié)構(gòu)層和實現(xiàn)層。
抽象層是指抽象數(shù)據(jù)結(jié)構(gòu)層,它討論數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)及其運算,數(shù)據(jù)結(jié)構(gòu)層和實現(xiàn)層討論一個數(shù)據(jù)結(jié)構(gòu)的表示和在計算機(jī)內(nèi)的存儲細(xì)節(jié)以及運算的實現(xiàn)。
數(shù)據(jù)結(jié)構(gòu)課程涉及離散數(shù)學(xué)、可計算性理論、算法復(fù)雜性等理論知識。數(shù)據(jù)結(jié)構(gòu)研究的對象,數(shù)據(jù)元素及其之間的關(guān)系都是從現(xiàn)實生活中抽象出來的,在被組織成不同形式時,只研究抽象出來的本質(zhì)性的概念和關(guān)系,而忽略了本身的所代表的實際背景。對于學(xué)生來說,數(shù)據(jù)結(jié)構(gòu)課程概念多、方法多、高度抽象、邏輯性、技巧性和實踐性強(qiáng),所有內(nèi)容均自成體系,相互之間銜接線索較少??傮w感覺內(nèi)容零散,沒有一個整體的知識框架,理論知識難以掌握,更加難以實踐運用。
根據(jù)數(shù)據(jù)結(jié)構(gòu)課程的特點,學(xué)生在學(xué)習(xí)該課程的難點,以及應(yīng)用型教學(xué)的要求,我們探討應(yīng)用型數(shù)據(jù)結(jié)構(gòu)本科層次的教學(xué)開展。
(1)數(shù)學(xué)建模聯(lián)系實際,激發(fā)學(xué)生學(xué)習(xí)興趣
當(dāng)需要從定量的角度分析和研究一個實際問題時,人們就要在深入調(diào)查研究、了解對象信息、作出簡化假設(shè)、分析內(nèi)在規(guī)律等工作的基礎(chǔ)上,用數(shù)學(xué)的符號和語言,把它表述為數(shù)學(xué)式子,也就是數(shù)學(xué)模型,然后用通過計算得到的模型結(jié)果來解釋實際問題,并接受實際的檢驗。這個建立數(shù)學(xué)模型的全過程就稱為數(shù)學(xué)建模。數(shù)學(xué)模型一般是實際事物的一種數(shù)學(xué)簡化。它常常是以某種意義上接近實際事物的抽象形式存在的,但它和真實的事物有著本質(zhì)的區(qū)別。要描述一個實際現(xiàn)象可以有很多種方式,比如錄音,錄像,比喻,傳言等等。為了使描述更具科學(xué)性,邏輯性,客觀性和可重復(fù)性,人們采用一種普遍認(rèn)為比較嚴(yán)格的語言來描述各種現(xiàn)象,這種語言就是數(shù)學(xué)。使用數(shù)學(xué)語言描述的事物就稱為數(shù)學(xué)模型。有時候我們需要做一些實驗,但這些實驗往往用抽象出來了的數(shù)學(xué)模型作為實際物體的代替而進(jìn)行相應(yīng)的實驗,實驗本身也是實際操作的一種理論替代。近幾年,數(shù)學(xué)建模理論正在逐步推廣實施,為面臨的問題構(gòu)建數(shù)學(xué)模型,能有效地幫助分析,解決問題。而學(xué)生在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時的難點就在于,所學(xué)知識難以聯(lián)系實際,缺乏學(xué)習(xí)興趣。應(yīng)用的目的是為生產(chǎn)服務(wù)。生產(chǎn)過程中我們面對的是一個個具體的問題,運用數(shù)學(xué)建模的思想為實際問題構(gòu)建合適的數(shù)學(xué)模型,有助于學(xué)生對數(shù)據(jù)結(jié)構(gòu)課程抽象層的理解運用。
在教學(xué)過程中,選取生活中遇到的具體問題,和學(xué)生一起為實際問題構(gòu)建合適的數(shù)學(xué)模型,能增強(qiáng)學(xué)生的參與感。通過解決問題,構(gòu)建數(shù)學(xué)模型,提高學(xué)生的學(xué)習(xí)興趣。例如,數(shù)學(xué)家歐拉曾經(jīng)解決過的著名的七橋問題,其實要求就是一筆畫成。一筆畫成問題,曾經(jīng)是幼兒園的益智趣味題,現(xiàn)在大家都知道,用數(shù)學(xué)建模理論為這個問題構(gòu)建數(shù)學(xué)模型相對比較容易,使學(xué)生遠(yuǎn)離所學(xué)知識不能實際運用的這一狀況。在教學(xué)過程中選取實際遇到的問題有助于培養(yǎng)學(xué)生應(yīng)用的思想,以及對抽象層的概念理解,掌握從實際問題抽象出數(shù)學(xué)模型的方式和方法。
(2)以應(yīng)用的觀點看數(shù)據(jù)結(jié)構(gòu)教學(xué)
數(shù)據(jù)結(jié)構(gòu)課程介紹程序數(shù)據(jù)的結(jié)構(gòu)、組織和管理技術(shù)以及在此基礎(chǔ)上的算法設(shè)計與分析技術(shù),不僅為后續(xù)課程操作系統(tǒng)、編譯原理、數(shù)據(jù)庫原理、軟件工程、人工智能、計算機(jī)圖形學(xué)、計算機(jī)輔助設(shè)計、多媒體技術(shù)等課程提供必要的知識準(zhǔn)備,更重要的是可以提高學(xué)生軟件分析、設(shè)計、編程和數(shù)據(jù)組織的能力。應(yīng)用型本科側(cè)重數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和在特定結(jié)構(gòu)基礎(chǔ)上的算法實現(xiàn),注重結(jié)構(gòu)的特性、算法的效率性和在實際問題中選擇結(jié)構(gòu)與算法的應(yīng)用性。
許多時候,確定了數(shù)據(jù)結(jié)構(gòu)后,算法就容易得到。有些時候,事情也會反過來,我們根據(jù)特定算法來選擇數(shù)據(jù)結(jié)構(gòu)與之相適應(yīng)。不論哪種情況,解決問題的方法是多種多樣的。
例如:寫一個函數(shù)計算參數(shù)為n(n很大)時式子的值

我們列舉如下三個解決此問題的方法:
方法一:


由上述三個解決方法我們可以看出,解決問題有多種多樣的實現(xiàn)方式。在教學(xué)過程中對同一問題探討多種解決思路有助于學(xué)生對數(shù)據(jù)結(jié)構(gòu)相關(guān)知識的了解,同時也在引導(dǎo)學(xué)生在學(xué)習(xí)算法時養(yǎng)成一題多解的習(xí)慣。
生產(chǎn)應(yīng)用注重效率,對比測試上述三個程序,都能達(dá)到題目要求。但是當(dāng)n很大的時候,方法一的執(zhí)行效率很低。在嵌入式系統(tǒng)的開發(fā)中,程序的運行效率很重要,能讓CPU少執(zhí)行一條指令都是好的。方法二將方法一涉及乘法指令的語句改為執(zhí)行加法指令,既達(dá)到題目的要求且處理時間上縮短了很多,而代價僅僅是增加了一個整形變量。方法三是空間換時間的算法,效率更高。
在數(shù)據(jù)結(jié)構(gòu)教學(xué)中為一個數(shù)學(xué)模式多樣性的解決問題方法,能夠開闊學(xué)生的視野,也能幫助學(xué)生更深入的理解該門課程的理論知識,重視學(xué)生的技術(shù)應(yīng)用能力的培養(yǎng)。在教學(xué)過程中,根據(jù)應(yīng)用型本科的特點,我們要改變學(xué)生解決問題就好,編出的程序能運行這個觀點,注意培養(yǎng)學(xué)生養(yǎng)成注重效率的態(tài)度。教學(xué)過程中,引導(dǎo)學(xué)生自發(fā)的探索面對同一問題時的多種解決方法,并選取最優(yōu)的解決方法。
(3)以應(yīng)用的觀點帶動數(shù)據(jù)結(jié)構(gòu)教學(xué)評價
應(yīng)用本科主要培養(yǎng)技術(shù)密集產(chǎn)業(yè)的高級技術(shù)應(yīng)用型人才,并擔(dān)負(fù)培養(yǎng)生產(chǎn)第一線需要的管理者、組織者以及職業(yè)學(xué)校的師資等任務(wù)。
應(yīng)用型數(shù)據(jù)結(jié)構(gòu)的教學(xué)重點在于突出應(yīng)用,在進(jìn)行教學(xué)評價時,應(yīng)從學(xué)生的專業(yè)技術(shù)知識和應(yīng)用意識等方面綜合測評。簡單的方法更容易被人理解,更容易實現(xiàn),也更容易維護(hù),遇到問題時,我們要優(yōu)先考慮簡單的方案。只有當(dāng)簡單的方法不能滿足要求時,再考慮復(fù)雜的方案。精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運行或存儲效率,數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。現(xiàn)在的CPU運算速度越來越快,但是我們不能把所有問題都推給它去做,我們應(yīng)該將代碼優(yōu)化再優(yōu)化。在評價時從學(xué)生的知識與技能,過程與方法,情感態(tài)度和價值觀等方面進(jìn)行。
應(yīng)用型數(shù)據(jù)結(jié)構(gòu)的教學(xué)要緊扣高等院校應(yīng)用型本科教育“理論夠用,注重實踐”的特點,為學(xué)生夯實理論基礎(chǔ)知識,注重專業(yè)技能的培養(yǎng)。在教學(xué)行程中教師要充分發(fā)揮主導(dǎo)者的作用突出學(xué)生的主體地位,授人以漁。
[1] 徐全智,楊晉浩.數(shù)學(xué)建模.高等教育出版社.2003
[2] 王先國.UML統(tǒng)一建模實用教程.清華大學(xué)出版社.2009
[3] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社.1997
10.3969/j.issn.1001-8972.2011.08.186