◇宿遷學(xué)院文理學(xué)院 張 欣 衛(wèi)麗華
本文針對信息與計算科學(xué)專業(yè)特點,設(shè)計了《數(shù)據(jù)結(jié)構(gòu)》中線性表這一知識點的實踐教學(xué)案例。該案例包含了數(shù)學(xué)分析中泰勒公式的理論及應(yīng)用、順序存儲的線性表的定義與應(yīng)用,同時非常自然地融入思政元素。該實踐教學(xué)案例的設(shè)計充分考慮了信息與計算科學(xué)專業(yè)學(xué)生的特點,有助于學(xué)生對數(shù)學(xué)和數(shù)據(jù)結(jié)構(gòu)知識的理解。本文詳細(xì)給出了該案例的教學(xué)過程,具有較強(qiáng)的可操作性。
1998年,教育部頒布了《普通高等學(xué)校本科專業(yè)目錄(1998年頒布)》,將原計算數(shù)學(xué)及其應(yīng)用軟件、運(yùn)籌學(xué)、控制科學(xué)、信息科學(xué)專業(yè)合并為信息與計算科學(xué)專業(yè),屬數(shù)學(xué)類專業(yè)[1]。由此可以看出,信息與計算機(jī)科學(xué)專業(yè)是在數(shù)學(xué)類專業(yè)的課程體系中嵌入計算機(jī)軟件類課程,這是信息與計算科學(xué)專業(yè)設(shè)立的初衷,也是該專業(yè)的基因和特色。2012和2020年,教育部又分別頒布了《普通高等學(xué)校本科專業(yè)目錄(2012年)》和《普通高等學(xué)校本科專業(yè)目錄(2020年版)》,其中信息與計算科學(xué)專業(yè)為理學(xué)門類專業(yè),屬數(shù)學(xué)類專業(yè),授予理學(xué)學(xué)士學(xué)位[2-3]。信息與計算科學(xué)專業(yè)的設(shè)立得益于計算機(jī)科學(xué)技術(shù)的迅猛發(fā)展,經(jīng)過十幾年的發(fā)展,從專業(yè)定位、人才培養(yǎng)模式、課程體系、實踐教學(xué)環(huán)節(jié)、教學(xué)方法等方面都進(jìn)行了積極的研究與探索[4-5],使該專業(yè)建設(shè)逐步走向完善。目前國內(nèi)開設(shè)該專業(yè)的院校有337所,筆者所在院校宿遷學(xué)院于2008年在揚(yáng)州大學(xué)的聯(lián)建下開設(shè)該專業(yè),是較早開設(shè)信息與計算科學(xué)專業(yè)的院校之一。筆者畢業(yè)于信息與計算科學(xué)專業(yè),從2009年起多次承擔(dān)《數(shù)據(jù)結(jié)構(gòu)》的理論和實踐教學(xué)工作,對信息與計算科學(xué)專業(yè)《數(shù)據(jù)結(jié)構(gòu)》的實踐教學(xué)工作總結(jié)了一些自己的經(jīng)驗,本文簡述之。
《數(shù)據(jù)結(jié)構(gòu)》是信息與計算科學(xué)專業(yè)課程體系中非常重要的一門專業(yè)課程,在課程體系中起著舉足輕重的作用,是數(shù)據(jù)庫、算法分析與設(shè)計、軟件工程等專業(yè)課程的前導(dǎo)課程。該課程是多門計算機(jī)課程的必備基礎(chǔ)。通過本課程的學(xué)習(xí),學(xué)生可以具備數(shù)據(jù)組織和處理能力,也可以提高軟件開發(fā)能力。《數(shù)據(jù)結(jié)構(gòu)》的學(xué)習(xí)也為后續(xù)課程以及程序設(shè)計水平的提高打下良好的基礎(chǔ)。
該課程具有較強(qiáng)的“計算機(jī)”屬性,“數(shù)學(xué)”屬性偏弱,因此,該課程的教學(xué)工作多由計算機(jī)相關(guān)專業(yè)的教師承擔(dān),教學(xué)內(nèi)容的安排與設(shè)計也多與計算機(jī)相關(guān)專業(yè)一致,未能充分考慮信息與計算科學(xué)專業(yè)的特點,即信息與計算科學(xué)本質(zhì)上仍屬數(shù)學(xué)類專業(yè),專業(yè)本身具有很強(qiáng)的“數(shù)學(xué)”屬性。因此,在教學(xué)中,若能充分結(jié)合學(xué)生所學(xué)的數(shù)學(xué)知識,在實踐教學(xué)中為信息與計算科學(xué)專業(yè)的學(xué)生“量身定制”一部分實驗內(nèi)容,一方面可以加深學(xué)生對數(shù)據(jù)結(jié)構(gòu)和高等數(shù)學(xué)知識的理解程度,另一方面,也可以讓學(xué)生體會到知識融合的魅力,提高學(xué)生學(xué)習(xí)興趣。
關(guān)于信息與計算科學(xué)專業(yè)《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)改革,不少學(xué)者對此提出了好的理念和思路[6-10]。謝爽、吳彩云[6]提出了基于數(shù)學(xué)思維的《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)方法研究,文章論證和分析了《數(shù)據(jù)結(jié)構(gòu)》課程成績與數(shù)學(xué)基礎(chǔ)成正相關(guān)關(guān)系,且線性關(guān)系顯著。王嘉[7]對信息與計算科學(xué)專業(yè)《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)進(jìn)行了探索,提出將學(xué)習(xí)目標(biāo)和實踐環(huán)節(jié)分級,依托“微助教”平臺進(jìn)行信息化教學(xué),通過線上導(dǎo)學(xué)、測評、實踐指導(dǎo)等環(huán)節(jié),優(yōu)化教學(xué)過程。唐年慶、汪在榮[8]對數(shù)據(jù)結(jié)構(gòu)中的線性結(jié)構(gòu)教學(xué)進(jìn)行了分析;黃紫成、隋占麗[9]探索了在移動學(xué)習(xí)環(huán)境下《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)的改革;甘秋云、鄭春聰[10]以《數(shù)據(jù)結(jié)構(gòu)》課程為例,結(jié)合本科高校教學(xué)經(jīng)驗,探討了基于OBE-CDI教學(xué)模式下的課程改革實踐。本文在以上理論的基礎(chǔ)上,從實踐教學(xué)的角度給出了《數(shù)據(jù)結(jié)構(gòu)》中線性結(jié)構(gòu)的教學(xué)案例。
《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)內(nèi)容主要包含線性表、棧和隊列、串和數(shù)組、樹和二叉樹、圖、查找與排序等。我們主要在線性結(jié)構(gòu)部分設(shè)計了與高等數(shù)學(xué)知識密切相關(guān)的實驗,如表1所示。
表1 線性結(jié)構(gòu)實驗內(nèi)容
本文主要對表1中的第一個實驗項目進(jìn)行詳細(xì)闡述。
泰勒公式是數(shù)學(xué)分析中非常重要的內(nèi)容,泰勒公式的幾何意義是利用多項式函數(shù)來逼近原函數(shù),由于多項式函數(shù)可以求任意階導(dǎo)數(shù),易于計算,且便于求解極值或者判斷函數(shù)的性質(zhì),因此通過泰勒公式可以求函數(shù)值和獲取函數(shù)信息。不僅如此,泰勒公式在算法的收斂性分析中也是非?;A(chǔ)和重要的工具。因此,熟練掌握、理解和運(yùn)用泰勒公式對信息與計算科學(xué)專業(yè)的學(xué)生而言非常重要。
基于此,我們將泰勒公式的知識融入線性表這一知識點中,設(shè)計了“利用泰勒公式計算的值”這一實驗項目。實驗內(nèi)容如下:
有了上述知識,我們便可以利用數(shù)據(jù)結(jié)構(gòu)中順序存儲的線性表來完成相應(yīng)的計算。首先,定義順序表的結(jié)構(gòu)如下(用C語言描述):
為了測試本案例代碼的可行性和正確性,我們將運(yùn)算結(jié)果與調(diào)用相應(yīng)庫函數(shù)計算得到的結(jié)果進(jìn)行對比,并設(shè)計了部分測試用例進(jìn)行測試。其中主函數(shù)代碼如下:
在上述代碼中,expValue(x),sinValue(x)和cosValue(x)這三個函數(shù)是本案例的代碼;exp(x),sin(x)和cos(x)是庫函數(shù)math.h中的函數(shù)。我們分別輸入x=1,1.57,3.14,50,700,-1,-1.57,-3.14,-50,-700來進(jìn)行測試,運(yùn)行結(jié)果均與庫函數(shù)運(yùn)行結(jié)果相同,部分運(yùn)行結(jié)果截圖如下:
圖1 =1時程序運(yùn)行結(jié)果
圖2 =700時程序運(yùn)行結(jié)果
圖3 =-700時程序運(yùn)行結(jié)果
在實際教學(xué)中,除了與庫函數(shù)的運(yùn)行結(jié)果進(jìn)行對比,我們還讓學(xué)生將運(yùn)行結(jié)果與手機(jī)自帶的計算器運(yùn)算結(jié)果進(jìn)行對比。學(xué)生會發(fā)現(xiàn)不同型號的手機(jī)運(yùn)算結(jié)果并不完全相同,有部分運(yùn)行結(jié)果甚至是錯誤的。比如在計算時,庫函數(shù)和本文中的程序運(yùn)行結(jié)果均為:0.999999682932,而有些計算器計算出的結(jié)果為:0.017452406437,由于近似等于1才是合理的。計算余弦函數(shù)也存在類似問題。這樣的發(fā)現(xiàn)增加了學(xué)生對科學(xué)知識的敬畏感,同時也激發(fā)了學(xué)生認(rèn)真學(xué)習(xí)的熱情。
該實踐教學(xué)案例的設(shè)計充分考慮了信息與計算科學(xué)專業(yè)兼具“數(shù)學(xué)”屬性和“計算機(jī)”屬性這一特征,將數(shù)學(xué)分析中非常重要的泰勒展開式融入在數(shù)據(jù)結(jié)構(gòu)的線性表這一知識點中,同時,在進(jìn)行多項式求值時,非常自然地融入思政元素。本文詳細(xì)地介紹了該實踐案例的實施過程,具有較強(qiáng)的可操作性。利用該實驗項目,學(xué)生可以體會到數(shù)學(xué)分析知識在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用,一方面提高學(xué)生對數(shù)學(xué)知識的理解;另一方面,學(xué)生利用所學(xué)的數(shù)據(jù)結(jié)構(gòu)知識,可以切實地計算出初等函數(shù)的函數(shù)值,同時還能發(fā)現(xiàn)手機(jī)“計算器”這一應(yīng)用中的一些錯誤,同學(xué)們也非常有成就感,提高了學(xué)生對數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)興趣。