崔武子 劉 瑩 和青芳
文章編號:1672-5913(2009)10-0093-03
摘要:本文圍繞“教師方便教,學生容易學”的主題,總結出多年的探索與實踐經驗,樹立了“夯實基礎,實例貫穿,重在實踐,易教易學”的教學思想。該教學思想在實踐中取得了很好的效果。
關鍵詞:程序設計;實例貫穿;應用型大學
中圖分類號:G642
文獻標識碼:B
1引言
“C程序設計”課程是理工科專業程序設計的首選課程,很多高校都將這門課程安排在大學一年級,因此是學生所接觸的第一門計算機語言課程。由于對多數學生來說C語言是零起點,邏輯思維能力還處于一個較低的水平,再加上C語言本身的特點,學生普遍反映枯燥、難學,不少教師也確實感到在本課程的教學過程中存在很多困難。針對這些問題,筆者在對課程進行教學改革與研究的基礎上,圍繞“教師方便教,學生容易學”的主題,開展了一系列的探索與實踐活動,樹立了“夯實基礎,實例貫穿,重在實踐,易教易學”的教學思想,并在實踐中取得了很好的效果。筆者以此教學思想為指導編寫的教材《C程序設計教程(第2版)》已被納入普通高等教育“十一五”國家級規劃教材,被評為2008年北京市高等教育精品教材,并獲得了第八屆全國大學出版社優秀暢銷書二等獎。
2研究和建立教學模式
2.1以例題組織教學,夯實基礎
應用型大學教育必須改變脫離實際的學院式教學模式,要面向社會,面向應用。學是為了用,在學時有限的條件下,應抓住主要矛盾,急用先學。
根據應用型大學的培養特點,教學大綱的制定,教學方法的設計,應遵循夠用為度,精講多練的原則。我們把各章內容均分為基礎部分和提高部分,在基礎部分中講授最基本、最常用的內容,在提高部分中提供擴展知識的內容。例如,在循環結構一章的基礎部分中,介紹for、while、do-while語句的規范使用和應用舉例,在提高部分中進一步介紹三種語句的比較、不規范的for語句以及goto語句等。提高部分的內容可以根據課時的情況和學生掌握的程度作為選講,或學生自學。
為了能在有限的課時中,達到激發學生的學習積極性,培養學生的實踐能力的目的,采用了將抽象的理論轉化為具體的實例的做法。即將所有的教學內容用實用性、趣味性強的例題來組織,打破了“先打基礎后應用”的模式,從而保證了在實踐的過程中學習了必要的理論知識。
例如,文獻[1]中提到“用實例調用函數求n的平方根和n!(n>0)”引進函數的調用方法,程序代碼如下:
#include
#include
long myfac(int n)
{ int i=0;long y=1;
for(i=1; i<=n; i++)y=y*i;
return y;
}
main( )
{ int n=0;double y=0;long z=0;
printf("Input data:");scanf("%d",&n);
y=sqrt(n);
z=myfac(n);
printf("Square root of %d:%lf ",n,y);
printf("%d!=%ld ",n,z);
}
通過該實例的電子課件非常直觀地介紹庫函數和自編函數的調用過程。在教學過程中,所有新知識點都使用實例引入,并按照編程點撥→程序代碼→運行結果→程序說明的順序進行的。其中程序說明部分是把感性認識升華到理性認識的重要步驟,對例題中出現的所有新的知識點進行介紹、歸納、分析和總結。
2.2以實例貫穿整個教學過程
講授本課程的目的就是使學生能夠編寫有一定應用價值的程序。因此我們在第一堂課中就演示一個典型的應用實例(電子通訊錄管理系統),讓學生獲得感性的認知,并了解學完本課程將來能做什么,達到引起學生學習興趣的目的。并在以后各章介紹基礎部分中的小實例后,編寫和完善電子通訊錄管理系統的部分代碼。例如,講授“順序結構”一章的基礎部分后,就讓學生編寫顯示菜單的程序;講授“分支結構”一章的基礎部分后,引導學生編寫從菜單中選擇菜單項的程序;講授“循環結構”一章的基礎部分后,指導學生編寫重復在菜單中選擇菜單項的程序,如圖1所示。以此方法,講完最后一章“文件”時,學生就可以編寫電子通訊錄管理系統的全部代碼,從而很好的把整個教學內容貫穿了起來。

我們在講授完“C語言程序設計”課程后還設有兩周的課程設計。在此階段,首先以電子通訊錄管理系統作為實例,詳細介紹算法的設計、模塊圖和流程圖的繪制、代碼的編寫等過程,再使學生以學習小組的形式模仿該實例編寫其他的應用程序。這樣既加強了小組成員之間的協調合作,又充分發揮了學生的自主性、創造性。達到了對學生進行系統化的編程訓練,提高學生程序設計能力的目的。
2.3即學即練,重在實踐
為了貫徹“即學即練,重在實踐”的原則,我們的教學均安排在機房,并采用實例組織教學,給學生提供盡可能多的上機實踐的機會。各章提供的上機訓練分任務、目標、步驟、提示、擴展,其中步驟是給基礎差的學生,提示是提供給多數學生,擴展是提供給基礎好的學生,以此方法兼顧學生水平參差不齊的情況。
學生競賽是課外自我提升的有效方法。我們結合學校的辦學定位和應用型大學的特點,抓住育人的過程,組織了C語言程序設計大賽,極大地推動了本課程教學改革的進程,激發并提高了學生的學習興趣。大賽采用小組參賽的形式,每組充分發揮小組內各成員的優勢,共同完成三道比賽題目。此項活動既鍛煉了學生的勇于探索的科學精神又進一步強化了團結協作的能力。
考試是指揮棒,怎樣考試在很大程度上決定著教師如何教,教什么;學生如何學,學什么。為此我們進行了考核改革,采用機考、編程的方式,使學生在平時學習中重視實踐。
2.4重視“易教”問題,體現“易學”思想
在教學過程中,如何做才能解決學生“難學”和教師“難教”的問題呢?這是我們十年來的改革焦點。在強調學生“易學”的同時,也應對教師“易教”的問題給予充分的重視,用細致入微的方法,為教師排憂解難,實現教學過程中的“雙易”目標。
(1) 趣味和直觀相結合。用趣味和直觀的教學方法介紹所有教學內容,讓學生在發現問題和解決問題的過程中,系統學習和掌握基礎知識。這種方法,既可以降低教學難度、激發學生的學習興趣,又可以使教師在輕松活躍的氣氛中完成教學任務。例如,講解整型數據溢出現象時,通過圖2幫助學生理解基本整型數的變化情況。圓周上標有-32768~32767之間的數據,對某一個整數加n后的值是從該數開始,按順時針方向數第n個數值。圖2中可以看到:32767+1對應的數是-32768,32767+2對應的數是-32767。

(2) 用應用實例貫穿整個教學過程。使學生在低年級就可以得到現場工作的模擬訓練,并以此作為課程設計的模板,可以使學生較順利完成各自的任務,為學生日后進行程序開發打下基礎,對后續課程的學習起到承上啟下的作用。
(3) 建立立體配套的教學體系。為所采用的教材配備輔導與實訓、試題精選、教學指導書等,同時提供動畫豐富、互動效果好的電子教案以及所有源代碼。其中教學指導書協助教師進行課前準備、課堂教學以及課后考題等,減輕教師負擔,尤其針對本課程零起點教師,使其輕松上手。本指導書又明確給出每章、每次課的教學目標、重點、難點和每個例題的必講內容,因此能夠規范同步進行的多個班級教學管理。
(4) 單雙號習題區別對待。提供單號習題參考答案,雙號習題則在類型上與前一單號習題相同,側重點也接近,以方便學生自測和教師布置作業。
(5) 每章內容分成基礎部分和提高部分。強調個性化教育,促進學生自主學習,既克服了課時少的困難,也保持了內容相對完整的知識體系。
3實踐和驗證教學效果
“C語言程序設計”課程的“夯實基礎,實例貫穿,重在實踐,易教易學”這一教學模式是從2000年開始研究,2003年基本成熟。自2004年起,其思路一直在本校部分班級的“C語言程序設計”和“VB程序設計”課程中做試點,2005年完成校級應用性教育本科教學改革建設項目中的“應用性本科C、VB程序設計課程教學模式的構建與教材建設”,并從2007年9月,又開始進行校級“應用性本科計算機基礎課程教學方法改革的研究與實踐”項目。2008年首次在大范圍(25個班的C語言程序設計課程)使用本模式,其效果顯著。目前“VB程序設計”和“C語言程序設計”課程都已成為本校精品課程,選用的教材均獲北京市精品教材稱號。圖3和圖4均是2008年5月對本校422名學生進行的調查結果。
我們同時也對學生“聽講”、“讀程序”、“獨立編程”、“教材”等問題進行了調查,從統計數據中可以看到,我們的教學改革是見效的,而且基本實現了“學生容易學,教師方便教”的目標。

經過幾年的不斷努力和探索,我們在“C語言程序設計”課程的教學中,提出并實施了以應用為本的“夯實基礎,實例貫穿,重在實踐,易教易學”的新的適用于應用性人才培養的教學思想,并在改革教學方法與手段等舉措的保證下,取得了良好的教學效果。但課程的改革不是一朝一夕的事情,還需要在“實現面向應用需要、采用多種模式、啟發自主學習、重視實踐環節、培養創新意識、樹立團隊精神”的教學理念的指導下,不斷地進行探索和研究。
參考文獻:
[1] 崔武子. C程序設計教程[M]. 2版. 北京:清華大學出版社,2007.
[2] 崔武子. 應用型大學教材的策劃思考[J]. 科技與出版,2008(7):42-43.