王佳莉
● 教材分析
《條件語(yǔ)句》是江蘇鳳凰科學(xué)技術(shù)出版社出版的《初中信息技術(shù)》八年級(jí)第4章第5節(jié)的第一個(gè)知識(shí)點(diǎn)。在此之前,學(xué)生已學(xué)習(xí)了算法的概念,用“畫程”軟件畫流程圖,輸入、輸出語(yǔ)句和賦值語(yǔ)句,這些為過(guò)渡到本節(jié)課的學(xué)習(xí)起著鋪墊作用。本節(jié)課的主要內(nèi)容為兩種條件語(yǔ)句的流程圖、格式以及用法。
● 學(xué)情分析
本節(jié)課的教學(xué)對(duì)象是初二年級(jí)的學(xué)生,這個(gè)年齡段的學(xué)生思維活躍,已經(jīng)具有一定的邏輯思維能力。由于剛剛接觸程序設(shè)計(jì)不久,一些學(xué)生對(duì)掌握枯燥的語(yǔ)句格式、用法、畫流程并不感興趣,因此本節(jié)課利用“猜幣”這個(gè)小程序來(lái)吸引學(xué)生的注意力。
● 教學(xué)目標(biāo)
知識(shí)與技能目標(biāo):通過(guò)實(shí)例正確理解條件語(yǔ)句的概念、流程圖、格式、用法;能初步用條件語(yǔ)句設(shè)計(jì)算法,進(jìn)一步體會(huì)算法的基本思想,學(xué)習(xí)有條理地、清晰地表達(dá)解決問(wèn)題的步驟,提高邏輯思維能力。
過(guò)程與方法目標(biāo):通過(guò)實(shí)例,發(fā)展對(duì)解決具體問(wèn)題的過(guò)程與步驟進(jìn)行分析的能力;通過(guò)探索、畫流程圖、編寫程序以解決具體問(wèn)題的過(guò)程,發(fā)展應(yīng)用算法的能力。
情感態(tài)度與價(jià)值觀目標(biāo):能通過(guò)具體實(shí)例,感受和體會(huì)算法思想在解決具體問(wèn)題中的意義,進(jìn)一步體會(huì)算法思想的重要性,體驗(yàn)算法的有效性;在編寫程序解決問(wèn)題的過(guò)程中,逐步養(yǎng)成扎實(shí)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度。
行為與創(chuàng)新目標(biāo):運(yùn)用條件語(yǔ)句進(jìn)行創(chuàng)意編程,以解決現(xiàn)實(shí)生活中遇到的問(wèn)題。
● 教學(xué)重難點(diǎn)
教學(xué)重點(diǎn):條件語(yǔ)句的結(jié)構(gòu)和用法。
教學(xué)難點(diǎn):將流程圖中的條件結(jié)構(gòu)轉(zhuǎn)換為條件語(yǔ)句組成的程序。
● 課時(shí)安排
1課時(shí)。
● 教學(xué)方法與手段
問(wèn)題導(dǎo)向式教學(xué)法、任務(wù)驅(qū)動(dòng)法。
● 教學(xué)準(zhǔn)備
網(wǎng)絡(luò)機(jī)房、教學(xué)課件、半成品小程序、學(xué)習(xí)任務(wù)單。
● 教學(xué)過(guò)程
1.游戲?qū)?/p>
教師向?qū)W生展示“猜幣”程序,邀請(qǐng)學(xué)生參與這一游戲,查看猜幣的結(jié)果(如圖1)。
師:為什么我們每次猜幣都會(huì)輸呢?程序是怎么實(shí)現(xiàn)的呢?你能用自然語(yǔ)言來(lái)描述嗎?
生:如果我猜是正面,計(jì)算機(jī)擲幣的結(jié)果就是反面,如果我猜是反面,計(jì)算機(jī)擲幣的結(jié)果就是正面,因此我們每次猜幣都錯(cuò)了。
師:剛剛大家在用自然語(yǔ)言描述的時(shí)候,都用了“如果……就……”“如果……那么……”之類的判斷語(yǔ)句,這些語(yǔ)句翻譯成英文是什么呢?
生:if……then……
設(shè)計(jì)意圖:通過(guò)小游戲,吸引學(xué)生的注意力,并讓學(xué)生發(fā)現(xiàn)參與游戲的結(jié)果都是猜輸,從而引發(fā)學(xué)生思考,利用自然語(yǔ)言的描述順利引出條件語(yǔ)句。
2.新知學(xué)習(xí)
師:一起來(lái)看一下程序代碼,程序中多次出現(xiàn)了什么語(yǔ)句結(jié)構(gòu)?看看課件里用紅色圓框框出的英文都是什么?
生:if……then……
教師帶領(lǐng)學(xué)生分析語(yǔ)句。
學(xué)生總結(jié)得出:程序的思路是,如果我們猜正面,那么計(jì)算機(jī)就擲幣為反面,如果我們猜反面,那么計(jì)算機(jī)就擲幣為正面,所以我們必?cái)。?/p>
教師引出條件語(yǔ)句的定義:給定一個(gè)判斷條件,并在程序執(zhí)行過(guò)程中判斷該條件是否成立,根據(jù)判斷結(jié)果執(zhí)行不同的操作。
師:請(qǐng)同學(xué)們結(jié)合現(xiàn)在看到的程序代碼,在Flash動(dòng)畫中拖放出語(yǔ)句的語(yǔ)法格式(如圖2)。
學(xué)生在Flash動(dòng)畫中拖放出語(yǔ)句的語(yǔ)法格式。
教師引入條件語(yǔ)句的一種格式:
If<條件>Then<程序段A>
師:通過(guò)分析,大家能不能把程序改成必勝的結(jié)果呢?
學(xué)生相互討論,形成思路。
師:通過(guò)“必?cái) 焙汀氨貏佟钡摹安聨拧背绦?,可以發(fā)現(xiàn)這其實(shí)是程序中早已設(shè)定好的,跟運(yùn)氣毫無(wú)關(guān)系,我們能不能自己設(shè)計(jì)出一個(gè)計(jì)算機(jī)擲幣結(jié)果隨機(jī)的“公正版”“猜幣”程序?大家可以將自己的思路用流程圖來(lái)體現(xiàn)。[教師適當(dāng)介紹一下Randomize及n=Int(2*Rnd)]
部分學(xué)生完成流程圖后,教師請(qǐng)一位學(xué)生在黑板上用剛剛學(xué)過(guò)的if……then……語(yǔ)句格式編寫程序中的判斷部分。
大部分學(xué)生完成后,提示學(xué)生對(duì)比黑板上學(xué)生編寫的判斷語(yǔ)句格式和“畫程”軟件中“代碼窗口”內(nèi)判斷語(yǔ)句的格式有什么區(qū)別。
學(xué)生發(fā)現(xiàn)和自己剛剛所學(xué)的條件語(yǔ)句格式不一樣,由此引入條件語(yǔ)句的另一種格式:
If<條件>Then
<程序段A>
Else
<程序段B>
End If
學(xué)生利用Flash動(dòng)畫拖拽出第二種語(yǔ)句的格式。
設(shè)計(jì)意圖:通過(guò)觀察程序代碼,讓學(xué)生發(fā)現(xiàn)“必?cái) 钡恼嬲蚴怯?jì)算機(jī)進(jìn)行了程序設(shè)定,由此引出如何才能讓每次猜幣的結(jié)果都是“必勝”,并再次過(guò)渡到“公正版”程序的編寫,層層遞進(jìn)。在這個(gè)過(guò)程中,通過(guò)流程圖讓學(xué)生發(fā)現(xiàn)條件語(yǔ)句的第二種格式,通過(guò)思考兩種格式的區(qū)別,更加清晰地了解條件語(yǔ)句。
3.總結(jié)格式
師:請(qǐng)大家思考一下,條件語(yǔ)句的兩種格式有什么區(qū)別?
學(xué)生思考,教師引導(dǎo)學(xué)生總結(jié)。
(1)單行格式的If語(yǔ)句。
單行格式的If語(yǔ)句可判斷一個(gè)或多個(gè)條件的成立與否,僅在條件成立時(shí)執(zhí)行特定程序段,條件不成立時(shí)則跳出當(dāng)前語(yǔ)句繼續(xù)執(zhí)行下一行代碼,格式如下:
If<條件>Then<程序段A>[Else<程序段B>]
(2)多行格式的If語(yǔ)句。
在條件成立或不成立時(shí)都需要執(zhí)行對(duì)應(yīng)的程序段,格式如下:
If<條件>Then
<程序段A>
Else
<程序段B>
End If
教師引導(dǎo)學(xué)生舉例說(shuō)明條件語(yǔ)句在現(xiàn)實(shí)生活中的應(yīng)用(用聲音控制燈的亮滅、感應(yīng)水龍頭……),通過(guò)利用條件語(yǔ)句解決現(xiàn)實(shí)問(wèn)題,激發(fā)學(xué)生今后學(xué)習(xí)編程的興趣。
設(shè)計(jì)意圖:通過(guò)兩種格式條件語(yǔ)句的對(duì)比,讓學(xué)生能夠更加清晰地了解兩種格式條件語(yǔ)句的區(qū)別、適用場(chǎng)合、在現(xiàn)實(shí)生活中的應(yīng)用,強(qiáng)化學(xué)生的認(rèn)知。
4.算法的優(yōu)化
師:如果我輸入的值不是1和0這兩個(gè)數(shù),猜幣的結(jié)果會(huì)怎樣?
生:都是輸出“猜錯(cuò)了”。
師:怎么解決這個(gè)問(wèn)題呢?
生:在輸入一個(gè)值后,再加一個(gè)判斷語(yǔ)句,判斷值是不是0或1,如果不是,就提示用戶重新輸入。
師:很好!在編程過(guò)程中,需要綜合考慮各種可能的情況,不斷優(yōu)化程序,減少漏洞。
設(shè)計(jì)意圖:通過(guò)提出新問(wèn)題讓學(xué)生去思考,這樣的優(yōu)化過(guò)程,可以提高學(xué)生的思維品質(zhì)。教師利用問(wèn)題引導(dǎo)學(xué)生去思考算法的優(yōu)化,不僅可以幫助學(xué)生梳理思維過(guò)程,養(yǎng)成思維習(xí)慣,長(zhǎng)此以往,還可以提高學(xué)生的學(xué)習(xí)能力,使學(xué)生的思維品質(zhì)得到一定程度的提高。
5.自主探究
完成半成品程序:判斷任意輸入的整數(shù)是奇數(shù)還是偶數(shù)(用兩種格式)。
要求:
(1)先畫流程圖,可以結(jié)合“畫程”軟件中的“單步運(yùn)行”按鈕,檢查流程圖是否正確(如上頁(yè)圖3、圖4)。
(2)完成半成品程序,可以參考“畫程”軟件中的“代碼窗口”完成程序填充(如圖5、圖6)。
(3)完成流程圖和程序填充后,小組討論總結(jié)操作中遇到了什么問(wèn)題,是如何解決的,有什么問(wèn)題沒(méi)有解決。
學(xué)生編寫完程序之后,教師展示幾個(gè)失敗的案例,分析其失敗的原因,如語(yǔ)句格式錯(cuò)誤(沒(méi)有空格、忘記End If)、邏輯表達(dá)式錯(cuò)誤等,引起學(xué)生注意,加深學(xué)生印象,提醒學(xué)生注意條件語(yǔ)句和邏輯運(yùn)算使用時(shí)的注意事項(xiàng)。
設(shè)計(jì)意圖:通過(guò)“畫程”軟件中的“單步運(yùn)行”功能,可以使學(xué)生更加清晰地了解程序運(yùn)行的每一個(gè)過(guò)程,同時(shí)通過(guò)“代碼窗口”的程序作為完成程序填充的參考,幫助學(xué)生體驗(yàn)算法實(shí)現(xiàn)后的成功感,增強(qiáng)其學(xué)習(xí)程序設(shè)計(jì)的自信心。
6.拓展練習(xí)
教師提供程序半成品,讓學(xué)生在以下3個(gè)程序中任選其中一個(gè)進(jìn)行編程。
(1)完善程序,輸出兩個(gè)不相等的實(shí)數(shù)a、b的最大值(用兩種格式)。
(2)輸入兒童身高,判斷兒童乘坐火車時(shí)的購(gòu)票情況,判斷條件如下:
若身高不超過(guò)1.1m,則無(wú)須購(gòu)票;
若身高超過(guò)1.1m、不超過(guò)1.4m,應(yīng)買半票;
若身高超過(guò)1.4m,應(yīng)買全票。
(3)將考試分?jǐn)?shù)轉(zhuǎn)換為等級(jí),規(guī)則如下:
輸入一個(gè)百分制分?jǐn)?shù)i([0,100]間的整數(shù)),輸出轉(zhuǎn)換得到的等級(jí)grade。
i? ? ? grade
[85,100]? ? ?"A"
[75,85)? ? ? "B"
[60,75)? ? ? "C"
[0,60)? ? ? ?"D"
學(xué)生完成后,教師展示一些優(yōu)秀作品和一些有標(biāo)志性錯(cuò)誤的程序,通過(guò)對(duì)優(yōu)秀作品的欣賞和標(biāo)志性錯(cuò)誤的反思,加深學(xué)生對(duì)條件語(yǔ)句的理解和掌握。
設(shè)計(jì)意圖:教師提供3個(gè)半成品程序,讓學(xué)生選擇自己感興趣的題目進(jìn)行編程,通過(guò)展示共性錯(cuò)誤,讓學(xué)生發(fā)現(xiàn)問(wèn)題所在,從而加深學(xué)生對(duì)條件語(yǔ)句格式的掌握。
7.總結(jié)與拓展
教師引導(dǎo)學(xué)生總結(jié)條件語(yǔ)句的格式、關(guān)系表達(dá)式、邏輯表達(dá)式及使用時(shí)的注意事項(xiàng)。
● 教學(xué)反思
在本節(jié)課的教學(xué)過(guò)程中,我利用了教材中的“猜幣”程序作為導(dǎo)入的小游戲,并對(duì)教材中的程序進(jìn)行簡(jiǎn)化——不顯示計(jì)算機(jī)擲幣后的文字信息,僅以圖片代替,由此吸引學(xué)生的注意力,并通過(guò)“必輸”“必勝”“公正版”三個(gè)環(huán)節(jié)的層層遞進(jìn),引入條件語(yǔ)句的兩種格式。其中,應(yīng)用“畫程”軟件及其自帶的“單步運(yùn)行”功能,幫助學(xué)生更加清晰地了解程序運(yùn)行的每一步結(jié)果,并用“畫程”軟件中“代碼窗口”的代碼作為學(xué)生完成半成品編程的參考,幫助學(xué)生體驗(yàn)算法實(shí)現(xiàn)后的成功感,增強(qiáng)其學(xué)習(xí)程序設(shè)計(jì)的自信心。
根據(jù)聽課教師的建議,在本節(jié)課“教學(xué)過(guò)程”的第2、第3部分介紹條件語(yǔ)句和總結(jié)格式時(shí),可以利用學(xué)生在小學(xué)階段學(xué)習(xí)過(guò)的Scratch軟件中的條件語(yǔ)句進(jìn)行遷移,加深學(xué)生對(duì)知識(shí)的拓展。