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