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