摘要:本文論述了職業(yè)中學(xué)計算機(jī)專業(yè)的專業(yè)課程:C語言教材中存在的若干問題,并提出了相應(yīng)的對策。 關(guān)鍵詞:權(quán)威教材,錯誤,用C語言的方法去教C語言,講義。 C語言是職業(yè)中學(xué)計算機(jī)專業(yè)學(xué)生必修的一門課程,筆者在教學(xué)中感到中專等專業(yè)學(xué)校所用的C語言教材存在多問題。目前,市場上的C語言的教材非常多,其中專門的中等專業(yè)學(xué)校教材的也不少,筆者在教學(xué)中使用過兩種教材,作為參考,筆者幾乎翻遍了書店的所有的入門教材,包括學(xué)校教材,發(fā)現(xiàn)學(xué)校用教材水平普遍較低,具體表現(xiàn)如下。 第一,在中專和職業(yè)中學(xué)這一層次上沒有一本權(quán)威的教科書。一本權(quán)威的教科書是很有必要的,客觀地說,教書的教師應(yīng)當(dāng)沒有編書的學(xué)者水平高,教師上課時,教材本身應(yīng)當(dāng)是一本很好的參考書,教師往往按教材組織教學(xué),中;蚵氈杏绕淙绱。因此尋找一本適用教材至關(guān)重要,然而中等專業(yè)(包括職業(yè)中學(xué)這一塊)的C語言教材的出版,似乎仍處于戰(zhàn)國時代,眾多的教材讓教師無所適從。 第二,各出版社出版的C語言教材很多,但大部份是低水平上的重復(fù),各教材的抄襲痕跡明顯,無論是教材形式的編排還是教學(xué)內(nèi)容,大多雷同,內(nèi)容陳舊,書中錯誤很多。例如,中國財政經(jīng)濟(jì)經(jīng)出版社出版的某教材中,依然使用非ANSI標(biāo)準(zhǔn)的C語言作為教學(xué)內(nèi)容。(注:ANSI C標(biāo)準(zhǔn)早在1983年即已制定)。而書中的錯誤也很多,有一些可能是印刷錯誤,如將枚舉類型當(dāng)成基本類型,有一些則明顯是編寫錯誤,如將c=(double)2/3 等價于c=(double)(2/3) 。此外例題中有很多錯誤,有些例子上機(jī)執(zhí)行根本得不到正確結(jié)果。有一些例子還犯了的常識性錯誤,如‘野指針’問題,這本來是初學(xué)C語言時常易犯的錯誤,編程時如不注意會帶來死機(jī)等嚴(yán)重后果,教材本應(yīng)指出并提醒學(xué)生注意,但教材中的一些例子本身卻使用了‘野指針’,并且未對此作任何說明,這樣的例子比錯誤的例子更可惡,如教師不能注意到,教給學(xué)生將會給學(xué)生帶來嚴(yán)重的負(fù)面影響。 第三,不從C語言實際出發(fā),不用C語言的方法去教C語言,而是沿用BASIC語言的一套,或者說,很多C語言教材是BASIC語言教材的C語言化。事實上每一門學(xué)課都有自身的適用特點、場合,不能生搬硬套。由于BASIC語言是入門教學(xué),很多非計算機(jī)專業(yè)學(xué)生學(xué)完BASIC后不再學(xué)習(xí)其它計算機(jī)專業(yè)課程,所以BASIC的教學(xué)上不僅要教學(xué)生BASIC語言本身,而且還承擔(dān)著部份算法及數(shù)據(jù)結(jié)構(gòu)等學(xué)課的內(nèi)容,是一門綜合的學(xué)科,因此,BASIC教材中的例題、作業(yè)體現(xiàn)了這個特點,有較多的數(shù)學(xué)問題,如成績統(tǒng)計、九九乘法表、階乘、裴波拉齊數(shù)列等等。而目前很多C教材也沿用了這些例題或習(xí)題,用C語言改寫一番。筆者以為這是不合適的。學(xué)習(xí)C語言課程之前,學(xué)生已學(xué)過BASIC語言,如果沒有學(xué)過,那么就應(yīng)當(dāng)學(xué)過數(shù)據(jù)結(jié)構(gòu)、算法等課程,這些問題在前面的課程中已解決,用C語言再來解決一遍意義不大,C語言所長并不這里,現(xiàn)實中恐怕也很少有人會用C語言去編寫這些程序,尤其是中等專業(yè)學(xué)校畢業(yè)的學(xué)生。C語言是一門實用性很強(qiáng)的學(xué)課,在教材編制中應(yīng)當(dāng)體現(xiàn)出以能力為本位和以實用為目標(biāo)的綜合性原則,即學(xué)生在掌握C語言的基本語法的基礎(chǔ)上,能夠編寫一些實用的小程序,或則在教師的指導(dǎo)下,參與一個大程序的部份子程序的編寫工作, 因而在內(nèi)容安排上應(yīng)當(dāng)多一些C語言編程可能遇到的現(xiàn)實問題的例子,比如,在教while語句時,例1的實際問題就要比例2的數(shù)學(xué)問題生動得多。當(dāng)例1介紹后,還可以告訴學(xué)生,很多軟件中用ESC鍵退出,就可以用這種方法實現(xiàn),如果將本例子略作改寫,如增加一個退出函數(shù)QUIT(),就可以在退出時給出一些問候語或版權(quán)信息等內(nèi)容。就如某某常見軟件一樣。這樣,可以提高學(xué)生學(xué)習(xí)的興趣,更重要的是可以減少學(xué)生的神密感,覺得編程其實并不是想象中那么高不可攀的。這一點很重要,筆者發(fā)覺很多學(xué)生對編程有一種恐懼感,而且很嚴(yán)重,覺得編程是深不可測的事,不是自已的能做到的,很多人害怕上語言課,就是成績較好的同學(xué)也只是想怎樣學(xué)好本門課程,多考分?jǐn)?shù),而不去(不敢)想怎么提高自已的編程能力,影響了他們主動探索的精神;蛟S有人認(rèn)為學(xué)會了數(shù)學(xué)問題,再解決實際問題,不就是再多轉(zhuǎn)一個彎嗎?有什么困難?對于學(xué)通了的人來說,或許的確沒有什么因難的,但對于初學(xué)者,尤其對于中;蚵殬I(yè)學(xué)生而言,這個彎他們可能永遠(yuǎn)也轉(zhuǎn)不過來,而且還會產(chǎn)生‘這東西學(xué)了有什么用?’的焦慮與困惑。 判斷鍵值,并根據(jù)鍵值做相應(yīng)動作 main() { int i=0; char c; while(1) /*設(shè)置循環(huán)*/ { c='\0'; /*變量賦初值*/ while(c!=13&&c!=27) /*鍵盤接收字符直到按回車或Esc鍵*/ { c=getch(); printf("%c\n", c); } if(c==27) break; /*若按Esc鍵則退出*/ i++; printf("The No. is %d\n", i); } printf("The end"); } 例 1 計算40位同學(xué)的平均成績。 Main() { int score,I,sum; sum=0; I=1; While(I<=40) { printf("input the %dth score:",I); scanf("%d",&score); sum+=score; I++; } printf("\n The average of class is %3.1f"sum/40.0); } 例2 以上問題,雖是以C語言教材為例來談,其實許多其它中等業(yè)學(xué)校教材存在著同樣的問題,那么如何來解決這問題呢?筆者認(rèn)為可以從以下幾個方面著手。 一、模仿高校教材建設(shè)模式,實行全國范圍公開征稿。許多高校教材編寫在全國范圍內(nèi) 征稿,由各大專院校及社會各界能人投標(biāo),經(jīng)由專家組成的評審組審定后再編寫,這樣可以杜絕教材編寫中的功利主義及防止粗制濫造。 二、教師不能被現(xiàn)有教材所束縛,從目前情況來看,許多教材名不符實,如果在教學(xué)中發(fā)現(xiàn)教材不能滿足要求,就應(yīng)當(dāng)毫不猶豫地讓教材‘降格’,降為‘參考教材’,教學(xué)中以講稿為主。甚至如果認(rèn)為教學(xué)大綱的部份內(nèi)容不合適,也可以不遵從這部份內(nèi)容。一切以讓學(xué)生真正學(xué)到知識和真正培養(yǎng)學(xué)生能力為準(zhǔn)。當(dāng)然,不遵從教學(xué)大綱應(yīng)當(dāng)慎重考慮,請教專家,并得到學(xué)校的同意。 三、學(xué)校應(yīng)當(dāng)放開手腳,不要將教師完全束縛于大綱,鼓勵教師編寫講稿詳案,并盡量讓一位教師多次上本門課程,一份講稿在多次修改后、完善后,就成了一本書,且它各部份內(nèi)容的安排較為妥當(dāng),各部份的重點、難點都能較為突出,教法上也會有一定的體現(xiàn),這樣的教材,肯定好于那些東拼西湊、相互抄襲的書。在一定的時候,學(xué)?捎枰詫彾ǎ(nèi)出版,如果確實好,還可以向有關(guān)出版社推薦。事實上許多高校的教材就是如此編寫出來的,使用效果較好。 參考資料: 1.《C語言大全》 [美]Herbert Schildt 著 郭興社 戴建鵬 編譯 電子工業(yè)出版社 2.《職教課程編制原則探索》雷正光 《職教通訊》97/6。 |