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