摘要:本文提出將實例拓展法應用于程序設計課程的教學中,介紹結構化程序設計課教學過程中如何選擇實例,以引導學生循序漸進地理解相關概念和編程方法。實踐證明,通過教學方法的改進,學生的學習積極性和學習效果整體有了明顯提高。
關鍵詞:程序設計教學;實例拓展法;結構化程序
0 引言
在傳統的結構化程序設計課程中,教師往往按照知識點的先后順序和難易程度講解程序的基本結構。在課堂上也只是列舉一些典型例題來引導學生理解所講內容,例子之間可能沒有內在的邏輯關系。因此,常常造成學生只能靠死記硬背學習程序結構的各種語句,不能真正理解為什么使用這樣的方法編寫程序,無法達到靈活應用的教學目的。為此,在教學過程中,應該選取更加合適且具有合理的邏輯關系的例子,便于學生深入理解相關知識。
1 實例拓展法的原理
實例拓展法屬于教學模式的一種,其顯著表現是教師的教和學生的學,都是圍繞實例來完成,使得學生通過積極主動地運用學習資源,進行自主探索和互相協作學習,在完成教師教的實例同時,產生新的實例的一種學習實踐活動。它有利于培養學生的自主學習能力和獨立分析問題、解決問題的能力,尤其適用于計算機課程的教學。
2 實例拓展法的應用
下面以VB程序設計課程為例,來說明教學過程中如何選擇合適的實例,以便于學生的拓展學習。所用實例分為兩大類,一類在教師課堂講解時使用,另一類在學生上機練習時使用。
1)課堂講解所用實例。
課堂實例的精心設計是教學設計的關鍵。實例的安排應考慮學生心智發展水平、不同年齡階段的知識經驗以及生活中的實際需求。實例的拓展難度應該由淺入深,讓大部分學生通過思考都能完成,并且要能夠充分包含所講授的知識點,能夠很清楚地說明問題。
結構化程序設計的課程內容主要包括5大部分:順序結構、選擇結構、循環結構、數組應用與過程設計。在教學過程中一定要遵循課程內容之間內在的邏輯關系,由淺入深、循序漸進地講解。
下面列舉出講解結構化程序時所用的實例,程序代碼從略。
例1順序結構程序舉例:輸入圓的半徑,計算圓的面積。介紹程序的基本組成,包括數據輸入、數據處理和數據輸出3個部分。
例2選擇結構程序舉例:對例1進行拓展,讓學生思考,如果輸入的半徑小于0時該如何處理。引入選擇結構的if語句。
例3選擇結構程序舉例:通過鍵盤任意輸入三個數,求它們的最大值和最小值。介紹if語句的兩種格式(單行格式和多行格式)。
例4選擇結構程序舉例:求分段函數的值。介紹兩種多分支結構的語句格式(if語句和Select Case語句)。
例5循環結構程序舉例:在窗體上顯示1-10之間的奇數。引入循環結構For…Next語句。
例6循環結構程序舉例:對例5進行拓展,讓學生思考,如何實現求1-10之間的奇數之和。
例7循環結構程序舉例:對例6進行拓展,求1+3+5+7+…的值不超過100時的最大奇數。引入循環結構Do…Loop語句。
例8數組應用舉例:對例3進行拓展,讓學生思6eZ+hmdSjAidWEb7zybV9Q==考,如何實現求10個數的最大值和最小值。引入數組的概念和靜態數組的使用方法。
例9數組應用舉例:對例8進行拓展,讓學生思考,如何實現求任意多個數的最大值和最小值。引入動態數組的使用方法。
例10過程設計舉例:對例3進行拓展,將求三個數的最大值和最小值分別定義成兩個函數,并調用函數。引入過程的概念以及Function過程(即函數)的建立和使用方法。
例11過程設計舉例:對例10進行拓展,將求三個數的最大值和最小值分別定義成兩個Sub過程,并調用Sub過程。引入Sub過程的建立和使用方法,并與Function過程進行對比。
以上的實例主要是在引入相關概念和講解程序基本原理時使用的,需要在多個課時中講解。根據所講內容的課時安排,可適當補充其他實例,更加詳細地講解相關知識,也可以補充一些比較有趣實用的綜合例子,如制作計算器、打印九九乘法表、求素數、求水仙花數和完全數等,以擴展學生的思路和眼界。
2)實驗練習所用實例。
上機實踐是學生鞏固課堂所學知識的必要階段,是檢驗學生學習效果的有效手段,對提高學生的自主學習能力和實際操作能力具有極其重要的作用[2]。為了讓學生能夠有效利用上機練習的寶貴時間,教師需要給學生提供一些與課堂講解實例有關,而且比較典型的練習題,讓學生通過思考去獨立完成,這樣可以使學生深入理解所學知識,靈活掌握編程技術。
下面列舉出以上課堂講解部分對應的上機練習所用實例,程序代碼從略。
練習1順序結構程序練習:輸入圓柱體的底面半徑和高,計算圓柱體的體積。讓學生練習數據輸入、數據處理和數據輸出三部分的相關語句。
練習2選擇結構程序練習:輸入兩個數,按從大到小的順序輸出這兩個數。讓學生練習選擇結構程序的相關語句。
練習3選擇結構程序練習:輸入一個學生成績,判斷其所在的等級(大于90為優秀,大于80為良好,大于60為及格,小于60為不及格)。讓學生練習選擇結構程序的相關語句。
練習4循環結構程序練習:求1-2+3-4+5-6+……+99-100的值。讓學生練習循環結構程序的相關語句。
練習5循環結構程序練習:輸出1~100之間的偶數,并顯示為10個數一行。讓學生練習循環結構程序的相關語句。
練習6循環結構程序練習:輸入多個學生成績,計算平均成績,要求當輸入一1時停止計算。讓學生練習循環結構程序的相關語句。
練習7數組應用練習:先隨機生成30個0-1000之間的隨機數,再求這一組數的最大值和最小值。讓學生練習數組的定義和使用。
練習8數組應用練習:先隨機生成30個0~1000之間的隨機數,再顯示這一組數中的所有奇數,每10個數一行。讓學生練習數組的定義和使用。
練習9過程設計練習:定義一個求階乘的函數Fact,并調用函數求任意輸入的一個數N的階乘N!。讓學生練習Function過程(函數)的建立和使用。
練習10過程設計練習:定義一個求階乘的Sub過程Fact,并調用該過程求任意輸入的一個數N的階乘N!。讓學生練習Sub過程的建立和使用。
在上機練習時,教師應當遵循以下原則:盡量讓學生自己完成拓展實例及創新實例,要給學生留出思考、探索、醒悟的時間,并把握好信息反饋,及時了解學生的學習進展及存在問題,在恰當的時候予以點撥。
3 教學效果
筆者通過多年的教學實踐工作進行總結和檢驗,發現使用實例拓展法教學之后,學生從學習興趣、課堂反應到作業成績以及考試成績等各方面都有了明顯的提高和改善,學生能夠從中學到自己需要的知識,并真正將其轉化為實際應用,設計出實用的小軟件來,對于他們將來學習其他知識和提高計算機操作水平都有很大的促進作用。
以下為近四年來采用實例拓展法教學之后學生的出勤率、作業成績和考試成績的對比圖表。通過圖表可以看到,通過教學方法的改進,學生的學習積極性和學習效果整體有了明顯提高。
4 結語
實例拓展法在程序設計課程的教學過程中發揮著越來越重要的作用,一方面教師通過舉例可以把知識點講解得更清楚,還可以進一步延伸新的實例,對后續的課程講解做好鋪墊,打好基礎;另一方面學生在實例的驅動下思考和學習,能夠幫助他們理解所學知識的邏輯關系和整體結構。
在具體的教學過程中不能一成不變,必須要明確教學目的,靈活運用,還要注意與其他的教學方法有機地結合,這樣才能激發學生興趣,挖掘其內在潛能,提高技能,培養創新意識,發展個性。
(見習編輯:劉麗麗;編輯:郭田珍)