毛澄潔+項(xiàng)杰庭
程序教學(xué)的復(fù)興
● 基于過程體驗(yàn)的App Inventor教學(xué)法
“授人以魚,不如授人以漁”。開設(shè)App Inventor課程,應(yīng)該立足于能力的培養(yǎng),特別是應(yīng)該立足于計(jì)算思維能力的培養(yǎng)。所謂計(jì)算思維是一種基于計(jì)算機(jī)的解決問題的思維方法,這種方法將問題轉(zhuǎn)換為某個(gè)計(jì)算裝置上的信息處理過程,并尋求一種算法上的解決途徑。因此,在App Inventor教學(xué)中,應(yīng)該通過教學(xué)設(shè)計(jì)和實(shí)例制作,貫徹過程體驗(yàn)原則,讓學(xué)生體驗(yàn)軟件開發(fā)的全過程,體驗(yàn)其中解決問題的計(jì)算思維方法。
過程體驗(yàn)原則注重的是情感與認(rèn)知過程的統(tǒng)一。學(xué)生通過激發(fā)情感,在開發(fā)過程中感知和領(lǐng)悟知識(shí),在認(rèn)知活動(dòng)中充分發(fā)揮情感作用,并達(dá)到促進(jìn)學(xué)生對(duì)知識(shí)的掌握與應(yīng)用,做到情知合一的協(xié)同發(fā)展。過程體驗(yàn)教學(xué)具有親歷自主性、實(shí)踐性、個(gè)性化、交往性、情境性、緘默性等特征。
軟件項(xiàng)目開發(fā)的過程主要包括問題的定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試等階段。
App Inventor的開發(fā)環(huán)境降低了軟件開發(fā)的技術(shù)門檻,筆者用兩課時(shí)在數(shù)字涂鴉項(xiàng)目教學(xué)中運(yùn)用了貫徹過程體驗(yàn)原則的教學(xué)方法。該教學(xué)方法遵循上述軟件項(xiàng)目開發(fā)的一般流程,通過學(xué)生課上撰寫的開發(fā)記錄可以進(jìn)行分析,進(jìn)一步明確這一教學(xué)方法的有效性。
● 關(guān)于數(shù)字涂鴉項(xiàng)目教學(xué)設(shè)計(jì)
1.項(xiàng)目功能介紹
提到涂鴉,人們都非常熟悉,在手機(jī)上實(shí)現(xiàn)簡(jiǎn)易數(shù)字涂鴉功能也非常簡(jiǎn)單。就是手指在手機(jī)屏幕上滑動(dòng)時(shí),可以畫出線條(如圖1)。
圖1
學(xué)生完成的數(shù)字涂鴉程序作品如圖2所示,增加了清屏、顏色的選擇、粗細(xì)的選擇,通過拍照的方式更改畫布背景,還增加了畫點(diǎn)、線、花紋的選擇。這是學(xué)生在完成App程序開發(fā)后,自己使用該程序完成的一個(gè)涂鴉作品。
2.相關(guān)知識(shí)點(diǎn)
(1)畫布(Canvas)組件的拖拽事件,畫點(diǎn)、線、圓、清除畫布等方法,背景顏色、背景圖片、畫筆顏色、畫筆粗細(xì)等屬性。
(2)照相機(jī)(Camera)組件,拍照后事件,拍照方法。
(3)變量的定義、賦值與使用。
(4)If then的選擇結(jié)構(gòu)。
(5)軟件開發(fā)過程的體驗(yàn)。
3.教學(xué)目標(biāo)
(1)通過本項(xiàng)目的問題定義、需求分析、軟件設(shè)計(jì)、程序編程、軟件測(cè)試等過程,了解并體驗(yàn)軟件開發(fā)的基本過程,建立基于計(jì)算機(jī)編程的問題解決的基本邏輯。
(2)學(xué)習(xí)并熟練使用畫布組件屬性、事件與方法,并應(yīng)用于本項(xiàng)目的開發(fā)。
(3)了解相機(jī)組件的基本功能、事件與方法,并應(yīng)用本項(xiàng)目的開發(fā)。
(4)通過讓程序區(qū)分所畫圖形,引入變量的概念,學(xué)會(huì)定義變量、給變量賦值、使用變量;引入if then的選擇結(jié)構(gòu),引入條件判斷與表達(dá)式,學(xué)會(huì)條件判斷進(jìn)行編程。
4.教學(xué)過程
第一部分:初步開發(fā)
(1)新課導(dǎo)入。
教師設(shè)置問題情境:手機(jī)成為每個(gè)人必備通訊工具,滑屏、觸屏成為每天的功課,可以留下人們滑屏、觸屏的軌跡嗎?如何實(shí)現(xiàn)?出示上頁圖1的照片。
(2)兩人一組,圍繞以下問題進(jìn)行討論。
軟件需求:數(shù)字涂鴉。
應(yīng)用設(shè)計(jì):要達(dá)到什么功能?如何進(jìn)行人機(jī)交互?軟件界面設(shè)計(jì)成什么樣子?信息如何交換?
(3)小組合作嘗試開發(fā)、試用。
使用畫布組件,了解它的屬性、事件與方法,試著來完成這一功能。打開模擬器,嘗試使用此程序。
(4)小組交流嘗試開發(fā),教師點(diǎn)評(píng):利用畫布的拖拽事件,可以獲取三個(gè)點(diǎn)的坐標(biāo),調(diào)用畫線方法,利用前一個(gè)點(diǎn)和當(dāng)前點(diǎn)的XY坐標(biāo),就可以畫線,記錄手指觸屏的軌跡(如圖3)。
(5)繼續(xù)制作自己的程序:試著畫一幅涂鴉作品,看一看軟件還需要有什么修改的地方。
第二部分:拓展開發(fā)
(6)教師匯總學(xué)生們提出的意見與解決方案。
(7)教師講解相關(guān)知識(shí)。
(8)學(xué)生自主開發(fā),完善自己的作品。
第三部分:程序的修改與完善
(9)教師點(diǎn)評(píng)學(xué)生的項(xiàng)目作品,明確問題點(diǎn)與解決方案:①組件命名不規(guī)范——如何規(guī)范命名組件。②BLOCK編輯區(qū)代碼塊太亂——BLOCK編輯區(qū)的整理,排列、堆疊、復(fù)制、收起、打開等操作。③背景顏色設(shè)置錯(cuò)誤。④變量與選擇結(jié)構(gòu)的應(yīng)用。
(10)根據(jù)教師要求,修改完善自己的作品:①規(guī)范組件命名。②修改不正確的功能和屬性設(shè)定。③增加并完善數(shù)字涂鴉軟件功能。④制作模擬器的屏幕截圖,保存源文件,填寫軟件修改記錄。
(11)交流展示作品與開發(fā)體會(huì)。
● 課程實(shí)施過程與效果的反饋情況
教學(xué)過程與軟件開發(fā)過程的協(xié)調(diào)統(tǒng)一,體現(xiàn)了App Inventor體驗(yàn)式過程教學(xué)方法的核心,體現(xiàn)了問題發(fā)現(xiàn)和解決的理念,即問題—解決方法—程序修改。
利用“我的數(shù)字涂鴉”開發(fā)記錄,通過記錄的方式使學(xué)生在本課導(dǎo)入時(shí),較為認(rèn)真、快速地根據(jù)問題定義,設(shè)計(jì)出了自己想要的軟件功能。這種方式學(xué)生非常認(rèn)可,也很配合,每節(jié)課的開發(fā)記錄要求均不一樣。
修改完善自己的作品。根據(jù)學(xué)生作品中存在的問題,教師提出修改意見,學(xué)生根據(jù)教師的建議,明確自己需要解決的問題,通過自己的不斷嘗試,使問題最終得到解決。這是培養(yǎng)學(xué)生批判性思維的良好機(jī)會(huì)。學(xué)生也很認(rèn)同,從他們撰寫的文字中可以看出:
通過這節(jié)課的學(xué)習(xí),我了解到軟件開發(fā)員工作的不易,在做好程序的雛形之后,還需不斷調(diào)試,以保證各個(gè)組件都可以正常運(yùn)轉(zhuǎn),或者添加一些新功能。可能他們用在調(diào)試上的時(shí)間比設(shè)計(jì)制作雛形上的時(shí)間多得多。
對(duì)體驗(yàn)式的項(xiàng)目開發(fā)學(xué)習(xí),學(xué)生也很認(rèn)可,下面是學(xué)生感言的摘錄:
在開發(fā)過程中途會(huì)遇到一些難題,要經(jīng)過一些思考。不過總體來說還是覺得自己解決問題、編自己所想要的程序很有意思。通過這個(gè)過程,能夠感覺到自己在成長(zhǎng)。這節(jié)課學(xué)會(huì)了用canvas和變量,可以利用變量改變形狀和線段的粗細(xì),簡(jiǎn)化了一步步設(shè)置的問題,相對(duì)VB而言編程簡(jiǎn)單了很多。App inventor中的語句簡(jiǎn)單易懂,相信可以用其中的隨機(jī)變量實(shí)現(xiàn)許多有意思的創(chuàng)意。
通過一些簡(jiǎn)單的拼塊,可以做出平時(shí)看起來很高級(jí)的東西,雖然是編程,但過程并未讓我感到枯燥,反而很有意思。因?yàn)樗⒉挥脤懻Z言,也不用擔(dān)心隨處都可能犯錯(cuò)誤,而是通過幾個(gè)拼塊完成整個(gè)過程。學(xué)習(xí)了編程以后,就更能體會(huì)到編程人員工作的不容易。
● 結(jié)束語
基于過程體驗(yàn)的App Inventor項(xiàng)目教學(xué)法是本課程長(zhǎng)期采用的一種教學(xué)方法,在實(shí)施過程中,每個(gè)項(xiàng)目均采用問題定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試的基本流程,不同項(xiàng)目的開發(fā)記錄表要求不一樣,新知識(shí)內(nèi)容講解的時(shí)間安排不一樣,大多數(shù)在一開始就講,而本案例則由于一開始用到的技術(shù)比較簡(jiǎn)單,因此放在中間講。從整個(gè)學(xué)期的教學(xué)情況和學(xué)生在每個(gè)項(xiàng)目進(jìn)行中認(rèn)真而執(zhí)著的表現(xiàn)看,效果非常好。
由于App Inventor的界面是全英文的,教師提供的材料大部分也是英文的,因此對(duì)學(xué)生的英語水平要求也較高,但同時(shí)也有一個(gè)附加的收獲就是學(xué)生的英語閱讀能力提高了。
另外,這一教學(xué)法對(duì)課時(shí)要求比較高,我們采用的是每周2課時(shí)連堂排,所以學(xué)生基本上有90分鐘的時(shí)間來完成一個(gè)項(xiàng)目,對(duì)于1課時(shí)的安排,則不適宜采用該方法。我們將會(huì)在下一輪的教學(xué)中,在項(xiàng)目選擇、環(huán)節(jié)安排上做一些調(diào)整,使之更適合學(xué)生自主性比較大的體驗(yàn)式過程教學(xué)。
● 基于過程體驗(yàn)的App Inventor教學(xué)法
“授人以魚,不如授人以漁”。開設(shè)App Inventor課程,應(yīng)該立足于能力的培養(yǎng),特別是應(yīng)該立足于計(jì)算思維能力的培養(yǎng)。所謂計(jì)算思維是一種基于計(jì)算機(jī)的解決問題的思維方法,這種方法將問題轉(zhuǎn)換為某個(gè)計(jì)算裝置上的信息處理過程,并尋求一種算法上的解決途徑。因此,在App Inventor教學(xué)中,應(yīng)該通過教學(xué)設(shè)計(jì)和實(shí)例制作,貫徹過程體驗(yàn)原則,讓學(xué)生體驗(yàn)軟件開發(fā)的全過程,體驗(yàn)其中解決問題的計(jì)算思維方法。
endprint
過程體驗(yàn)原則注重的是情感與認(rèn)知過程的統(tǒng)一。學(xué)生通過激發(fā)情感,在開發(fā)過程中感知和領(lǐng)悟知識(shí),在認(rèn)知活動(dòng)中充分發(fā)揮情感作用,并達(dá)到促進(jìn)學(xué)生對(duì)知識(shí)的掌握與應(yīng)用,做到情知合一的協(xié)同發(fā)展。過程體驗(yàn)教學(xué)具有親歷自主性、實(shí)踐性、個(gè)性化、交往性、情境性、緘默性等特征。
軟件項(xiàng)目開發(fā)的過程主要包括問題的定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試等階段。
App Inventor的開發(fā)環(huán)境降低了軟件開發(fā)的技術(shù)門檻,筆者用兩課時(shí)在數(shù)字涂鴉項(xiàng)目教學(xué)中運(yùn)用了貫徹過程體驗(yàn)原則的教學(xué)方法。該教學(xué)方法遵循上述軟件項(xiàng)目開發(fā)的一般流程,通過學(xué)生課上撰寫的開發(fā)記錄可以進(jìn)行分析,進(jìn)一步明確這一教學(xué)方法的有效性。
● 關(guān)于數(shù)字涂鴉項(xiàng)目教學(xué)設(shè)計(jì)
1.項(xiàng)目功能介紹
提到涂鴉,人們都非常熟悉,在手機(jī)上實(shí)現(xiàn)簡(jiǎn)易數(shù)字涂鴉功能也非常簡(jiǎn)單。就是手指在手機(jī)屏幕上滑動(dòng)時(shí),可以畫出線條(如圖1)。
圖1
學(xué)生完成的數(shù)字涂鴉程序作品如圖2所示,增加了清屏、顏色的選擇、粗細(xì)的選擇,通過拍照的方式更改畫布背景,還增加了畫點(diǎn)、線、花紋的選擇。這是學(xué)生在完成App程序開發(fā)后,自己使用該程序完成的一個(gè)涂鴉作品。
2.相關(guān)知識(shí)點(diǎn)
(1)畫布(Canvas)組件的拖拽事件,畫點(diǎn)、線、圓、清除畫布等方法,背景顏色、背景圖片、畫筆顏色、畫筆粗細(xì)等屬性。
(2)照相機(jī)(Camera)組件,拍照后事件,拍照方法。
(3)變量的定義、賦值與使用。
(4)If then的選擇結(jié)構(gòu)。
(5)軟件開發(fā)過程的體驗(yàn)。
3.教學(xué)目標(biāo)
(1)通過本項(xiàng)目的問題定義、需求分析、軟件設(shè)計(jì)、程序編程、軟件測(cè)試等過程,了解并體驗(yàn)軟件開發(fā)的基本過程,建立基于計(jì)算機(jī)編程的問題解決的基本邏輯。
(2)學(xué)習(xí)并熟練使用畫布組件屬性、事件與方法,并應(yīng)用于本項(xiàng)目的開發(fā)。
(3)了解相機(jī)組件的基本功能、事件與方法,并應(yīng)用本項(xiàng)目的開發(fā)。
(4)通過讓程序區(qū)分所畫圖形,引入變量的概念,學(xué)會(huì)定義變量、給變量賦值、使用變量;引入if then的選擇結(jié)構(gòu),引入條件判斷與表達(dá)式,學(xué)會(huì)條件判斷進(jìn)行編程。
4.教學(xué)過程
第一部分:初步開發(fā)
(1)新課導(dǎo)入。
教師設(shè)置問題情境:手機(jī)成為每個(gè)人必備通訊工具,滑屏、觸屏成為每天的功課,可以留下人們滑屏、觸屏的軌跡嗎?如何實(shí)現(xiàn)?出示上頁圖1的照片。
(2)兩人一組,圍繞以下問題進(jìn)行討論。
軟件需求:數(shù)字涂鴉。
應(yīng)用設(shè)計(jì):要達(dá)到什么功能?如何進(jìn)行人機(jī)交互?軟件界面設(shè)計(jì)成什么樣子?信息如何交換?
(3)小組合作嘗試開發(fā)、試用。
使用畫布組件,了解它的屬性、事件與方法,試著來完成這一功能。打開模擬器,嘗試使用此程序。
(4)小組交流嘗試開發(fā),教師點(diǎn)評(píng):利用畫布的拖拽事件,可以獲取三個(gè)點(diǎn)的坐標(biāo),調(diào)用畫線方法,利用前一個(gè)點(diǎn)和當(dāng)前點(diǎn)的XY坐標(biāo),就可以畫線,記錄手指觸屏的軌跡(如圖3)。
(5)繼續(xù)制作自己的程序:試著畫一幅涂鴉作品,看一看軟件還需要有什么修改的地方。
第二部分:拓展開發(fā)
(6)教師匯總學(xué)生們提出的意見與解決方案。
(7)教師講解相關(guān)知識(shí)。
(8)學(xué)生自主開發(fā),完善自己的作品。
第三部分:程序的修改與完善
(9)教師點(diǎn)評(píng)學(xué)生的項(xiàng)目作品,明確問題點(diǎn)與解決方案:①組件命名不規(guī)范——如何規(guī)范命名組件。②BLOCK編輯區(qū)代碼塊太亂——BLOCK編輯區(qū)的整理,排列、堆疊、復(fù)制、收起、打開等操作。③背景顏色設(shè)置錯(cuò)誤。④變量與選擇結(jié)構(gòu)的應(yīng)用。
(10)根據(jù)教師要求,修改完善自己的作品:①規(guī)范組件命名。②修改不正確的功能和屬性設(shè)定。③增加并完善數(shù)字涂鴉軟件功能。④制作模擬器的屏幕截圖,保存源文件,填寫軟件修改記錄。
(11)交流展示作品與開發(fā)體會(huì)。
● 課程實(shí)施過程與效果的反饋情況
教學(xué)過程與軟件開發(fā)過程的協(xié)調(diào)統(tǒng)一,體現(xiàn)了App Inventor體驗(yàn)式過程教學(xué)方法的核心,體現(xiàn)了問題發(fā)現(xiàn)和解決的理念,即問題—解決方法—程序修改。
利用“我的數(shù)字涂鴉”開發(fā)記錄,通過記錄的方式使學(xué)生在本課導(dǎo)入時(shí),較為認(rèn)真、快速地根據(jù)問題定義,設(shè)計(jì)出了自己想要的軟件功能。這種方式學(xué)生非常認(rèn)可,也很配合,每節(jié)課的開發(fā)記錄要求均不一樣。
修改完善自己的作品。根據(jù)學(xué)生作品中存在的問題,教師提出修改意見,學(xué)生根據(jù)教師的建議,明確自己需要解決的問題,通過自己的不斷嘗試,使問題最終得到解決。這是培養(yǎng)學(xué)生批判性思維的良好機(jī)會(huì)。學(xué)生也很認(rèn)同,從他們撰寫的文字中可以看出:
通過這節(jié)課的學(xué)習(xí),我了解到軟件開發(fā)員工作的不易,在做好程序的雛形之后,還需不斷調(diào)試,以保證各個(gè)組件都可以正常運(yùn)轉(zhuǎn),或者添加一些新功能。可能他們用在調(diào)試上的時(shí)間比設(shè)計(jì)制作雛形上的時(shí)間多得多。
對(duì)體驗(yàn)式的項(xiàng)目開發(fā)學(xué)習(xí),學(xué)生也很認(rèn)可,下面是學(xué)生感言的摘錄:
在開發(fā)過程中途會(huì)遇到一些難題,要經(jīng)過一些思考。不過總體來說還是覺得自己解決問題、編自己所想要的程序很有意思。通過這個(gè)過程,能夠感覺到自己在成長(zhǎng)。這節(jié)課學(xué)會(huì)了用canvas和變量,可以利用變量改變形狀和線段的粗細(xì),簡(jiǎn)化了一步步設(shè)置的問題,相對(duì)VB而言編程簡(jiǎn)單了很多。App inventor中的語句簡(jiǎn)單易懂,相信可以用其中的隨機(jī)變量實(shí)現(xiàn)許多有意思的創(chuàng)意。
通過一些簡(jiǎn)單的拼塊,可以做出平時(shí)看起來很高級(jí)的東西,雖然是編程,但過程并未讓我感到枯燥,反而很有意思。因?yàn)樗⒉挥脤懻Z言,也不用擔(dān)心隨處都可能犯錯(cuò)誤,而是通過幾個(gè)拼塊完成整個(gè)過程。學(xué)習(xí)了編程以后,就更能體會(huì)到編程人員工作的不容易。
● 結(jié)束語
基于過程體驗(yàn)的App Inventor項(xiàng)目教學(xué)法是本課程長(zhǎng)期采用的一種教學(xué)方法,在實(shí)施過程中,每個(gè)項(xiàng)目均采用問題定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試的基本流程,不同項(xiàng)目的開發(fā)記錄表要求不一樣,新知識(shí)內(nèi)容講解的時(shí)間安排不一樣,大多數(shù)在一開始就講,而本案例則由于一開始用到的技術(shù)比較簡(jiǎn)單,因此放在中間講。從整個(gè)學(xué)期的教學(xué)情況和學(xué)生在每個(gè)項(xiàng)目進(jìn)行中認(rèn)真而執(zhí)著的表現(xiàn)看,效果非常好。
由于App Inventor的界面是全英文的,教師提供的材料大部分也是英文的,因此對(duì)學(xué)生的英語水平要求也較高,但同時(shí)也有一個(gè)附加的收獲就是學(xué)生的英語閱讀能力提高了。
另外,這一教學(xué)法對(duì)課時(shí)要求比較高,我們采用的是每周2課時(shí)連堂排,所以學(xué)生基本上有90分鐘的時(shí)間來完成一個(gè)項(xiàng)目,對(duì)于1課時(shí)的安排,則不適宜采用該方法。我們將會(huì)在下一輪的教學(xué)中,在項(xiàng)目選擇、環(huán)節(jié)安排上做一些調(diào)整,使之更適合學(xué)生自主性比較大的體驗(yàn)式過程教學(xué)。
參考文獻(xiàn):
[1]項(xiàng)華.信息技術(shù)與中學(xué)物理教學(xué)整合[M].北京:北京師范大學(xué)出版社,2013(9).
[2]Wing J M.Computational thinking[J].Communications of the ACM, 2006,49(3).
[3]董榮勝.計(jì)算思維及計(jì)算機(jī)導(dǎo)論[J].計(jì)算機(jī)科學(xué), 2009,36(4).
[4]App Inventor在線開發(fā)平臺(tái):ai2.appinventor.mit.edu.
endprint
過程體驗(yàn)原則注重的是情感與認(rèn)知過程的統(tǒng)一。學(xué)生通過激發(fā)情感,在開發(fā)過程中感知和領(lǐng)悟知識(shí),在認(rèn)知活動(dòng)中充分發(fā)揮情感作用,并達(dá)到促進(jìn)學(xué)生對(duì)知識(shí)的掌握與應(yīng)用,做到情知合一的協(xié)同發(fā)展。過程體驗(yàn)教學(xué)具有親歷自主性、實(shí)踐性、個(gè)性化、交往性、情境性、緘默性等特征。
軟件項(xiàng)目開發(fā)的過程主要包括問題的定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試等階段。
App Inventor的開發(fā)環(huán)境降低了軟件開發(fā)的技術(shù)門檻,筆者用兩課時(shí)在數(shù)字涂鴉項(xiàng)目教學(xué)中運(yùn)用了貫徹過程體驗(yàn)原則的教學(xué)方法。該教學(xué)方法遵循上述軟件項(xiàng)目開發(fā)的一般流程,通過學(xué)生課上撰寫的開發(fā)記錄可以進(jìn)行分析,進(jìn)一步明確這一教學(xué)方法的有效性。
● 關(guān)于數(shù)字涂鴉項(xiàng)目教學(xué)設(shè)計(jì)
1.項(xiàng)目功能介紹
提到涂鴉,人們都非常熟悉,在手機(jī)上實(shí)現(xiàn)簡(jiǎn)易數(shù)字涂鴉功能也非常簡(jiǎn)單。就是手指在手機(jī)屏幕上滑動(dòng)時(shí),可以畫出線條(如圖1)。
圖1
學(xué)生完成的數(shù)字涂鴉程序作品如圖2所示,增加了清屏、顏色的選擇、粗細(xì)的選擇,通過拍照的方式更改畫布背景,還增加了畫點(diǎn)、線、花紋的選擇。這是學(xué)生在完成App程序開發(fā)后,自己使用該程序完成的一個(gè)涂鴉作品。
2.相關(guān)知識(shí)點(diǎn)
(1)畫布(Canvas)組件的拖拽事件,畫點(diǎn)、線、圓、清除畫布等方法,背景顏色、背景圖片、畫筆顏色、畫筆粗細(xì)等屬性。
(2)照相機(jī)(Camera)組件,拍照后事件,拍照方法。
(3)變量的定義、賦值與使用。
(4)If then的選擇結(jié)構(gòu)。
(5)軟件開發(fā)過程的體驗(yàn)。
3.教學(xué)目標(biāo)
(1)通過本項(xiàng)目的問題定義、需求分析、軟件設(shè)計(jì)、程序編程、軟件測(cè)試等過程,了解并體驗(yàn)軟件開發(fā)的基本過程,建立基于計(jì)算機(jī)編程的問題解決的基本邏輯。
(2)學(xué)習(xí)并熟練使用畫布組件屬性、事件與方法,并應(yīng)用于本項(xiàng)目的開發(fā)。
(3)了解相機(jī)組件的基本功能、事件與方法,并應(yīng)用本項(xiàng)目的開發(fā)。
(4)通過讓程序區(qū)分所畫圖形,引入變量的概念,學(xué)會(huì)定義變量、給變量賦值、使用變量;引入if then的選擇結(jié)構(gòu),引入條件判斷與表達(dá)式,學(xué)會(huì)條件判斷進(jìn)行編程。
4.教學(xué)過程
第一部分:初步開發(fā)
(1)新課導(dǎo)入。
教師設(shè)置問題情境:手機(jī)成為每個(gè)人必備通訊工具,滑屏、觸屏成為每天的功課,可以留下人們滑屏、觸屏的軌跡嗎?如何實(shí)現(xiàn)?出示上頁圖1的照片。
(2)兩人一組,圍繞以下問題進(jìn)行討論。
軟件需求:數(shù)字涂鴉。
應(yīng)用設(shè)計(jì):要達(dá)到什么功能?如何進(jìn)行人機(jī)交互?軟件界面設(shè)計(jì)成什么樣子?信息如何交換?
(3)小組合作嘗試開發(fā)、試用。
使用畫布組件,了解它的屬性、事件與方法,試著來完成這一功能。打開模擬器,嘗試使用此程序。
(4)小組交流嘗試開發(fā),教師點(diǎn)評(píng):利用畫布的拖拽事件,可以獲取三個(gè)點(diǎn)的坐標(biāo),調(diào)用畫線方法,利用前一個(gè)點(diǎn)和當(dāng)前點(diǎn)的XY坐標(biāo),就可以畫線,記錄手指觸屏的軌跡(如圖3)。
(5)繼續(xù)制作自己的程序:試著畫一幅涂鴉作品,看一看軟件還需要有什么修改的地方。
第二部分:拓展開發(fā)
(6)教師匯總學(xué)生們提出的意見與解決方案。
(7)教師講解相關(guān)知識(shí)。
(8)學(xué)生自主開發(fā),完善自己的作品。
第三部分:程序的修改與完善
(9)教師點(diǎn)評(píng)學(xué)生的項(xiàng)目作品,明確問題點(diǎn)與解決方案:①組件命名不規(guī)范——如何規(guī)范命名組件。②BLOCK編輯區(qū)代碼塊太亂——BLOCK編輯區(qū)的整理,排列、堆疊、復(fù)制、收起、打開等操作。③背景顏色設(shè)置錯(cuò)誤。④變量與選擇結(jié)構(gòu)的應(yīng)用。
(10)根據(jù)教師要求,修改完善自己的作品:①規(guī)范組件命名。②修改不正確的功能和屬性設(shè)定。③增加并完善數(shù)字涂鴉軟件功能。④制作模擬器的屏幕截圖,保存源文件,填寫軟件修改記錄。
(11)交流展示作品與開發(fā)體會(huì)。
● 課程實(shí)施過程與效果的反饋情況
教學(xué)過程與軟件開發(fā)過程的協(xié)調(diào)統(tǒng)一,體現(xiàn)了App Inventor體驗(yàn)式過程教學(xué)方法的核心,體現(xiàn)了問題發(fā)現(xiàn)和解決的理念,即問題—解決方法—程序修改。
利用“我的數(shù)字涂鴉”開發(fā)記錄,通過記錄的方式使學(xué)生在本課導(dǎo)入時(shí),較為認(rèn)真、快速地根據(jù)問題定義,設(shè)計(jì)出了自己想要的軟件功能。這種方式學(xué)生非常認(rèn)可,也很配合,每節(jié)課的開發(fā)記錄要求均不一樣。
修改完善自己的作品。根據(jù)學(xué)生作品中存在的問題,教師提出修改意見,學(xué)生根據(jù)教師的建議,明確自己需要解決的問題,通過自己的不斷嘗試,使問題最終得到解決。這是培養(yǎng)學(xué)生批判性思維的良好機(jī)會(huì)。學(xué)生也很認(rèn)同,從他們撰寫的文字中可以看出:
通過這節(jié)課的學(xué)習(xí),我了解到軟件開發(fā)員工作的不易,在做好程序的雛形之后,還需不斷調(diào)試,以保證各個(gè)組件都可以正常運(yùn)轉(zhuǎn),或者添加一些新功能。可能他們用在調(diào)試上的時(shí)間比設(shè)計(jì)制作雛形上的時(shí)間多得多。
對(duì)體驗(yàn)式的項(xiàng)目開發(fā)學(xué)習(xí),學(xué)生也很認(rèn)可,下面是學(xué)生感言的摘錄:
在開發(fā)過程中途會(huì)遇到一些難題,要經(jīng)過一些思考。不過總體來說還是覺得自己解決問題、編自己所想要的程序很有意思。通過這個(gè)過程,能夠感覺到自己在成長(zhǎng)。這節(jié)課學(xué)會(huì)了用canvas和變量,可以利用變量改變形狀和線段的粗細(xì),簡(jiǎn)化了一步步設(shè)置的問題,相對(duì)VB而言編程簡(jiǎn)單了很多。App inventor中的語句簡(jiǎn)單易懂,相信可以用其中的隨機(jī)變量實(shí)現(xiàn)許多有意思的創(chuàng)意。
通過一些簡(jiǎn)單的拼塊,可以做出平時(shí)看起來很高級(jí)的東西,雖然是編程,但過程并未讓我感到枯燥,反而很有意思。因?yàn)樗⒉挥脤懻Z言,也不用擔(dān)心隨處都可能犯錯(cuò)誤,而是通過幾個(gè)拼塊完成整個(gè)過程。學(xué)習(xí)了編程以后,就更能體會(huì)到編程人員工作的不容易。
● 結(jié)束語
基于過程體驗(yàn)的App Inventor項(xiàng)目教學(xué)法是本課程長(zhǎng)期采用的一種教學(xué)方法,在實(shí)施過程中,每個(gè)項(xiàng)目均采用問題定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試的基本流程,不同項(xiàng)目的開發(fā)記錄表要求不一樣,新知識(shí)內(nèi)容講解的時(shí)間安排不一樣,大多數(shù)在一開始就講,而本案例則由于一開始用到的技術(shù)比較簡(jiǎn)單,因此放在中間講。從整個(gè)學(xué)期的教學(xué)情況和學(xué)生在每個(gè)項(xiàng)目進(jìn)行中認(rèn)真而執(zhí)著的表現(xiàn)看,效果非常好。
由于App Inventor的界面是全英文的,教師提供的材料大部分也是英文的,因此對(duì)學(xué)生的英語水平要求也較高,但同時(shí)也有一個(gè)附加的收獲就是學(xué)生的英語閱讀能力提高了。
另外,這一教學(xué)法對(duì)課時(shí)要求比較高,我們采用的是每周2課時(shí)連堂排,所以學(xué)生基本上有90分鐘的時(shí)間來完成一個(gè)項(xiàng)目,對(duì)于1課時(shí)的安排,則不適宜采用該方法。我們將會(huì)在下一輪的教學(xué)中,在項(xiàng)目選擇、環(huán)節(jié)安排上做一些調(diào)整,使之更適合學(xué)生自主性比較大的體驗(yàn)式過程教學(xué)。
參考文獻(xiàn):
[1]項(xiàng)華.信息技術(shù)與中學(xué)物理教學(xué)整合[M].北京:北京師范大學(xué)出版社,2013(9).
[2]Wing J M.Computational thinking[J].Communications of the ACM, 2006,49(3).
[3]董榮勝.計(jì)算思維及計(jì)算機(jī)導(dǎo)論[J].計(jì)算機(jī)科學(xué), 2009,36(4).
[4]App Inventor在線開發(fā)平臺(tái):ai2.appinventor.mit.edu.
endprint
過程體驗(yàn)原則注重的是情感與認(rèn)知過程的統(tǒng)一。學(xué)生通過激發(fā)情感,在開發(fā)過程中感知和領(lǐng)悟知識(shí),在認(rèn)知活動(dòng)中充分發(fā)揮情感作用,并達(dá)到促進(jìn)學(xué)生對(duì)知識(shí)的掌握與應(yīng)用,做到情知合一的協(xié)同發(fā)展。過程體驗(yàn)教學(xué)具有親歷自主性、實(shí)踐性、個(gè)性化、交往性、情境性、緘默性等特征。
軟件項(xiàng)目開發(fā)的過程主要包括問題的定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試等階段。
App Inventor的開發(fā)環(huán)境降低了軟件開發(fā)的技術(shù)門檻,筆者用兩課時(shí)在數(shù)字涂鴉項(xiàng)目教學(xué)中運(yùn)用了貫徹過程體驗(yàn)原則的教學(xué)方法。該教學(xué)方法遵循上述軟件項(xiàng)目開發(fā)的一般流程,通過學(xué)生課上撰寫的開發(fā)記錄可以進(jìn)行分析,進(jìn)一步明確這一教學(xué)方法的有效性。
● 關(guān)于數(shù)字涂鴉項(xiàng)目教學(xué)設(shè)計(jì)
1.項(xiàng)目功能介紹
提到涂鴉,人們都非常熟悉,在手機(jī)上實(shí)現(xiàn)簡(jiǎn)易數(shù)字涂鴉功能也非常簡(jiǎn)單。就是手指在手機(jī)屏幕上滑動(dòng)時(shí),可以畫出線條(如圖1)。
圖1
學(xué)生完成的數(shù)字涂鴉程序作品如圖2所示,增加了清屏、顏色的選擇、粗細(xì)的選擇,通過拍照的方式更改畫布背景,還增加了畫點(diǎn)、線、花紋的選擇。這是學(xué)生在完成App程序開發(fā)后,自己使用該程序完成的一個(gè)涂鴉作品。
2.相關(guān)知識(shí)點(diǎn)
(1)畫布(Canvas)組件的拖拽事件,畫點(diǎn)、線、圓、清除畫布等方法,背景顏色、背景圖片、畫筆顏色、畫筆粗細(xì)等屬性。
(2)照相機(jī)(Camera)組件,拍照后事件,拍照方法。
(3)變量的定義、賦值與使用。
(4)If then的選擇結(jié)構(gòu)。
(5)軟件開發(fā)過程的體驗(yàn)。
3.教學(xué)目標(biāo)
(1)通過本項(xiàng)目的問題定義、需求分析、軟件設(shè)計(jì)、程序編程、軟件測(cè)試等過程,了解并體驗(yàn)軟件開發(fā)的基本過程,建立基于計(jì)算機(jī)編程的問題解決的基本邏輯。
(2)學(xué)習(xí)并熟練使用畫布組件屬性、事件與方法,并應(yīng)用于本項(xiàng)目的開發(fā)。
(3)了解相機(jī)組件的基本功能、事件與方法,并應(yīng)用本項(xiàng)目的開發(fā)。
(4)通過讓程序區(qū)分所畫圖形,引入變量的概念,學(xué)會(huì)定義變量、給變量賦值、使用變量;引入if then的選擇結(jié)構(gòu),引入條件判斷與表達(dá)式,學(xué)會(huì)條件判斷進(jìn)行編程。
4.教學(xué)過程
第一部分:初步開發(fā)
(1)新課導(dǎo)入。
教師設(shè)置問題情境:手機(jī)成為每個(gè)人必備通訊工具,滑屏、觸屏成為每天的功課,可以留下人們滑屏、觸屏的軌跡嗎?如何實(shí)現(xiàn)?出示上頁圖1的照片。
(2)兩人一組,圍繞以下問題進(jìn)行討論。
軟件需求:數(shù)字涂鴉。
應(yīng)用設(shè)計(jì):要達(dá)到什么功能?如何進(jìn)行人機(jī)交互?軟件界面設(shè)計(jì)成什么樣子?信息如何交換?
(3)小組合作嘗試開發(fā)、試用。
使用畫布組件,了解它的屬性、事件與方法,試著來完成這一功能。打開模擬器,嘗試使用此程序。
(4)小組交流嘗試開發(fā),教師點(diǎn)評(píng):利用畫布的拖拽事件,可以獲取三個(gè)點(diǎn)的坐標(biāo),調(diào)用畫線方法,利用前一個(gè)點(diǎn)和當(dāng)前點(diǎn)的XY坐標(biāo),就可以畫線,記錄手指觸屏的軌跡(如圖3)。
(5)繼續(xù)制作自己的程序:試著畫一幅涂鴉作品,看一看軟件還需要有什么修改的地方。
第二部分:拓展開發(fā)
(6)教師匯總學(xué)生們提出的意見與解決方案。
(7)教師講解相關(guān)知識(shí)。
(8)學(xué)生自主開發(fā),完善自己的作品。
第三部分:程序的修改與完善
(9)教師點(diǎn)評(píng)學(xué)生的項(xiàng)目作品,明確問題點(diǎn)與解決方案:①組件命名不規(guī)范——如何規(guī)范命名組件。②BLOCK編輯區(qū)代碼塊太亂——BLOCK編輯區(qū)的整理,排列、堆疊、復(fù)制、收起、打開等操作。③背景顏色設(shè)置錯(cuò)誤。④變量與選擇結(jié)構(gòu)的應(yīng)用。
(10)根據(jù)教師要求,修改完善自己的作品:①規(guī)范組件命名。②修改不正確的功能和屬性設(shè)定。③增加并完善數(shù)字涂鴉軟件功能。④制作模擬器的屏幕截圖,保存源文件,填寫軟件修改記錄。
(11)交流展示作品與開發(fā)體會(huì)。
● 課程實(shí)施過程與效果的反饋情況
教學(xué)過程與軟件開發(fā)過程的協(xié)調(diào)統(tǒng)一,體現(xiàn)了App Inventor體驗(yàn)式過程教學(xué)方法的核心,體現(xiàn)了問題發(fā)現(xiàn)和解決的理念,即問題—解決方法—程序修改。
利用“我的數(shù)字涂鴉”開發(fā)記錄,通過記錄的方式使學(xué)生在本課導(dǎo)入時(shí),較為認(rèn)真、快速地根據(jù)問題定義,設(shè)計(jì)出了自己想要的軟件功能。這種方式學(xué)生非常認(rèn)可,也很配合,每節(jié)課的開發(fā)記錄要求均不一樣。
修改完善自己的作品。根據(jù)學(xué)生作品中存在的問題,教師提出修改意見,學(xué)生根據(jù)教師的建議,明確自己需要解決的問題,通過自己的不斷嘗試,使問題最終得到解決。這是培養(yǎng)學(xué)生批判性思維的良好機(jī)會(huì)。學(xué)生也很認(rèn)同,從他們撰寫的文字中可以看出:
通過這節(jié)課的學(xué)習(xí),我了解到軟件開發(fā)員工作的不易,在做好程序的雛形之后,還需不斷調(diào)試,以保證各個(gè)組件都可以正常運(yùn)轉(zhuǎn),或者添加一些新功能。可能他們用在調(diào)試上的時(shí)間比設(shè)計(jì)制作雛形上的時(shí)間多得多。
對(duì)體驗(yàn)式的項(xiàng)目開發(fā)學(xué)習(xí),學(xué)生也很認(rèn)可,下面是學(xué)生感言的摘錄:
在開發(fā)過程中途會(huì)遇到一些難題,要經(jīng)過一些思考。不過總體來說還是覺得自己解決問題、編自己所想要的程序很有意思。通過這個(gè)過程,能夠感覺到自己在成長(zhǎng)。這節(jié)課學(xué)會(huì)了用canvas和變量,可以利用變量改變形狀和線段的粗細(xì),簡(jiǎn)化了一步步設(shè)置的問題,相對(duì)VB而言編程簡(jiǎn)單了很多。App inventor中的語句簡(jiǎn)單易懂,相信可以用其中的隨機(jī)變量實(shí)現(xiàn)許多有意思的創(chuàng)意。
通過一些簡(jiǎn)單的拼塊,可以做出平時(shí)看起來很高級(jí)的東西,雖然是編程,但過程并未讓我感到枯燥,反而很有意思。因?yàn)樗⒉挥脤懻Z言,也不用擔(dān)心隨處都可能犯錯(cuò)誤,而是通過幾個(gè)拼塊完成整個(gè)過程。學(xué)習(xí)了編程以后,就更能體會(huì)到編程人員工作的不容易。
● 結(jié)束語
基于過程體驗(yàn)的App Inventor項(xiàng)目教學(xué)法是本課程長(zhǎng)期采用的一種教學(xué)方法,在實(shí)施過程中,每個(gè)項(xiàng)目均采用問題定義、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試的基本流程,不同項(xiàng)目的開發(fā)記錄表要求不一樣,新知識(shí)內(nèi)容講解的時(shí)間安排不一樣,大多數(shù)在一開始就講,而本案例則由于一開始用到的技術(shù)比較簡(jiǎn)單,因此放在中間講。從整個(gè)學(xué)期的教學(xué)情況和學(xué)生在每個(gè)項(xiàng)目進(jìn)行中認(rèn)真而執(zhí)著的表現(xiàn)看,效果非常好。
由于App Inventor的界面是全英文的,教師提供的材料大部分也是英文的,因此對(duì)學(xué)生的英語水平要求也較高,但同時(shí)也有一個(gè)附加的收獲就是學(xué)生的英語閱讀能力提高了。
另外,這一教學(xué)法對(duì)課時(shí)要求比較高,我們采用的是每周2課時(shí)連堂排,所以學(xué)生基本上有90分鐘的時(shí)間來完成一個(gè)項(xiàng)目,對(duì)于1課時(shí)的安排,則不適宜采用該方法。我們將會(huì)在下一輪的教學(xué)中,在項(xiàng)目選擇、環(huán)節(jié)安排上做一些調(diào)整,使之更適合學(xué)生自主性比較大的體驗(yàn)式過程教學(xué)。
參考文獻(xiàn):
[1]項(xiàng)華.信息技術(shù)與中學(xué)物理教學(xué)整合[M].北京:北京師范大學(xué)出版社,2013(9).
[2]Wing J M.Computational thinking[J].Communications of the ACM, 2006,49(3).
[3]董榮勝.計(jì)算思維及計(jì)算機(jī)導(dǎo)論[J].計(jì)算機(jī)科學(xué), 2009,36(4).
[4]App Inventor在線開發(fā)平臺(tái):ai2.appinventor.mit.edu.
endprint