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