張凱茨


● 教材分析
本課是蘇科版初中八年級信息技術教材第四章“程序設計”第一節第二課時的內容。本課主要圍繞VB中的對象、屬性、事件等知識點展開,是本單元重要的知識基礎。在信息技術教學中培養學生的計算思維,就是要讓學生學會如何運用計算機基礎概念求解學習中遇到的問題。而“對象”“屬性”“事件”正是計算機學科的基礎概念,所以學習好本節知識內容至關重要。
● 學情分析
本課的授課對象是八年級的學生。學生在第一課時的學習中,對VB的界面、程序調試和代碼編寫的過程都有了初步的了解,體驗了一些利用VB編寫的有趣的小程序,并對程序設計充滿了好奇與興趣,但對VB中的對象、屬性、事件卻缺少系統的認識。
● 教學目標
知識與技能目標:了解建立程序界面、設置對象屬性的一般過程;理解“對象”“屬性”和“事件”的含義。
過程與方法目標:通過修改程序,掌握程序界面建立的方法;通過編寫程序,體會程序設計的過程,發展計算思維。
情感態度與價值觀目標:通過程序的編寫,提高學習程序設計的興趣。
行為與創新目標:在程序編寫中,加入自己的想法,創新改良程序。
● 教學重點、難點
重點:理解“對象”“屬性”和“事件”的含義。
難點:規范完整地書寫代碼。
● 教學過程
1.試玩程序,初步體驗
師:在上課之前,老師先給大家演示一款手機軟件,并且我會問它幾個問題,看它能不能回答。(教師在課堂上用手機演示Siri軟件)
師:今天天氣如何?
Siri:下面是今天的天氣情況(并推送到手機上)。
師:什么是程序設計?
Siri:好的,請過目(將百度百科上關于程序設計的內容推送到手機上)。
師:剛剛和老師對話的軟件叫什么?
生:Siri。
師:用Siri來解決問題分為哪幾個步驟?
生(思考后回答):使用者先提出問題,然后Siri將問題輸入、處理,最后通過語音或者文字的形式反饋出來。
師:老師今天也給大家準備了一個簡易版的Siri軟件(如圖1),請大家玩一玩并思考,你進行了怎樣的操作,就會出來不同的結果呢?
生(試玩后回答):單擊不同的按鈕,會顯示不同的答案。
師:在沒有學習VB之前,這樣說沒有任何問題。但以后我們要說得更專業一點,叫“觸發不同的對 象”。
教師打開“我的Siri”源文件,邊演示邊解釋:VB是一款面向對象的程序設計軟件。上節課中,同學們說像“畫圖”中工具欄的東西,叫控件箱。每一種控件都有其自身的功能,將它們拖到窗體上,就生成了具有這個控件所有功能的具體對 象。
設計意圖:以學生的興趣為突破點,用Siri實物演示激發學生興趣。演示過后,通過問題激發學生思考Siri大致的工作流程:輸入—處理—反饋。通過試玩簡易版Siri使學生初步建立起“對象”的概念。
2.修改程序,內化概念
教師演示選中不同的對象,讓學生觀察屬性窗口的變化。學生會發現每個對象都可以被選中,并會在“屬性”窗口顯示其相關屬性。
為了測試學生對“對象”概念的理解,教師提出:“這個程序中共有幾個對象?”在學生猶豫不定時,給出提示:在單擊界面各部分時,請觀察屬性窗口的變化。通過實驗,大部分學生形成了清晰肯定的答案,在數“對象”時,便不會漏掉窗體對象。
此時,教師打開“半成品Siri”(三個按鈕中代碼均已寫好,但“今天周幾”按鈕的事件使用“mouse move”,其余按鈕事件使用“click”),讓學生試著運行程序,對比“完成版Siri”第一行三個按鈕的功能,并討論這個程序需要完善的問題(如圖2)。
討論得到任務一:①修改“今天幾號”按鈕的屬性;②新建“回答”label標簽;③測試程序。
師:在剛才的測試中,你們有沒有遇到什么問題?
生:在“今天星期幾”這個問題上,還沒有單擊鼠標,結果就已經出來了。
師:在窗體上能夠找到問題所在嗎?你們覺得問題出在哪里呢?
生:窗體上看不出任何不同,問題應該出在代碼上。
師:那我們一起來探索一下,看看代碼,查找原因并修改。
教師操作演示如何打開代碼,讓學生觀察三個按鈕對應的三段代碼,哪段與其他兩段不一樣。學生通過對比代碼中的“click”與“mouse move”引出事件的概念,并舉例說明“click”鼠標單擊與“mouse move”鼠標移動是兩個不同的事件。教師在桌面上分別“單擊”“雙擊”“右擊”文件夾,讓學生明白不同的事件觸發同一個對象會形成不同的結果。
教師根據學生找到的“mouse move”問題,布置任務二,要求修改成單擊事件。
設計意圖:此環節是本課的重點內容。教師首先通過演示選中不同對象,引導學生觀察不同類型的對象有不同的屬性;然后讓學生數一數程序中的“對象”的個數,目的是考查學生是否已真正理解了“對象”的概念,也是換種方式再次強調對象和屬性的概念以及它們之間的聯系。學生只有充分理解“對象”“屬性”以及它們之間的聯系才能在后續的學習中更好地理解“事件”這個概念。學生在完成任務一時測試程序會發現教師預先設下的小“陷阱”,從而引出對“事件”概念的講解。而“事件”的概念不僅僅存在于VB程序設計中,還普遍存在于信息技術課程之中,于是筆者舉了一個“單擊、雙擊、右擊文件夾”的例子,讓學生更直觀地理解用不同事件去觸發同一個對象會有不同的結 果。
3.學寫代碼,掌握精髓
師:對比成品Siri,半成品Siri還少了什么按鈕?
生:“顯示時間”“退出”按鈕。
師:請大家新建這兩個按鈕,嘗試運行,看看是否有問題?想想為什 么?
生:新建的“現在幾點”“退出”兩個按鈕沒有用。因為我們沒有寫代碼。
教師操作并解釋:“雙擊”按鈕,會發現代碼部分是空白,按鈕只是提供了觸發進入哪段程序的入口,而具體解決問題的是程序內部編寫的代碼。
教師帶領學生觀察可以運行的按鈕的代碼,并分析它運行的過程;逐一解釋VB代碼書寫的規范,注意語法格式,并給每個對象命名,以便在代碼模式下進行區分;帶領學生分析什么對象被什么事件觸發,什么代碼段執行了什么操 作。
教師布置任務三請學生完善“時間”“退出”按鈕。
設計意圖:通過讓學生發現“新建”按鈕無響應,啟發學生自己找到問題所在—— 需要通過代碼控制響應內容,從而讓學生更直觀地了解程序設計中代碼的重要性。由于規范完整地書寫代碼是本節課的難點,所以筆者帶著學生一句句梳理已經寫好的代碼,讓學生理解每一句代碼的含義和書寫規則,并在實際操作中(故意寫錯代碼,導致運行出錯)強調語法規范的重要 性。
4.實踐創新,張揚個性
教師演示修改程序圖標,生成EXE文件的過程。布置任務四:給自己的Siri增加個性化的按鈕,給EXE文件修改生成圖標。教師展示兩個做得完整、帶有個性問題按鈕的學生作品,并點評,圍繞“對象”“屬性”“事件”的概念總結編寫“我的Siri”的過程。
師:現在你們能回答這個問題了嗎?我們做的Siri對按鈕上的問題進行解答的這個處理過程是怎樣的?當我們用按鈕單擊現“現在幾點了”,為什么就會在文本框中輸出時 間?
生:使用代碼調用電腦系統中的時間,讓它顯示在文本框中。
師:我們編寫的計算機Siri與實際的Siri區別在哪里?你希望今后再做哪些提升?
生1:功能少了些。
生2:沒有語音輸入功能。
……
教師解釋手機Siri的工作原理:通過語音識別技術將語言轉換成手機系統可識別的信息,然后在它巨大的數據庫中進行比對,如果系統數據庫中有這個問題,它就執行相應的指令。
師:我們今天所做的Siri就是它的一個簡化版,但原理是相通的。在今后的學習中,相信大家可以做出更智能、更人性化的程序來!希望大家存好工程文件和窗體文件,這樣便于以后在此基礎上進行改進。下面,給大家演示一個老師所做的Siri2.0版本(增加一個按鈕“放首音樂吧”,在音樂聲中結束課 程)。
設計意圖:學生已經在“玩”“改”“學”三個任務中掌握了本節課的重難點內容,了解了簡易版的Siri的工作原理和代碼書寫規則,并在此過程中有了很多的靈感和小創意。任務四的設置主要是為了增加課堂的趣味性,讓學有余力的學生獲得更多的成就感。同時,也給后進生更多的時間去完成之前的三個基礎任務。通過演示部分學生作品,提升學生的學習興趣,展現學生風采;總結Siri的原理,給學生鼓勵,消除學生對程序設計的神秘感,提升其學習興趣,便于后續學習;最后通過一個Siri2.0版本的演示告知學生保存工程文件和窗體文件的意義——可以對自己的作品進行反復的修改和優化。
● 教學反思
本課遵循體驗式教學四步法——玩、改、學、做,設計了三個基本任務和一個拓展任務,三個任務的銜接都是以上一個任務遺留下來的小問題為突破口,讓學生自己發現從而自然過渡。例如,第一個任務——搭建程序界面,遺留一個按鈕的事件為mouse move,其余為click事件。學生在完成第一個任務的同時,會發現問題,從而過渡到任務二,引入事件。完成任務二的學生會發現部分按鈕無響應的情況,繼而引出任務三——VB代碼的書寫。學生在操作中,主動發現問題,積極思考,想辦法解決問題,這改變了傳統程序設計課程中,學生被動學習,一味模仿的現狀,從計算思維層面提升了他們的操作技能。
在教學中讓學生領會“對象、屬性、事件”這一計算機科學的基礎概念是本堂課的重中之重,讓學生“知其然也知其所以然”,讓學生對學科的內容組織不只停留在技術活動層面,還要在計算思維的引領下推進到技術思想層面,這樣的教學活動才有意義。計算思維的培養不是在某一節具體的課中就能實現的,而是需要教師在平時教學中進行點點滴滴的滲透。本節課中,筆者將“事件”概念與文件夾的操作這一知識點結合起來,讓學生發現關聯點,從而理解“事件”概念的內涵,這就是計算思維在課堂中滲透的具體體現。這樣的例子在教學中還有很多,有待于教師在平時教學中發掘與提煉。教師要從教學中遇到的問題出發,引導學生找到解決問題的方法和思路,使之看到問題之外的問題、方法之外的方法。
點 評
本節課主要圍繞體驗式教學四步法在程序設計課程中的應用而展開。一方面,通過體驗式教學四步法,將本課的對象、屬性、事件等概念設計成活動,以深化學生的理解;另一方面,通過對這些概念之間關系的搭建,促成學生對計算機工作方式的理解,也就是我們所說的計算思維的形成。
教學設計分為“玩”“改”“學”“做”四大模塊,先讓學生玩一玩成品的簡易Siri程序,其目的是激發學生學習興趣,讓學生在玩中初步接觸和體驗本課的重點概念——對象。在以往的教學中,教師通常是通過打比方的方法來解釋“對象”概念,這不如讓他們通過VB作品感受來得直接,玩過后再通過簡單易理解的數“對象”個數,以強化學生對對象的理解。“改一改”環節設計了待修改的屬性,讓學生親歷各對象屬性修改前后的變化,使其更直接而有效地理解了屬性。在以往的教學中,教師常常將一個物體類比成對象,將物體的顏色、大小、位置等類比成屬性,來給學生解釋對象和屬性,而學生聽完多半還是一頭霧水,而本課直接用“玩一玩”和“改一改”的方法進行,成效明顯。“學一學”環節是先給學生設置困難,如設計了初學者經常會犯的錯:只搭界面、不寫代碼。而學生能夠很快發現問題的原因,是因為在上一個環節中,雖然沒有寫過代碼,但是在修改時已經看到過代碼段,關鍵知識點的難度又一次因為體驗過而被降低。這些環環相扣的設計,讓整個課程內容的推進由易至難,流暢有序。最后在“做一做”環節,學生通過設計創新,進一步鞏固了課堂學習的內容。
在將計算思維融入教學方面,張老師也有以下實踐。第一,引導學生觀察和分析軟件工作的方式:輸入—處理—反饋。這是計算機工作的基本方式,看似簡單帶過的內容,實則體現了教師“以計算機科學家的方式思考問題”的計算思維教學思路。第二,強調窗體對象,這也是在平常的教學中不常見的,但是只有通過教師對類似問題的不斷梳理,學生才會建立所謂“面向對象”編程的思想,理解計算機處理問題時對象化的思路。第三,教師和學生不僅在本節課對“我的Siri程序”進行了版本的多次更新,最后還通過總結,暢想了它有可能的發展,這種簡單程序的不斷修改完善,其實也體現了計算機工作中迭代的思想。
體驗式教學四步法的設計,讓教學內容更貼近了學生,也更貼近了知識技能本身,因而使課堂效率得到了很大提升。計算思維的融入,讓計算機的基本工作原理在每一課中漸漸深入學生的內心,為他們今后通過計算機解決問題提供了思路。二者的結合讓這節課上得非常精彩,值得我們品味和思索。