陳麗紅
[摘 要]高中信息技術(shù)課程“算法與程序設(shè)計”的主要教學(xué)任務(wù)是引導(dǎo)學(xué)生體驗用算法程序思想解決生活中的實際問題,養(yǎng)成計算思維的核心素養(yǎng),提升創(chuàng)新思維能力,體驗算法和程序給我們的生活和工作所帶來的效率,從而讓學(xué)生體驗程序的作用和計算機的程序化思想。
[關(guān)鍵詞]計算思維;算法與程序設(shè)計;信息技術(shù)
[中圖分類號] G633.67 [文獻(xiàn)標(biāo)識碼] A [文章編號] 1674-6058(2018)21-0049-02
高中信息技術(shù)課程標(biāo)準(zhǔn)修訂稿中指出,高中信息技術(shù)學(xué)科總體目標(biāo)是發(fā)展學(xué)生核心素養(yǎng),包括“信息意識”“計算思維”“數(shù)字化學(xué)習(xí)”和“信息責(zé)任”四個方面。“計算思維”是指在運用計算機科學(xué)領(lǐng)域的思想方法解決問題的過程中產(chǎn)生的一系列思維活動。算法是計算思維內(nèi)容的一部分,算法思想與問題求解的思路是程序設(shè)計的重點。因此高中信息技術(shù)課中“計算思維”素養(yǎng)的培養(yǎng)任務(wù)主要落實在“算法與程序設(shè)計”課程中。
一、“計算思維”的感知
對于剛接觸“算法與程序設(shè)計”課程的學(xué)生來說,計算思維習(xí)慣是幾乎空白的,讓計算思維從無到有是培養(yǎng)的第一步。例如編寫程序?qū)崿F(xiàn)求1+2+3+4+5+6+7+…+n之和,在教學(xué)過程中教師要讓學(xué)生形成如下三個計算思維習(xí)慣:
1.計算機是如何處理不確定的數(shù)的。例如以上的計算程序中,“n”是一個不確定的數(shù),在程序設(shè)計中讓學(xué)生形成一個思維,即有不確定的數(shù)的程序必須有輸入語句或者相應(yīng)的賦值語句,把不確定的數(shù)變成確定的數(shù)。
2.計算機的優(yōu)勢就在于它可以不厭其煩地重復(fù)地工作,因此對于上述n個數(shù)的求和問題都用循環(huán)套用累加語句“s=s+i”,同時必須通過變量控制累加的值。
3.計算機具有強大的數(shù)學(xué)邏輯運算能力,這是人腦所無法比擬的,電腦的計算能力要比人腦強得多,不僅速度快而且非常準(zhǔn)確,以上的計算程序中“n”數(shù)字再大,對計算機來說運算過程都是一瞬間的事情。
二、“計算思維”的強化與發(fā)散
習(xí)慣的養(yǎng)成不是靠一兩節(jié)課就能完成的,而是需要一個舉一反三、不斷強化的過程。例如同樣一個求和問題,可以舉出很多生活化的類似問題給學(xué)生強化訓(xùn)練。比如舉貪吃蛇的例子:有一條貪吃的蛇,在它還是小寶寶的時候胃口也不大,但是隨著身體的長大,吃得也越來越多,它第一天吃1個饅頭,第二天吃2個饅頭,每天吃的饅頭都要比前一天多一個,與此同時,它的身體也在變長,他身體的長度正好是它吃的饅頭的總數(shù)。假設(shè)蛇寶寶剛出生的身體長度是1,請問到第n天吃完饅頭的蛇的身體有多長?
三、“計算思維”應(yīng)用與綜合
要用計算機解決復(fù)雜的問題,一定要掌握程序設(shè)計基礎(chǔ)知識,掌握程序的三種基本結(jié)構(gòu),掌握算法(枚舉、解析、排序、查找等)的思想,掌握變量、一維數(shù)組、二維數(shù)組數(shù)據(jù)結(jié)構(gòu),在此基礎(chǔ)上舉一反三?!八惴ê统绦蛟O(shè)計”的基本知識講完后,可以通過上幾節(jié)應(yīng)用性、綜合性較強的課讓學(xué)生應(yīng)用所學(xué)的知識進(jìn)行程序設(shè)計和解決實際問題。
1.情境引入——界定問題,抽象問題特征,建立結(jié)構(gòu)模型。
教師用教學(xué)PPT和口頭語言提出本節(jié)課需要解決的問題:學(xué)校舉行元旦文藝會演,計算每個節(jié)目的得分,計分的規(guī)則是去掉最高分和最低分后再計算平均分。我們這節(jié)課就一起來編程解決這個問題。
提示:讓學(xué)生分析問題的特征、需要解決什么問題,目的是為了讓學(xué)生通過判斷,分析與綜合之前所學(xué)的知識設(shè)計解決問題的方案。
教師引導(dǎo)學(xué)生回顧所學(xué)的四大算法思想,并用PPT呈現(xiàn)。
2.引入課題——合理組織數(shù)據(jù),選擇合適的算法
問題探究1:思考用什么算法解決問題,并用語言簡述程序算法。學(xué)生可能會答“查找算法”,首先找出所有數(shù)據(jù)中的最小值和最大值,然后在總和中減去最小值和最大值;也可能會答“排序算法”,先按照評分由高到低排序,然后去掉第一個和最后一個的評分再求和。學(xué)生的回答很多,教師要一一引導(dǎo),讓學(xué)生思考用什么算法,最后在課堂上經(jīng)過討論探究總結(jié)出兩種解決問題的算法。
問題探究2:用什么數(shù)據(jù)結(jié)構(gòu)存儲評委的平均分?學(xué)生會答“變量”“數(shù)組”等。經(jīng)過討論探究總結(jié)出用“數(shù)組”存儲數(shù)據(jù)比較合適。
3.用排序算法解決問題
教師呈現(xiàn)本節(jié)課的學(xué)習(xí)任務(wù)單和半成品的程序素材,讓學(xué)生自主完成任務(wù)。
【任務(wù)單1】問題描述:學(xué)校元旦文藝會演要計算每個節(jié)目的得分,計算的規(guī)則是去掉最高分和最低分后再計算其他評委的平均分。小明同學(xué)想用所學(xué)的VB知識編一個程序,他說用排序算法解決這個問題,即先把n個評委的數(shù)據(jù)輸入一維數(shù)組a(1 to n)中,然后對其進(jìn)行從高到低的排序,再對數(shù)組的第2個到第n-1個數(shù)據(jù)進(jìn)行求平均就可以了。根據(jù)給定的界面在text1 中輸入各評委的評分后在list1中顯示各評委的評分,單擊“評分”按鈕command1計算出節(jié)目評分,并在text2中顯示最后得分的值。
程序如下(請補充完整):
Dim a(1 To 50) As Single 用于存放評委評分的數(shù)組
Dim n As Integer 用于存放評委的個數(shù)
Dim s As Single
Private Sub Command1_Click( ) 先排序,然后對第2個到第n-1個的數(shù)據(jù)計算平均值
Dim i As Integer, j As Integer, m As Integer
Dim s1 As Single
排序算法的程序段
For m=2 To n-1 對第2個到第n-1個的數(shù)據(jù)計算總和
s = s + a (m)
Next m
s1 = 把第2個到第n-1個數(shù)據(jù)的平均值保存到s1的變量中
Text2.Text = Str(Int(s1 * 100 + 0.5) / 100) 把平均分的結(jié)果四舍五入,保留兩位有效數(shù)字
End Sub
Private Sub Form_Load( ) 窗體載入時初始化n 和s的值(程序略)
……
End Sub
Private Sub Text1_keypress(keyascii As Integer) 輸入評委評分,按回車鍵存入數(shù)組 a中(程序略)
……
End Sub
4.用查找算法找出最大值和最小值解決問題
【任務(wù)單2】問題描述:學(xué)校元旦文藝會演要計算每個節(jié)目的得分,計算的規(guī)則是去掉最高分和最低分后再計算其他評委的平均分。小芳同學(xué)想用所學(xué)的VB知識編一個程序,即先把n個評委的數(shù)據(jù)輸入一維數(shù)組a(1 to n)中,然后在數(shù)組中找出最大值和最小值,最后把所有分?jǐn)?shù)的總和減去最大值和最小值后求平均分。請自行編程解決問題。
5.上交作業(yè),教師展示并用語言表揚評價
根據(jù)學(xué)生作業(yè)的情況進(jìn)行課堂批改講解。教師與學(xué)生一起總結(jié)利用計算機解決問題的過程與方法,并將其遷移到解決其他問題的方法與過程。
計算思維是信息時代人們解決問題的一個重要工具,培養(yǎng)學(xué)生用計算機解決生活中的問題的能力在當(dāng)今這個信息化的時代尤為重要。計算思維的習(xí)慣會讓學(xué)生了解人類與計算機的區(qū)別,從而更好地駕馭當(dāng)今的計算機以及用程序思想工作的機器,能讓學(xué)生感受到計算機是他們的第二雙手、第二雙腳,甚至是第二個大腦。
[ 參 考 文 獻(xiàn) ]
張會,羅南超.計算思維在程序設(shè)計教學(xué)中的培養(yǎng)[J].阿壩師范高等??茖W(xué)校學(xué)報,2013(3).
(責(zé)任編輯 周侯辰)