金婧++孫碧波
● 內(nèi)容分析
《體驗可視化編程》一課選自教育科學(xué)出版社出版的《算法與程序設(shè)計》(選修)教材。本課內(nèi)容是在必修模塊“信息加工與表達(dá)”基礎(chǔ)上的繼續(xù)深入,有助于學(xué)生了解程序設(shè)計在解決問題過程中的地位和作用。根據(jù)課題分析,本課內(nèi)容涉及兩個部分,一是“體驗編程過程”,主要是第一章第三節(jié)的內(nèi)容,二是“可視化編程”,與第二章第一節(jié)的內(nèi)容有關(guān),主要是讓學(xué)生了解可視化編程的過程,感受可視化編程的特點與魅力,而VB中的對象、屬性、方法、事件和事件驅(qū)動等基本概念是本課重要的知識基礎(chǔ)。學(xué)好本節(jié)內(nèi)容,為第四章的學(xué)習(xí)奠定基礎(chǔ),有助于培養(yǎng)和提升學(xué)生利用VB等可視化編程工具解決問題的能力,促進(jìn)他們計算思維的養(yǎng)成。
● 學(xué)情分析
教學(xué)對象是高二年級的學(xué)生。通過“信息技術(shù)基礎(chǔ)”課程的學(xué)習(xí),學(xué)生雖然已經(jīng)有了比較好的應(yīng)用軟件使用基礎(chǔ),體驗過用計算機(jī)解決問題,但沒有真正接觸過編程過程,并且計算機(jī)語言的編寫基礎(chǔ)較差。從認(rèn)知發(fā)展來看,高中學(xué)生邏輯思維能力逐步趨于成熟,具有一定的演繹歸納能力和數(shù)學(xué)基礎(chǔ),這為計算思維的進(jìn)一步發(fā)展創(chuàng)造了條件。
● 教學(xué)目標(biāo)
知識與技能目標(biāo):熟悉VB集成開發(fā)環(huán)境;理解控件、對象、屬性、事件及事件驅(qū)動等基本概念;能初步使用標(biāo)簽、按鈕、文本框等基本控件;初步認(rèn)識賦值語句。
過程與方法目標(biāo):通過設(shè)計界面理解“可視化”的含義;通過具體實例分析,進(jìn)一步理解應(yīng)用計算機(jī)解決問題的基本過程,并在使用VB實踐中逐步梳理出可視化編程的一般步驟;能利用學(xué)案開展自主學(xué)習(xí)。
情感態(tài)度與價值觀目標(biāo):培養(yǎng)分析處理問題的能力,在嘗試設(shè)計編寫小程序的過程中體驗利用VB解決問題的樂趣,增強(qiáng)邏輯思維能力;形成對技術(shù)帶來的道德與法律問題的理性的價值判斷,進(jìn)一步強(qiáng)化信息安全意識。
● 教學(xué)思路
1.內(nèi)容重組
本節(jié)選題涉及兩個章節(jié)的內(nèi)容,前一部分是算法初步,后一部分是程序設(shè)計,二者之間亦是承上啟下的關(guān)系。同時,高二學(xué)生雖完成了必修與網(wǎng)絡(luò)技術(shù)應(yīng)用選修模塊的學(xué)習(xí),但對“算法與程序設(shè)計”是第一次接觸。如果教師機(jī)械地根據(jù)教材順序,從算法開始到程序編寫,不僅時間不夠充足,也不容易引起學(xué)生的興趣。所以,筆者嘗試將“可視化編程”移到模塊最前面,這樣學(xué)生在學(xué)習(xí)初期就可以利用可視化編程動手解決一些小問題,初步具備可視化編程的能力。
2.“程序”優(yōu)先
學(xué)習(xí)可視化編程,不是要將學(xué)生培養(yǎng)成“編程”高手,而是培養(yǎng)其編程思想,形成科學(xué)的思維方式??梢暬幊痰牟襟E中有“編寫程序代碼”環(huán)節(jié),不可避免會涉及到算法的實現(xiàn),走進(jìn)使用指令編寫程序的情境。因此,筆者讓學(xué)生親歷“程序”本身,即可視化編程解決問題的過程,而“算法”(代碼編寫)應(yīng)進(jìn)行弱化處理。
● 教學(xué)過程
課前準(zhǔn)備:在學(xué)生機(jī)上安裝“改造”后的QQ。
1.登錄QQ,激起疑惑
學(xué)生進(jìn)入機(jī)房后,發(fā)現(xiàn)電腦桌面與以往有所不同,多了個QQ圖標(biāo)。好奇心與興奮感驅(qū)使學(xué)生主動點擊打開程序,當(dāng)輸入自己的QQ號與密碼后,學(xué)生發(fā)現(xiàn)密碼竟然顯示出來,他們大呼“上當(dāng)”(如下頁圖1、圖2、圖3)。
師:看來大家太不小心了,賬號密碼已經(jīng)被盜了!
生:老師,這個程序怎么會知道我的密碼呀?(學(xué)生疑惑,議論)
師:看來大家都很想知道這個程序背后的秘密呀。現(xiàn)在我們就開始探秘解密之旅!
設(shè)計意圖:本課創(chuàng)設(shè)了一個真實的生活情境(從學(xué)生經(jīng)常使用的QQ軟件入手,制作了一個QQ模擬登錄器“吸引”學(xué)生登錄,從而完成“釣魚”行動)。因為賬號密碼被盜是學(xué)生生活中常碰到的事,這立刻就引發(fā)了學(xué)生探究秘密的欲望,教師趁熱打鐵,引出本節(jié)課內(nèi)容,從而順利進(jìn)入下面的教學(xué)環(huán)節(jié)。
2.認(rèn)識“創(chuàng)作室”,建立概念
師:請大家回憶一下,剛才你們進(jìn)行了什么操作,為什么會出現(xiàn)這樣的結(jié)果?
生:在文本框內(nèi)輸入信息,然后點擊“登錄”按鈕,出現(xiàn)新按鈕點擊后就出現(xiàn)了自己的賬號、密碼。
師:這些操作其實是人與計算機(jī)的互動。那計算機(jī)是如何對我們的行為做出反應(yīng)的呢?我們就從秘密的發(fā)源地、編程的創(chuàng)作室——VB開始。
筆者打開VB,在“新建工程”對話框中選擇“標(biāo)準(zhǔn)EXE”后單擊“打開”按鈕,進(jìn)入集成開發(fā)環(huán)境一邊演示,一邊解釋。(VB是一種可視化程序開發(fā)工具,提供各種控件。每種控件都有其自身的功能。例如,將“按鈕控件”拖到窗體上,就生成了具有這個控件所有功能的具體對象。可以像搭積木一樣利用各種控件構(gòu)造應(yīng)用程序的各種界面,然后再編寫少量的代碼就可以構(gòu)建應(yīng)用程序)
師:我們嘗試在VB環(huán)境中制作一個簡易的QQ登錄程序。
設(shè)計意圖:通過問題引發(fā)學(xué)生思考程序大致的工作流程:輸入—處理—輸出(反饋)。通過介紹VB環(huán)境使學(xué)生初步建立起“控件”“對象”“可視化”的概念。
3.設(shè)計界面,內(nèi)化概念
筆者演示簡易版QQ,輸入賬號、密碼,單擊“登錄”按鈕,在上方顯示出當(dāng)前賬號的密碼(如圖4),啟發(fā)學(xué)生抽象地表達(dá)需要本程序解決的問題:賬號密碼可手動輸入、判斷密碼以及顯示密碼;再引導(dǎo)學(xué)生把問題分解、約簡為不同部分:輸入、獲取密碼以及輸出。
師:要實現(xiàn)這些功能,我們需要哪些控件?
學(xué)生觀察界面,分析程序界面有哪些對象,思考需要哪些控件。
教師根據(jù)學(xué)生的回答,總結(jié)歸納后展示,驗證并肯定學(xué)生的想法。
(1)添加控件
學(xué)生根據(jù)學(xué)案提示,自主完成如下頁圖5所示的界面。
(2)設(shè)置對象屬性
學(xué)生完成界面構(gòu)造后,會發(fā)現(xiàn)它與演示界面有些不同,如Label1顯示成“賬號”、Command1顯示為“登錄”。
師:我們所看到的Label1、Commad1是對象的默認(rèn)名,就像我們每個人有自己的姓名一樣。而除了姓名,我們每個人之間還會有差異,如身高、年齡、胖瘦等,這些特征就是我們與旁人區(qū)別的特征。同樣,在窗體中,具體的對象會表現(xiàn)出不同的特征,也就是屬性。(提示:在單擊界面某一對象時,請觀察右側(cè)屬性窗口的變化)endprint
學(xué)生會發(fā)現(xiàn)每個對象都可以被選中,并在“屬性”窗口顯示其相關(guān)屬性,找到對應(yīng)的屬性,將自己的屬性預(yù)設(shè)值填入表格,并在此基礎(chǔ)上,在VB環(huán)境中修改對象的屬性值。
(3)保存文件
學(xué)生完成設(shè)置后,根據(jù)學(xué)案要求保存文件,會發(fā)現(xiàn)需要保存兩次不同格式的文件,提出疑問。
教師抓住時機(jī)對學(xué)生操作進(jìn)行廣播,并強(qiáng)調(diào)工程與工程文件的關(guān)系,即一個工程(*.vbp)往往包含多個不同類型的文件,如窗體文件(*.frm)。
設(shè)計意圖:①通過對界面的分析設(shè)計,引導(dǎo)學(xué)生經(jīng)歷分解、模塊化的方法,培養(yǎng)學(xué)生在VB環(huán)境中進(jìn)行問題解決的思維方式,以期達(dá)到計算思維的遷移。因為學(xué)生有使用軟件的經(jīng)驗,所以教師對工程新建、控件添加未過多交代,而是將時間交給學(xué)生,讓他們根據(jù)學(xué)案選擇合適的控件,自主完成。學(xué)生通過實踐,熟悉標(biāo)簽控件、文本框控件的功能,進(jìn)一步理解控件與對象的關(guān)系。②引導(dǎo)學(xué)生觀察不同類型的對象,強(qiáng)調(diào)“對象”和“屬性”的概念以及它們之間的聯(lián)系。同時,借助表格填寫幫助學(xué)生整理形成條理性思路。學(xué)生只有充分理解“對象”“屬性”以及它們之間的聯(lián)系才能在后續(xù)的學(xué)習(xí)中更好地理解“事件”概念。
4.編寫代碼,破解秘密
師:界面已經(jīng)搭建好了,大家可以運行測試一下程序。
學(xué)生單擊“登錄”按鈕,界面上方?jīng)]有顯示密碼。
師:大家回到窗體,能找到問題所在嗎?問題出在哪里?
生:界面好像沒有什么問題,但感覺按鈕不給力呀!
師:我們將問題分解成三部分——輸入、獲取密碼以及輸出顯示,現(xiàn)在輸入沒問題,主要在顯示獲取密碼,那密碼顯示是在什么操作之后出現(xiàn)的?
生:單擊按鈕之后出現(xiàn)。
師:看來是按鈕沒有聽指揮呀,那我們一起探索按鈕背后的秘密。(教師演示選中按鈕對象雙擊打開“代碼設(shè)計”窗口,在代碼窗口可以看到三個部分——對象、事件和代碼)事件就是發(fā)生在對象上的事情。例如,對登錄按鈕(Command1)對象進(jìn)行單擊,此時應(yīng)該選擇“Click”事件。單擊以后要如何顯示密碼?大家可以試著改變Lable3的Caption屬性。有一句咒語大家可以試一試:Label3.Caption=“你的密碼為:”&Text2.Text。
學(xué)生添加代碼并調(diào)試運行程序。
教師巡視,提示代碼添加的位置,引用對象的名稱以及工程的保存,出現(xiàn)共性問題時集中演示講解。
設(shè)計意圖:①教師預(yù)先設(shè)下“陷阱”,引導(dǎo)學(xué)生運行測試程序發(fā)現(xiàn)按鈕無響應(yīng)的問題,通過一連串的設(shè)問,啟發(fā)學(xué)生回溯問題,理清思路,找到問題所在,分析什么對象被什么事件觸發(fā),從而引出對“事件”概念的講解。這也是換一種方式強(qiáng)調(diào)對象、屬性與事件的概念。②因為本節(jié)課的重點是編程過程的體驗,所以要從最容易理解的“Click”事件以及簡單的賦值語句讓學(xué)生能讀懂什么代碼段執(zhí)行了什么操作,體驗程序設(shè)計的思想。在此過程中,教師并不著急解釋代碼的含義,而讓學(xué)生先自主實踐,在運行錯誤后強(qiáng)調(diào)對象引用的名稱問題,讓他們嘗試修改代碼完善程序。
5.拓展美化,尊重個性
學(xué)生嘗試修改QQ窗體的其他屬性,如背景、字體等,增加個性化,設(shè)計一個自己喜歡的界面。
設(shè)計意圖:本環(huán)節(jié)留給學(xué)生自我創(chuàng)作的空間,既是鞏固學(xué)生對“可視化”的理解,也是拓展延伸,讓學(xué)生在實踐中進(jìn)一步熟悉對象的屬性在VB中的含義。這一環(huán)節(jié)中突出了“優(yōu)化”,讓學(xué)生嘗試從不同的角度思考問題、解決問題。
6.評價總結(jié),提升意識
教師選擇并展示1~2幅具有代表性的作品,邀請作者本人、其他同學(xué)一起從對象、屬性等方面點評;由學(xué)生回憶整個操作過程,歸納總結(jié)可視化編程的一般過程:設(shè)計程序界面—編寫程序代碼—調(diào)試、運行程序;強(qiáng)化信息安全意識。筆者從兩方面對學(xué)生進(jìn)行引導(dǎo):一是道德方面,可以讓學(xué)生討論這種想法或者行為是否符合社會規(guī)范,對自己以及他人的影響;二是技術(shù)方法,通過什么樣的方法可以解密,通過什么樣的方法才能保證自己的信息更加安全。
設(shè)計意圖:注重評價交流,不僅可以培養(yǎng)學(xué)生的表達(dá)能力,還能夠幫助其形成開放客觀的態(tài)度。學(xué)生歸納操作流程,形成自主探究總結(jié)的能力。教師引導(dǎo)學(xué)生對此類釣魚軟件技術(shù)帶來的道德與法律問題形成理性的價值判斷。
● 教學(xué)反思
本節(jié)課筆者以“探究”為關(guān)鍵,未將內(nèi)容刻意分解成明顯的子任務(wù),而是將其融入到可視化編程的過程之中。筆者從學(xué)生遇到賬號密碼被破解的實際問題出發(fā),激發(fā)學(xué)生因惑而主動探究答案的欲望,幫助學(xué)生分析解決問題需要的步驟,設(shè)計出解決問題的“程序”,每一個步驟之間的銜接都是以上一個步驟中出現(xiàn)的小問題為突破口,讓學(xué)生自己發(fā)現(xiàn)環(huán)環(huán)相扣的問題,使他們經(jīng)歷完整的編程過程,形成嚴(yán)謹(jǐn)?shù)倪壿嬎季S。
1.好奇心引導(dǎo),直接激發(fā)學(xué)生興趣
思維從驚訝開始,學(xué)生的創(chuàng)造活動來自對某件事情的興趣和好奇心,正確地引導(dǎo)這種好奇心可以促進(jìn)學(xué)生學(xué)習(xí)的發(fā)生。QQ在機(jī)房基本是被“禁用”的,但本節(jié)課反其道而行之。桌面上出現(xiàn)的QQ圖標(biāo)立刻“吸引”學(xué)生登錄,殊不知這款改造的QQ登錄器輕松完成釣魚行動,成功破解了學(xué)生的賬號密碼。因為賬號密碼被盜是我們生活中常碰到的事,而學(xué)生的親身經(jīng)歷立刻調(diào)動了他們的好奇心,“為什么?”“怎么破解?”……一連串的好奇心直接激起學(xué)生的興趣。在這種情境下,教學(xué)順利導(dǎo)入。
2.問題驅(qū)動,持續(xù)學(xué)生探究意識
好奇心激發(fā)了學(xué)生的興趣,而如何讓這種“激情”持續(xù)呢?人們常說“做學(xué)問”,可見學(xué)習(xí)與疑問不可分割,起始于問題,終結(jié)于問題。而“算法與程序”作為信息技術(shù)的一項重要學(xué)習(xí)內(nèi)容,也是解決生活問題的一種路徑。所以,要讓學(xué)生浸潤在“問題”情境之中,一方面,可以通過問題來進(jìn)行學(xué)習(xí),如在本節(jié)課中,從起初“使用什么樣的方法解密”的大問題切入,使其成為學(xué)生學(xué)習(xí)的動力、起點和貫穿學(xué)習(xí)過程的主線;另一方面,可以通過學(xué)習(xí)來生成問題,如在本節(jié)課中,先進(jìn)行程序界面的搭建,從而引入對象、屬性,在完成界面設(shè)計之后又發(fā)現(xiàn)按鈕無響應(yīng),繼而過渡到代碼編寫中的事件等概念。每一步之間都是以學(xué)生遇到的問題為橋梁,學(xué)習(xí)過程則是發(fā)現(xiàn)問題、提出問題、分析問題和解決問題的過程。
3.過程體驗,發(fā)展學(xué)生計算思維
“算法與程序”其實就是計算機(jī)解決問題的方式方法,是一種計算思維。由此可見,體驗可視化編程,并非讓學(xué)生成為編碼與譯碼的熟練工,重要的是讓他們從操作編程工具的應(yīng)用步驟入手,體驗數(shù)字化工具的運行原理,在這個過程中逐漸領(lǐng)會可視化編程的基本思想和方法。從起初的疑惑到界面設(shè)計時分析問題,再到程序完成測試成功的喜悅,學(xué)生經(jīng)過一系列的質(zhì)疑、判斷、選擇以及相應(yīng)的分析、綜合、概括等認(rèn)知活動,這種多樣化的思維方式和認(rèn)識方式有助于他們分析問題、解決問題能力的提高,從而發(fā)展其計算思維,提高數(shù)字化生存與創(chuàng)新能力。endprint