摘要:通過分析學生對新知識的認知規律,通過案例介紹關聯案例循序漸進法在程序設計教學中的應用,引導學生產生學習計算機編程的興趣,由淺入深逐步掌握編程的基本知識和程序設計技巧。
關鍵詞:關聯案例;循序漸進;教學
中圖分類號:G642.0?搖 文獻標志碼:A 文章編號:1674-9324(2013)49-0070-02
隨著計算機在各個領域的普及和應用,計算機程序設計課程也成為了各高校非計算機專業學生的必須課。如何讓不同專業的學生產生學習計算機程序設計語言的興趣,從而掌握程序設計語言的基本知識,掌握程序設計的基本算法和上機調試方法,是教學重點和難點。我們在非計算機專業學生的程序設計課程的教學中,通過使用關聯案例循序漸進的方法,吸引學生學習興趣,加強學生程序設計的基本功訓練,收到很好的效果。
一、關聯案例循序漸進方法簡介
在教學中,選擇前后相互呼應的例子并采用循序漸進的方法進行課堂教學。首先,引導學生將初始程序編寫出來;其次,帶領學生思考限制條件,引入條件語句使得程序更加完善,進而通過引入循環的概念使得計算可以反復進行;接著再討論循環的優化;最后,寫出一個高效率的程序。使用關聯案例循序漸進方法,使得學生了解程序編寫過程實際上是思維或解題步驟不斷完善的過程,了解程序設計中的賦值、條件和循環等是解決問題的必要手段。從一個簡單的程序入手,然后對程序逐步改進,添加條件和循環,并對其進行優化,這個步驟是一環扣一環,逐步完成的。這樣,很容易吸引學生的興趣,學生也容易接受。
二、關聯案例的選擇
例1.三角形的面積計算問題,三角形的面積計算公式如下:s=■,其中l=■,a、b、c分別為三角形的三條邊。第一次編寫的程序如下:int main( ){double a,b,c,l,s;cin>>a>>b>>c;l=(a+b+c)/2.0;s=sqrt(l*(l-a)*(l-b)*(l-c));cout<<\"s=\"<>a>>b>>c;if(a+b>c a+c>bb+c>a){l=(a+b+c)/2.0;s=sqrt(l*(l-a)*(l-b)*(l-c));cout<<\"s=\"<c a+c>bb+c>a)當條件成立時計算面積,條件不成立則輸出“不能構成三角形”的提示信息。改進后的程序,無論輸入什么數據都有一個正確的結果。然后再設計一個場景,需要重復計算10個不同邊長的三角形的面積。引導學生思考計算一個三角形面積和計算十個三角形面積方法有何異同。讓學生體會代碼重用的概念,引入程序設計中的循環概念,介紹循環語句的語法和用法。引導學生修改上面的程序,改進后的程序如下:int main( ){double a,b,c,l,s;int i;for(i=1;i<=10;i++){cin>>a>>b>>c;if(a+b>c a+c>bb+c>a){l=(a+b+c)/2.0;s=sqrt(l*(l-a)*(l-b)*(l-c));cout<<\"s=\"<
三、循序漸進的講解多重循環優化
例2.百錢買百雞問題:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾只?這是一個不定方程的求解問題,采用多重循環枚舉法來解決,程序如下:int main( ){int a,b,c;//a為雞翁數,b為雞母數,c為雞雛數for(a=1;a<=100;a++)for(b=1;b<=100;b++)for(c=1;c<=100;c++)if(a+b+c==100 a*5+b*3+c/3==100)cout<<
\"a=\"<以去掉。考慮錢是整數,三只雞雛才值錢一,所以c必須為3的倍數。改進后的程序如下:int main( ){int a,b,c;//a為雞翁數,b為雞母數,c為雞雛數for(a=1;a<=20;a++)for(b=1;b<=33;b++){c=100-a-b;if(a*5+b*3+c/3==100 c%3==0)cout<<\"a=\"< b<<\",c=\"< 四、舉一反三課后作業的布置 在課后作業的布置中,也要貫徹舉一反三的方法,對于類似的題目設計也是由淺入深,由易而難。在布置作業時,可以分組進行,例如:作業1:求出從1加到n的和。作業2:求出1到n之間的所有奇數和。作業3:求出1到n之間所有的素數和。作業1在課堂上先講一遍,作為作業的目的為了讓進一步鞏固課堂知識,因此相對簡單。作業2有兩種方式可以選擇,一是在作業1程序的循環體中加上if語句,二是通過改變循環步長來完成。作業3的最難,需要在循環體中判斷該數是否是素數,但套用作業1或作業2的框架。這組作業由淺入深,學生可以在前一題目的基礎上舉一反三,作一點變化即可完成。讓學生既掌握了程序設計的基本知識與方法,同時,也大大增強了學好程序設計課程的信心。 與程序設計課程傳統授課方式相比,采用關聯案例由淺入深逐步引導,通過引入新約束條件,逐步對程序進行優化,深入地理解和掌握程序設計思想。通過調查統計,這種方法被90%以上的學生所接受。 參考文獻: [1]周克蘭.案例教學法在計算機應用基礎實驗課程中的應用[J].計算機教育,2010,(16):110-113. [2]張波.C++程序設計案例遴選[J].計算機教育,2010,(18):48-51. [3]郭忠興.案例教學過程優化研究[J].中國大學教學,2010,(1):59-61.