李娜
摘 要:鑒于新時(shí)代的高職學(xué)生的數(shù)學(xué)基礎(chǔ)、學(xué)習(xí)習(xí)慣和學(xué)習(xí)效果,最經(jīng)典的《高等數(shù)學(xué)》的授課,在很多聲音中面臨著配合各專業(yè)的改革。一項(xiàng)教學(xué)改革項(xiàng)目所研究出來(lái)的計(jì)算機(jī)專業(yè)數(shù)學(xué)課程改革的教材通過(guò)舉例和對(duì)比闡述對(duì)課改進(jìn)行比較細(xì)致的探討,教材名稱為《IT職業(yè)數(shù)學(xué)》,本教材出版于2013.4,到現(xiàn)在已經(jīng)用了滿三年,文章對(duì)教改試行過(guò)程中的收獲與不足也進(jìn)行了闡述。
關(guān)鍵詞:計(jì)算機(jī)專業(yè);數(shù)學(xué);課程改革
中圖分類號(hào):G642 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2096-000X(2017)07-0120-04
Absract: Due to base of mathematics, learning habits, learning effects of the students in higher vocational school, the most classical course "higher mathematics" faces innovation relating to corresponding specialties. A new textbook produced from a curriculum revolution describes the details of the innovation.The textbook's name is "IT Professional Mathematics", which was published in 2013. It has been used for 3 years so far. In this article, the gains and the deficiencies are also described.
Keywords: ccomputer specialty; mathematics; curriculum revolution
2011年我院申請(qǐng)了廈門市的一個(gè)課程改革項(xiàng)目,本項(xiàng)目包括四個(gè)子項(xiàng)目,其中一項(xiàng)就是計(jì)算機(jī)專業(yè)數(shù)學(xué)課程的改革,由本人負(fù)責(zé)。本文將從計(jì)算機(jī)專業(yè)數(shù)學(xué)課程改革背景、探索、試行與不足,進(jìn)行探討。
一、計(jì)算機(jī)專業(yè)數(shù)學(xué)課程改革背景
我們是高職院校。考進(jìn)來(lái)的學(xué)生基礎(chǔ)普遍比較薄弱,無(wú)論是知識(shí)的掌握,還是學(xué)習(xí)習(xí)慣。經(jīng)過(guò)調(diào)查,一方面,很多學(xué)生初中就開始聽(tīng)不懂?dāng)?shù)學(xué),很多是從中專升學(xué)上來(lái)的,而他們學(xué)中專時(shí),學(xué)的數(shù)學(xué)很少,從知識(shí)上,很難跟上或銜接上高等數(shù)學(xué)的知識(shí)。而另一方面,絕大多數(shù)學(xué)生的學(xué)習(xí)習(xí)慣不好,即沒(méi)有積極主動(dòng)學(xué)習(xí)的習(xí)慣,沒(méi)有積極主動(dòng)思考和探索的習(xí)慣,除了上課時(shí)“課堂上聽(tīng)課”外,其余時(shí)間幾乎不再碰數(shù)學(xué)課本。以往我們數(shù)學(xué)課開《高等數(shù)學(xué)》和《工程數(shù)學(xué)》,由于學(xué)生基礎(chǔ)薄弱,絕大多數(shù)時(shí)間學(xué)習(xí)效果不佳。再加上現(xiàn)今的電子產(chǎn)品遍地都是,每個(gè)學(xué)生至少一部功能、豐富上網(wǎng)速度快的智能手機(jī),有的甚至每生兩部這樣的智能手機(jī),有的還有IPAD、電腦等。由于自我約束力差,在課堂上很多學(xué)生總愛(ài)玩手機(jī)等電子產(chǎn)品。對(duì)電子產(chǎn)品非常著迷,反復(fù)勸說(shuō)收效很有限。經(jīng)過(guò)與兄弟院校進(jìn)行交流,得知其他兄弟院校的學(xué)生情況差不多。借著本次課程改革,我們二級(jí)學(xué)院決定改掉原先的數(shù)學(xué)課程上課的內(nèi)容,以夠用為原則,將大專課程里面,直接與專業(yè)有關(guān)系,且直接服務(wù)于后繼課程的那些數(shù)學(xué)知識(shí)才進(jìn)行學(xué)習(xí),旨在:在學(xué)生有限的學(xué)習(xí)接受能力、有限的學(xué)習(xí)耐心、有限的愿意花在學(xué)習(xí)的時(shí)間里,讓想學(xué)習(xí)的那部分學(xué)生盡量多學(xué)一點(diǎn)直接能用得上的數(shù)學(xué)知識(shí)。
二、我們的探索
我們二級(jí)學(xué)院是信息工程學(xué)院,主要開設(shè)的專業(yè)有:軟件技術(shù),物聯(lián)網(wǎng)技術(shù)、計(jì)算機(jī)應(yīng)用技術(shù),計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),都要學(xué)習(xí)編程,包括C語(yǔ)言、C++、C#、java、asp.net.等等,再結(jié)合一項(xiàng)從2001年就開始跟蹤的全球?qū)W編程人數(shù)排行版的調(diào)查,C語(yǔ)言一直排名第一,直到2012年開始,慢慢的會(huì)出現(xiàn)有時(shí)候java排名第一,有時(shí)候C語(yǔ)言再次躍居第一,兩者不斷地在第一和第二進(jìn)行競(jìng)爭(zhēng)。可見(jiàn)C語(yǔ)言是多么的重要,它不僅是其他各語(yǔ)言的基礎(chǔ),它的功能也非常強(qiáng)大,如果C語(yǔ)言基礎(chǔ)夠扎實(shí),加上豐富的實(shí)踐經(jīng)驗(yàn),可以用C語(yǔ)言編寫操作系統(tǒng)。再鑒于知識(shí)的可遷移性,我們決定編寫一本直接服務(wù)于編程或者更確切地說(shuō)是直接服務(wù)于C語(yǔ)言的數(shù)學(xué)課程,最終我們給它起名為《IT職業(yè)數(shù)學(xué)》。
《IT職業(yè)數(shù)學(xué)》具體編寫內(nèi)容的探索:
C語(yǔ)言里面有常量、變量、函數(shù)、數(shù)組、指針、指針的指針、函數(shù)調(diào)用等,將與這些相關(guān)的數(shù)學(xué)知識(shí)統(tǒng)一編寫出來(lái),并把具體的數(shù)學(xué)知識(shí)用在C語(yǔ)言的哪些知識(shí)上、怎么用?都進(jìn)行詳細(xì)的闡述。
1. 常量、變量與函數(shù)
我們的上課思路都是先學(xué)習(xí)數(shù)學(xué),再運(yùn)用到編程。
數(shù)學(xué)方面要復(fù)習(xí)一下常量、變量和函數(shù)的相關(guān)知識(shí),之后再引入編程的常量、變量和函數(shù)的相關(guān)知識(shí),在結(jié)構(gòu)上,要分析清楚,數(shù)學(xué)函數(shù)從函數(shù)名、變量、參量、表達(dá)式、值的計(jì)算等在編程方面分別對(duì)應(yīng)著哪些?數(shù)學(xué)的常量、變量與函數(shù)的概念對(duì)大學(xué)生而言,已經(jīng)很熟悉了,再通過(guò)教師的點(diǎn)撥,相信可以很好地理解數(shù)學(xué)的常量、變量與函數(shù)在編程方面的運(yùn)用。
在《IT職業(yè)數(shù)學(xué)》這門課,重點(diǎn)不是學(xué)習(xí)編程,要學(xué)會(huì)的其中之一是:分析出問(wèn)題需要幾個(gè)變量?變量的類型是什么?函數(shù)體中,執(zhí)行語(yǔ)句是什么?也就是側(cè)重分析或者編程里面稱為算法。請(qǐng)看下面的例子。
例1編程求解下列問(wèn)題:
(1)求5和7的和、差、積、商、求余運(yùn)算。
(2)求5.0和7的商。
分析:第一個(gè)小問(wèn)題,涉及到兩個(gè)量的加法,發(fā)現(xiàn)兩者都是整數(shù),所以至少需要定義兩個(gè)整形變量并且分別賦初值5和7,即“int a=5,b=7;”它們的和、差、積、商、求余運(yùn)算的運(yùn)算結(jié)果需要預(yù)先定義變量來(lái)存放,且運(yùn)算結(jié)果都是整數(shù),所以,一開始也需要定義int c,d,e,f,g;還要考慮執(zhí)行語(yǔ)句:c=a+b; d=a-b; e=a*b;f=a/b;g=a%b;
而第二小題,顯然要考慮到小數(shù),就是定義時(shí),有涉及到小數(shù)的變量,要定義為浮點(diǎn)型float。
2. 矩陣與數(shù)組
數(shù)學(xué)的矩陣有一維的,也有二維的,矩陣是一個(gè)表,要幫助學(xué)生掌握矩陣的下標(biāo)的含義。編程中的數(shù)組實(shí)際上就是矩陣的運(yùn)用。編程中一樣有一維的數(shù)組,也有二維的數(shù)組,要幫助學(xué)生明白數(shù)組的下標(biāo)與矩陣的下標(biāo)的差別,數(shù)組中的元素是是怎么存儲(chǔ)的?怎么讀取的?
另外,數(shù)組都是按行存儲(chǔ)和按行讀取。
例2
#include
main()
{
int a[5]={5,4,3,2,1};
ints,p,q;
s=a[2]+a[4];
p= a[2]/a[4];
q= a[2]%a[4];
printf(“%d, %d, %d\n”,s,p,q);
}
程序中,a[2]指的是3,a[4]指的是1.
3. 映射與指針
請(qǐng)先看映射的定義:
定義4.1 設(shè)A、B是兩個(gè)非空集合,如果存在一個(gè)法則f,使得對(duì)A中的每個(gè)元素a,按法則f,在B中有唯一確定的元素b與之對(duì)應(yīng),則稱f為從A到B的映射,記作f:A→B。
其中,b稱為元素a在映射f下的象,記作:b=f(a);a稱為b關(guān)于映射f的原象。集合A中所有元素的像的集合記作f(A)。
可見(jiàn)映射是集合A到集合B之間的對(duì)應(yīng)。
再看指針的概念:
計(jì)算機(jī)的內(nèi)存是由一個(gè)個(gè)的存儲(chǔ)單元組成的,為了方便信息的查找,每個(gè)存儲(chǔ)單元均對(duì)應(yīng)一個(gè)唯一的編號(hào),稱為該存儲(chǔ)單元的地址。存儲(chǔ)在存儲(chǔ)單元內(nèi)的值就是該存儲(chǔ)單元對(duì)應(yīng)的存儲(chǔ)內(nèi)容,存儲(chǔ)內(nèi)容與存儲(chǔ)地址完全不同。不同類型的變量,所占的連續(xù)存儲(chǔ)單元數(shù)目可能不相等。
由于通過(guò)地址可以找到所需的變量的存儲(chǔ)單元,也就是說(shuō),地址“指向”該變量所對(duì)應(yīng)的存儲(chǔ)單元,因此在C語(yǔ)言中,將地址形象地稱為“指針”。如圖1所示,根據(jù)地址值2000就能找到變量c的存儲(chǔ)單元,從而讀取其中的值。
指針就是內(nèi)存單元的地址,一個(gè)變量的地址稱為該變量的指針。如果變量占用多個(gè)存儲(chǔ)單元,則變量的指針指向這些連續(xù)存儲(chǔ)單元的首地址。
指針變量定義的一般形式:
類型*指針變量名:
綜上所述,指針變量存放的是地址,它與它所指向的變量的實(shí)際內(nèi)容相對(duì)應(yīng)。比如16軟件1班的主教室是C301,這個(gè)C301就是地址,而這個(gè)地址對(duì)應(yīng)著16軟件1班的全體學(xué)生。所以我們說(shuō)指針是地址與量的對(duì)應(yīng)。因此,在輸出語(yǔ)句里面,“*p”指的是要輸出指針變量p所對(duì)應(yīng)的量。如:
例3
#include
例7:
#include
float min(float p,float q)
{
if(p>q) return q;
else return p;
}
void main()
{
floatk,m,n;
scanf(“%f,%f”,&m,&n);
k=min(m,n);
printf(“則最小值是:k=%f\n”,k);
}
C語(yǔ)言的編程必須從主函數(shù)main開始執(zhí)行,這個(gè)功能跟數(shù)學(xué)里面的復(fù)合函數(shù)從外層函數(shù)開始運(yùn)算是一樣的道理。Main函數(shù)的第一個(gè)語(yǔ)句先定義了三個(gè)浮點(diǎn)型變量;第二個(gè)語(yǔ)句是輸入其中兩個(gè)變量m和n;第三個(gè)語(yǔ)句遇到被調(diào)函數(shù)或稱為子函數(shù)min(m,n),這時(shí)需要轉(zhuǎn)去執(zhí)行被調(diào)函數(shù),再把運(yùn)算結(jié)果返回主函數(shù)并賦值給k;最后一個(gè)語(yǔ)句是輸出k的值。整個(gè)程序的運(yùn)行思想就跟復(fù)合函數(shù)是一樣的。所以說(shuō)把復(fù)合函數(shù)的思想學(xué)明白了,對(duì)學(xué)習(xí)和理解編程有著非常大的意義。
6. 符號(hào)化
有了以上的一些基礎(chǔ)知識(shí)和基本技能,我們還需要學(xué)會(huì)將現(xiàn)實(shí)生活中的命題進(jìn)行數(shù)學(xué)符號(hào)化,再用前面學(xué)過(guò)的基礎(chǔ)知識(shí)和基本技能轉(zhuǎn)化為編程語(yǔ)言。
而要將現(xiàn)實(shí)生活中的命題進(jìn)行數(shù)學(xué)符號(hào)化,就必須要學(xué)習(xí)數(shù)理邏輯。我們需要學(xué)習(xí)命題概念、需要學(xué)習(xí)命題的表示、命題聯(lián)結(jié)詞、用命題的聯(lián)結(jié)詞表示復(fù)合命題、命題的指派、真值表、謂詞、謂詞的演算,以這些為基礎(chǔ),用這些知識(shí)把實(shí)際問(wèn)題符號(hào)化;接著還需要學(xué)習(xí)C語(yǔ)言里面的:關(guān)系運(yùn)算符與關(guān)系表達(dá)式、邏輯運(yùn)算符與邏輯表達(dá)式、學(xué)習(xí)C語(yǔ)言里面的編程結(jié)構(gòu),并最終把符號(hào)化的數(shù)學(xué)問(wèn)題用編程來(lái)求解。請(qǐng)看下列:
例8編程:輸入兩個(gè)任意的整數(shù),將它們按從小到大的順序輸出。并寫出編程的思路。
#include