姜利群
C語言程序設(shè)計課程是很多計算機類專業(yè)的學(xué)科基礎(chǔ)必修課。早期的C語言課程一般都在大學(xué)二年級才開設(shè),但近年來隨著專業(yè)培養(yǎng)方案的需要,一些大學(xué)將該課程開設(shè)在第一個學(xué)期。于是,由于新生的一些特點造成了學(xué)生普遍地在學(xué)習(xí)中感到C語言難懂、不好學(xué),這種情況還會致使一部分學(xué)生不能適應(yīng)大學(xué)學(xué)習(xí)生活,打擊了他們的自信心,甚至出現(xiàn)學(xué)習(xí)障礙,懼怕后面的專業(yè)課的學(xué)習(xí)。同時也使很多教師感覺C語言課程不好教。筆者總結(jié)這幾年大學(xué)新生C語言課程的教學(xué)實踐,結(jié)合大學(xué)新生的特點,談?wù)勛约阂恍┠w淺的認(rèn)識。
一、大學(xué)新生的學(xué)習(xí)特點
大學(xué)新生學(xué)習(xí)C語言課程要關(guān)注以下三個特點:
第一是心理特點。大學(xué)新生都經(jīng)過了十年寒窗的苦讀,非常疲憊,想著進入了大學(xué)就可以好好放松了,容易出現(xiàn)松懈、懶惰情緒。
第二個特點是基礎(chǔ)差異大。很多中學(xué)只重視高考課的教學(xué),而計算機這些輔助課程基本上是走過場,因此計算機基礎(chǔ)的好壞就憑個人的喜好了。
第三是學(xué)習(xí)方法的不適應(yīng)。大學(xué)的學(xué)習(xí)要求和學(xué)習(xí)方法與中學(xué)的有很大差異。中學(xué)是以老師指導(dǎo)和監(jiān)督為主,自學(xué)為輔,即被動學(xué)習(xí)為主,主動學(xué)習(xí)為輔。大學(xué)則倡導(dǎo)專業(yè)性、自主性,學(xué)習(xí)方式靈活,被動學(xué)習(xí)和主動學(xué)習(xí)相輔相成。這使一部分學(xué)生很不適應(yīng),感覺無法掌控自己的學(xué)習(xí)節(jié)奏,不能夠適應(yīng)大學(xué)的新學(xué)習(xí)環(huán)境。
二、C語言課程教學(xué)對策
1. 合理安排教學(xué)內(nèi)容
合理安排教學(xué)內(nèi)容包括兩個方面:教材的選擇和教學(xué)內(nèi)容的安排。
選擇合適的教材要根據(jù)??七€是本科、學(xué)時的多少進行。例如,對專科學(xué)生,可以選擇實踐性較強的、實例型的教材;對于本科學(xué)生,常采用理論性較強的教材,如譚浩強的《C程序設(shè)計》等。
2. 注意教學(xué)方法的銜接
C語言基礎(chǔ)部分的教學(xué)模式要從幫助學(xué)生轉(zhuǎn)變學(xué)習(xí)方式的角度設(shè)計。重點以老師指導(dǎo)和監(jiān)督為主。例如,C語言基礎(chǔ)部分的內(nèi)容主要是一些基本概念,我們就在課堂教學(xué)中以不同的方法適當(dāng)穿插各種小練習(xí),在每次課后都要布置較大量的課后習(xí)題,并且要求這些習(xí)題在下次課前提交,這樣強化訓(xùn)練、強迫學(xué)生跟著教師的步驟前行,即延續(xù)中學(xué)的被動學(xué)習(xí)方式。同時,教師要在下次課堂上對練習(xí)中的共性問題和重要知識點進行點評,強化學(xué)生的記憶。
舉例:運算符“/”很常用的,教師在講解除號“/”的功能時也一定會講解“整數(shù)相除結(jié)果是整數(shù)”這個特點,但是很多學(xué)生在編程時忘記特點。對此我們布置課后習(xí)題“下面表達式中結(jié)果不是1.5的為(?)。 A. 6/4.0 B. 6.0/4 C. 6/4 D. 6.0/4.0”。經(jīng)過習(xí)題的訓(xùn)練,強化了學(xué)生對除法運算符“/”的“整數(shù)相除結(jié)果是整數(shù)”特點的注意和記憶,基礎(chǔ)就更加扎實。
上面小示例只是說明在初始階段是被動學(xué)習(xí)方式,教師要在細節(jié)上多提示學(xué)生,多做基礎(chǔ)性的練習(xí)。隨著課程的深入,再慢慢地減少課后習(xí)題量,轉(zhuǎn)入實驗訓(xùn)練,而課后作業(yè)則布置一些思考題、選做題,并且引導(dǎo)學(xué)生通過看參考書、上網(wǎng)查找等方式來完成任務(wù),以此來引導(dǎo)學(xué)生的自主學(xué)習(xí)。
3. 夯實基礎(chǔ)、穩(wěn)步前行
在新生的課程教學(xué)中要照顧到學(xué)生之間的基礎(chǔ)差異,注重夯實基礎(chǔ)、穩(wěn)步前行。例如,在控制結(jié)構(gòu)部分,一些教師偏愛講那些邏輯很復(fù)雜的示例,而忽視簡單知識的鞏固。實例:有位教師在if語句教學(xué)中,對于if語句的結(jié)構(gòu)、基本用法時用一個簡單示例就帶過了,認(rèn)為重點應(yīng)該講類似于“判斷閏年”的示例、if語句的嵌套等知識點,結(jié)果使學(xué)生對某方面難題會做,而類似于判斷n為0的基本用法反而不熟悉。注意到這點后,我們加強了基本知識點的練習(xí),方法是布置相應(yīng)的課后練習(xí)題。
4. 注重知識的系統(tǒng)性和綜合能力的培養(yǎng)
為使學(xué)生系統(tǒng)地掌握知識,培養(yǎng)綜合編程能力,我們引入案例把前后的知識點串聯(lián)起來。在函數(shù)之后設(shè)置一個綜合實驗“單科學(xué)生成績管理系統(tǒng)”,要求實現(xiàn)一個成績管理系統(tǒng),用于教師管理一門課程的成績。系統(tǒng)功能有:成績錄入、打印成績單、修改成績、成績排名、統(tǒng)計分?jǐn)?shù)段、統(tǒng)計平均分、統(tǒng)計不及格學(xué)生等。教師可以反復(fù)選擇功能項,完成多項成績管理工作,直至輸入0才結(jié)束。
實際上,“單科學(xué)生成績管理系統(tǒng)”實驗內(nèi)容的訓(xùn)練從基礎(chǔ)部分開始就分步引入了:
(1)輸入輸出中布置習(xí)題“輸出菜單”;
(2)循環(huán)中設(shè)置實驗題“輸入10個成績,輸出最高分、最低分和平均成績”;
(3)數(shù)組中有“分?jǐn)?shù)排序和統(tǒng)計不及格人數(shù)”的實驗訓(xùn)練;
(4)函數(shù)中有“成績錄入函數(shù)設(shè)計、打印成績單函數(shù)設(shè)計”實驗。
這樣,到函數(shù)之后學(xué)生做綜合實驗就比較容易了。根據(jù)學(xué)生的學(xué)習(xí)情況和能力,綜合實驗也可以改成多科學(xué)生成績管理系統(tǒng)。如果學(xué)生的學(xué)業(yè)負(fù)擔(dān)比較重,就將綜合實驗以小組形式完成,這樣不僅能降低學(xué)生的工作量,也鍛煉學(xué)生的協(xié)同工作能力。
通過綜合實驗,促使學(xué)生將前面積累的零散知識進行梳理、總結(jié)并進行綜合應(yīng)用,對前面幾部分知識點有一個系統(tǒng)性的認(rèn)識,也提高了分析問題和綜合程序設(shè)計的能力。同時,學(xué)生看到了C語言的實際應(yīng)用功能,提高了學(xué)習(xí)C語言的興趣,由于實驗比較容易完成,也使學(xué)生很有成就感,增強了學(xué)習(xí)信心。
三、結(jié)語
以上是總結(jié)本人的教學(xué)實踐的一得之見,未必適合普遍的情況。我想只有從學(xué)生的實際情況和特點來設(shè)計教學(xué),才能在有限的學(xué)時內(nèi)讓大學(xué)新生學(xué)懂、掌握更多的C語言編程技術(shù),同時培養(yǎng)新生的自主、合作和探究的學(xué)習(xí)能力,有利于他們的成長。