◇宿遷學院文理學院 張 欣 衛(wèi)麗華
本文針對信息與計算科學專業(yè)特點,設計了《數(shù)據(jù)結構》中線性表這一知識點的實踐教學案例。該案例包含了數(shù)學分析中泰勒公式的理論及應用、順序存儲的線性表的定義與應用,同時非常自然地融入思政元素。該實踐教學案例的設計充分考慮了信息與計算科學專業(yè)學生的特點,有助于學生對數(shù)學和數(shù)據(jù)結構知識的理解。本文詳細給出了該案例的教學過程,具有較強的可操作性。
1998年,教育部頒布了《普通高等學校本科專業(yè)目錄(1998年頒布)》,將原計算數(shù)學及其應用軟件、運籌學、控制科學、信息科學專業(yè)合并為信息與計算科學專業(yè),屬數(shù)學類專業(yè)[1]。由此可以看出,信息與計算機科學專業(yè)是在數(shù)學類專業(yè)的課程體系中嵌入計算機軟件類課程,這是信息與計算科學專業(yè)設立的初衷,也是該專業(yè)的基因和特色。2012和2020年,教育部又分別頒布了《普通高等學校本科專業(yè)目錄(2012年)》和《普通高等學校本科專業(yè)目錄(2020年版)》,其中信息與計算科學專業(yè)為理學門類專業(yè),屬數(shù)學類專業(yè),授予理學學士學位[2-3]。信息與計算科學專業(yè)的設立得益于計算機科學技術的迅猛發(fā)展,經(jīng)過十幾年的發(fā)展,從專業(yè)定位、人才培養(yǎng)模式、課程體系、實踐教學環(huán)節(jié)、教學方法等方面都進行了積極的研究與探索[4-5],使該專業(yè)建設逐步走向完善。目前國內(nèi)開設該專業(yè)的院校有337所,筆者所在院校宿遷學院于2008年在揚州大學的聯(lián)建下開設該專業(yè),是較早開設信息與計算科學專業(yè)的院校之一。筆者畢業(yè)于信息與計算科學專業(yè),從2009年起多次承擔《數(shù)據(jù)結構》的理論和實踐教學工作,對信息與計算科學專業(yè)《數(shù)據(jù)結構》的實踐教學工作總結了一些自己的經(jīng)驗,本文簡述之。
《數(shù)據(jù)結構》是信息與計算科學專業(yè)課程體系中非常重要的一門專業(yè)課程,在課程體系中起著舉足輕重的作用,是數(shù)據(jù)庫、算法分析與設計、軟件工程等專業(yè)課程的前導課程。該課程是多門計算機課程的必備基礎。通過本課程的學習,學生可以具備數(shù)據(jù)組織和處理能力,也可以提高軟件開發(fā)能力?!稊?shù)據(jù)結構》的學習也為后續(xù)課程以及程序設計水平的提高打下良好的基礎。
該課程具有較強的“計算機”屬性,“數(shù)學”屬性偏弱,因此,該課程的教學工作多由計算機相關專業(yè)的教師承擔,教學內(nèi)容的安排與設計也多與計算機相關專業(yè)一致,未能充分考慮信息與計算科學專業(yè)的特點,即信息與計算科學本質(zhì)上仍屬數(shù)學類專業(yè),專業(yè)本身具有很強的“數(shù)學”屬性。因此,在教學中,若能充分結合學生所學的數(shù)學知識,在實踐教學中為信息與計算科學專業(yè)的學生“量身定制”一部分實驗內(nèi)容,一方面可以加深學生對數(shù)據(jù)結構和高等數(shù)學知識的理解程度,另一方面,也可以讓學生體會到知識融合的魅力,提高學生學習興趣。
關于信息與計算科學專業(yè)《數(shù)據(jù)結構》課程的教學改革,不少學者對此提出了好的理念和思路[6-10]。謝爽、吳彩云[6]提出了基于數(shù)學思維的《數(shù)據(jù)結構》課程教學方法研究,文章論證和分析了《數(shù)據(jù)結構》課程成績與數(shù)學基礎成正相關關系,且線性關系顯著。王嘉[7]對信息與計算科學專業(yè)《數(shù)據(jù)結構》課程的教學進行了探索,提出將學習目標和實踐環(huán)節(jié)分級,依托“微助教”平臺進行信息化教學,通過線上導學、測評、實踐指導等環(huán)節(jié),優(yōu)化教學過程。唐年慶、汪在榮[8]對數(shù)據(jù)結構中的線性結構教學進行了分析;黃紫成、隋占麗[9]探索了在移動學習環(huán)境下《數(shù)據(jù)結構》課程教學的改革;甘秋云、鄭春聰[10]以《數(shù)據(jù)結構》課程為例,結合本科高校教學經(jīng)驗,探討了基于OBE-CDI教學模式下的課程改革實踐。本文在以上理論的基礎上,從實踐教學的角度給出了《數(shù)據(jù)結構》中線性結構的教學案例。
《數(shù)據(jù)結構》的教學內(nèi)容主要包含線性表、棧和隊列、串和數(shù)組、樹和二叉樹、圖、查找與排序等。我們主要在線性結構部分設計了與高等數(shù)學知識密切相關的實驗,如表1所示。

表1 線性結構實驗內(nèi)容
本文主要對表1中的第一個實驗項目進行詳細闡述。
泰勒公式是數(shù)學分析中非常重要的內(nèi)容,泰勒公式的幾何意義是利用多項式函數(shù)來逼近原函數(shù),由于多項式函數(shù)可以求任意階導數(shù),易于計算,且便于求解極值或者判斷函數(shù)的性質(zhì),因此通過泰勒公式可以求函數(shù)值和獲取函數(shù)信息。不僅如此,泰勒公式在算法的收斂性分析中也是非常基礎和重要的工具。因此,熟練掌握、理解和運用泰勒公式對信息與計算科學專業(yè)的學生而言非常重要。
基于此,我們將泰勒公式的知識融入線性表這一知識點中,設計了“利用泰勒公式計算的值”這一實驗項目。實驗內(nèi)容如下:
有了上述知識,我們便可以利用數(shù)據(jù)結構中順序存儲的線性表來完成相應的計算。首先,定義順序表的結構如下(用C語言描述):
為了測試本案例代碼的可行性和正確性,我們將運算結果與調(diào)用相應庫函數(shù)計算得到的結果進行對比,并設計了部分測試用例進行測試。其中主函數(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來進行測試,運行結果均與庫函數(shù)運行結果相同,部分運行結果截圖如下:

圖1 =1時程序運行結果

圖2 =700時程序運行結果

圖3 =-700時程序運行結果
在實際教學中,除了與庫函數(shù)的運行結果進行對比,我們還讓學生將運行結果與手機自帶的計算器運算結果進行對比。學生會發(fā)現(xiàn)不同型號的手機運算結果并不完全相同,有部分運行結果甚至是錯誤的。比如在計算時,庫函數(shù)和本文中的程序運行結果均為:0.999999682932,而有些計算器計算出的結果為:0.017452406437,由于近似等于1才是合理的。計算余弦函數(shù)也存在類似問題。這樣的發(fā)現(xiàn)增加了學生對科學知識的敬畏感,同時也激發(fā)了學生認真學習的熱情。
該實踐教學案例的設計充分考慮了信息與計算科學專業(yè)兼具“數(shù)學”屬性和“計算機”屬性這一特征,將數(shù)學分析中非常重要的泰勒展開式融入在數(shù)據(jù)結構的線性表這一知識點中,同時,在進行多項式求值時,非常自然地融入思政元素。本文詳細地介紹了該實踐案例的實施過程,具有較強的可操作性。利用該實驗項目,學生可以體會到數(shù)學分析知識在數(shù)據(jù)結構中的應用,一方面提高學生對數(shù)學知識的理解;另一方面,學生利用所學的數(shù)據(jù)結構知識,可以切實地計算出初等函數(shù)的函數(shù)值,同時還能發(fā)現(xiàn)手機“計算器”這一應用中的一些錯誤,同學們也非常有成就感,提高了學生對數(shù)據(jù)結構的學習興趣。