王佳莉



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