啟發(fā)式教學在中等職業(yè)學校程序設計教學中的應用
作者:楊一戈來源:原創(chuàng)日期:2012-09-13人氣:753
中等職業(yè)學校的學生,由于缺乏相應的知識背景,加上程序設計語言本身的命令、語法眾多,要求嚴謹,難以理解,所以在初學程序設計時難度很大,如果我們只是按照教材給學生講解大量的概念、命令、語法、程序設計的方法,學生就會感到不僅內容枯燥,而且還容易對程序設計產生畏學心理,所以教師要善于用生活實例把枯燥無味的“語言”講得生動、活潑,讓學生積極地參與到教學活動中,以此來提高學生的學習興趣和分析、解決問題的能力。
程序設計教學中,變量值的交換和數據比較、排序、查找是中等職業(yè)學校的學生在初學程序時比較難理解和掌握的幾個問題。在教學時,教師可以用學生易于理解的生活實例對學生進行引導和啟發(fā)。
實例一:“冷、熱水交換”,交換變量的值
程序要求:交換兩個變量的值,如A=3,B=4要求交換后A=4,B=3
啟發(fā)過程:有兩杯水,一杯是熱水,一杯是冷水,現在要把兩個杯子的水互換,怎么做?
所有學生都回答“再找一個空杯子……”,這樣我們把自己的想法用計算機能理解的命令實現,熱水(變量A),冷水(變量B),空杯子(變量T)
經過三個步驟,A、B變量的值已互換。一個看似簡單的問題,如果只對學生講解幾個命令行,學生都難以理解,但結合生活中學生易于理解的實例進行講解,學生就容易理解得多,這個問題是數據排序的基礎,掌握了數據交換才可以解決數據排序問題(實例三)。
實例二:“比年齡”,找最大數和最小數,
程序要求:輸入10個數,找出其中的最大數和最小數。
啟發(fā)并提問:把10個同學中年齡最大和最小的同學找出來,怎么做?所有的學生都表示能做到,并提出自己的方法。
我們參照其中一個學生提出的完整做法:
1.第一個同學先站出來,旁邊畫兩個圈,表示年齡“大”和年齡“小”;
2.叫出第二個同學,如果其年齡比第一個大則該同學站在“大”的位置,如果比第一個小,則這個同學站在“小”的位置;
3.接著下個同學出來,和“大、小”兩個位置的同學進行年齡比較:如果其年齡比站在“大”位置的年齡大,則這個學生站在“大”的位置;如果其年齡比站在“小”位置的年齡小,則這個學生站在“小”的位置。
按這樣的方法,重復第3步直至完成第10個學生的比較,最終站在“大”位置的學生就是年齡最大的,站在“小”位置的學生就是年齡最小的。
復習:在程序設計中,判斷用if語句;重復執(zhí)行的程序段,可以用“循環(huán)語句”。If語句和循環(huán)的執(zhí)行過程最好用流程圖給學生講解以便于學生理解。
接下來,和學生一起設計程序。有了整體思路以后可以采用學生說老師寫或直接讓學生寫程序的方式,讓學生積極參與設計過程,以VFP語言為例程序代碼如下(其它語言類似):
Input"請輸入一個數:"toa
Max=a&&以第一個學生為參照,Max就年齡"大"的位置
Min=a&&Min是年齡"小"的位置,
Fori=1to9&&提問:為什么是9?
Input"請輸入一個數:"toa&&提問:為什么還要寫這個語句?
Ifa>max
Max=a
Endif&&提問:以上三個語句的作用是什么?
IfaMin=a
Endif&&提問:以上三個語句的作用是什么?
Endfor
"最大數:",max,"最小數:",min
要求學生一定把程序寫成“鋸齒型”結構,這樣便于程序調試。
實例三、“比個頭,按高矮排好隊”,進行數據排序。
程序要求:把10個數按大小順序排列出來。
啟發(fā):上體育課了,把10個同學按高矮順序排列成一行,讓學生說出自己的思考及實際做法。
選取一個學生的做法,讓他把自己的做法對大家說出來。他的完整做法是這樣的:第一輪,第一個位置的學生和第二個學生比較,如果第二個學生比第一個高,則第一個學生和第二個學生交換位置,接著站在第一個位置的學生(可能是已經交換過位置的學生)和第三個學生比,如果第三個學生比第一位置的學生高,則交換位置,按此方法,當完成和第10個學生的比較后,第一個位置站的就是10個人當中最高的;第二輪,找出第二個位置的學生和第三個位置的學生比,如果第三個位置學生比第二個高,則第二個學生和第三個學生交換位置,接下來和第四個、第五個學生比較……,第二輪結束后,第二高的學生已經排在第二位置,以此類推,直至第九輪完成第9個學生和第10個學生的比較后,10個學生就按高矮順序排好了。
把該生的做法轉換為VFP的程序段如下(其它語言方法類似),
可和學生共同完成。
Fori=1to9&&提問:“為什么i不是10?”,學生:“比9輪就行了”
Forj=i+1to10&&提問:問什么j=i+1?此處是難點,老師要多做啟發(fā)
Ifa(j)>a(i)&&提問:比如第四輪的時候,第四個學生首先和誰比?
T=a(j)
A(j)=a(i)A(i)=t
&&提問:“這三個語句的作用是什么?”,
學生:“數據交換”
Endfor
對于程序設計中提出的問題,要讓學生先思考然后再做解答,一定要充分調動學生參與思考,對于各種結構及語句的應用一定要給學生講清楚,如果學生不明白,要讓學生聯(lián)系實際并逐句解釋,讓學生弄清每個語句及整個程序的作用,直至完全理解并能按照自己的思維方法寫出程序為止。這個實例運用了順序、選擇、循環(huán)等三種程序結構,弄懂該程序,對學生進行入門編程及思維的訓練有較大的幫助。
對于數據的查找,可以先讓學生做這樣一個練習:在10個排好序的數中查找是否有某個數。要求學生把自己的做法“告訴”計算機(寫程序),學生一般用的都是順序查找的辦法,學生完成后,再把二分法查找的思路給學生進行介紹。對學生可用“按宿舍號找宿舍”的例子進行啟發(fā),然后讓學生對兩種方法進行比較,哪種方法效率更高(時間開銷最小),當學生聽說用二分法在1000個數中找某個數只要比較10多次就可以時感到很驚奇,這時用“按宿舍號找宿舍”為例給學生講二分法查找,學生都很能夠理解。
初學程序設計的學生,通常是不經過太多的思考就設計程序并且馬上運行,這樣做往往不是出現語法錯誤就是邏輯錯誤,所以要讓學生在設計程序時多思考(對具體問題多思考)、多聯(lián)系(多聯(lián)系生活實例)、多檢查(命令和語法拼寫、邏輯思維的轉換和實現),教師最好把調試程序的各種方法介紹給學生,學生通過對程序執(zhí)行情況的分析,可以找出自己的思維錯誤,對提高學生思維的邏輯性,嚴密性將大有幫助。
總之,在程序設計的教學時,教師一定善于聯(lián)系生活,找到學生已經掌握或易于理解的例子,盡量把各種程序設計的問題實例化,逐步引導、啟發(fā)學生,讓學生主動去思考、去創(chuàng)新和嘗試,這樣不僅可以提高學生學習程序設計的興趣,還可以推動學生入門程序設計的進程。
程序設計教學中,變量值的交換和數據比較、排序、查找是中等職業(yè)學校的學生在初學程序時比較難理解和掌握的幾個問題。在教學時,教師可以用學生易于理解的生活實例對學生進行引導和啟發(fā)。
實例一:“冷、熱水交換”,交換變量的值
程序要求:交換兩個變量的值,如A=3,B=4要求交換后A=4,B=3
啟發(fā)過程:有兩杯水,一杯是熱水,一杯是冷水,現在要把兩個杯子的水互換,怎么做?
所有學生都回答“再找一個空杯子……”,這樣我們把自己的想法用計算機能理解的命令實現,熱水(變量A),冷水(變量B),空杯子(變量T)
經過三個步驟,A、B變量的值已互換。一個看似簡單的問題,如果只對學生講解幾個命令行,學生都難以理解,但結合生活中學生易于理解的實例進行講解,學生就容易理解得多,這個問題是數據排序的基礎,掌握了數據交換才可以解決數據排序問題(實例三)。
實例二:“比年齡”,找最大數和最小數,
程序要求:輸入10個數,找出其中的最大數和最小數。
啟發(fā)并提問:把10個同學中年齡最大和最小的同學找出來,怎么做?所有的學生都表示能做到,并提出自己的方法。
我們參照其中一個學生提出的完整做法:
1.第一個同學先站出來,旁邊畫兩個圈,表示年齡“大”和年齡“小”;
2.叫出第二個同學,如果其年齡比第一個大則該同學站在“大”的位置,如果比第一個小,則這個同學站在“小”的位置;
3.接著下個同學出來,和“大、小”兩個位置的同學進行年齡比較:如果其年齡比站在“大”位置的年齡大,則這個學生站在“大”的位置;如果其年齡比站在“小”位置的年齡小,則這個學生站在“小”的位置。
按這樣的方法,重復第3步直至完成第10個學生的比較,最終站在“大”位置的學生就是年齡最大的,站在“小”位置的學生就是年齡最小的。
復習:在程序設計中,判斷用if語句;重復執(zhí)行的程序段,可以用“循環(huán)語句”。If語句和循環(huán)的執(zhí)行過程最好用流程圖給學生講解以便于學生理解。
接下來,和學生一起設計程序。有了整體思路以后可以采用學生說老師寫或直接讓學生寫程序的方式,讓學生積極參與設計過程,以VFP語言為例程序代碼如下(其它語言類似):
Input"請輸入一個數:"toa
Max=a&&以第一個學生為參照,Max就年齡"大"的位置
Min=a&&Min是年齡"小"的位置,
Fori=1to9&&提問:為什么是9?
Input"請輸入一個數:"toa&&提問:為什么還要寫這個語句?
Ifa>max
Max=a
Endif&&提問:以上三個語句的作用是什么?
IfaMin=a
Endif&&提問:以上三個語句的作用是什么?
Endfor
"最大數:",max,"最小數:",min
要求學生一定把程序寫成“鋸齒型”結構,這樣便于程序調試。
實例三、“比個頭,按高矮排好隊”,進行數據排序。
程序要求:把10個數按大小順序排列出來。
啟發(fā):上體育課了,把10個同學按高矮順序排列成一行,讓學生說出自己的思考及實際做法。
選取一個學生的做法,讓他把自己的做法對大家說出來。他的完整做法是這樣的:第一輪,第一個位置的學生和第二個學生比較,如果第二個學生比第一個高,則第一個學生和第二個學生交換位置,接著站在第一個位置的學生(可能是已經交換過位置的學生)和第三個學生比,如果第三個學生比第一位置的學生高,則交換位置,按此方法,當完成和第10個學生的比較后,第一個位置站的就是10個人當中最高的;第二輪,找出第二個位置的學生和第三個位置的學生比,如果第三個位置學生比第二個高,則第二個學生和第三個學生交換位置,接下來和第四個、第五個學生比較……,第二輪結束后,第二高的學生已經排在第二位置,以此類推,直至第九輪完成第9個學生和第10個學生的比較后,10個學生就按高矮順序排好了。
把該生的做法轉換為VFP的程序段如下(其它語言方法類似),
可和學生共同完成。
Fori=1to9&&提問:“為什么i不是10?”,學生:“比9輪就行了”
Forj=i+1to10&&提問:問什么j=i+1?此處是難點,老師要多做啟發(fā)
Ifa(j)>a(i)&&提問:比如第四輪的時候,第四個學生首先和誰比?
T=a(j)
A(j)=a(i)A(i)=t
&&提問:“這三個語句的作用是什么?”,
學生:“數據交換”
Endfor
對于程序設計中提出的問題,要讓學生先思考然后再做解答,一定要充分調動學生參與思考,對于各種結構及語句的應用一定要給學生講清楚,如果學生不明白,要讓學生聯(lián)系實際并逐句解釋,讓學生弄清每個語句及整個程序的作用,直至完全理解并能按照自己的思維方法寫出程序為止。這個實例運用了順序、選擇、循環(huán)等三種程序結構,弄懂該程序,對學生進行入門編程及思維的訓練有較大的幫助。
對于數據的查找,可以先讓學生做這樣一個練習:在10個排好序的數中查找是否有某個數。要求學生把自己的做法“告訴”計算機(寫程序),學生一般用的都是順序查找的辦法,學生完成后,再把二分法查找的思路給學生進行介紹。對學生可用“按宿舍號找宿舍”的例子進行啟發(fā),然后讓學生對兩種方法進行比較,哪種方法效率更高(時間開銷最小),當學生聽說用二分法在1000個數中找某個數只要比較10多次就可以時感到很驚奇,這時用“按宿舍號找宿舍”為例給學生講二分法查找,學生都很能夠理解。
初學程序設計的學生,通常是不經過太多的思考就設計程序并且馬上運行,這樣做往往不是出現語法錯誤就是邏輯錯誤,所以要讓學生在設計程序時多思考(對具體問題多思考)、多聯(lián)系(多聯(lián)系生活實例)、多檢查(命令和語法拼寫、邏輯思維的轉換和實現),教師最好把調試程序的各種方法介紹給學生,學生通過對程序執(zhí)行情況的分析,可以找出自己的思維錯誤,對提高學生思維的邏輯性,嚴密性將大有幫助。
總之,在程序設計的教學時,教師一定善于聯(lián)系生活,找到學生已經掌握或易于理解的例子,盡量把各種程序設計的問題實例化,逐步引導、啟發(fā)學生,讓學生主動去思考、去創(chuàng)新和嘗試,這樣不僅可以提高學生學習程序設計的興趣,還可以推動學生入門程序設計的進程。
欄目分類
熱門排行
推薦信息
期刊知識
- 2025年中科院分區(qū)表已公布!Scientific Reports降至三區(qū)
- 官方認定!CSSCI南大核心首批191家“青年學者友好期刊名單”
- 2023JCR影響因子正式公布!
- 國內核心期刊分級情況概覽及說明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學者
- 我用了一個很復雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問題”。
- 重磅!CSSCI來源期刊(2023-2024版)最新期刊目錄看點分析!全網首發(fā)!
- CSSCI官方早就公布了最新南核目錄,有心的人已經拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應該熟知的10個知識點。
- 注意,最新期刊論文格式標準已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學術論文編寫規(guī)則
- 盤點那些評職稱超管用的資源,1,3和5已經“絕種”了