洪優萍



創新教育是新課改的重要方向之一,也是一種較高的教育目標。如何結合現行教育機制尋找合適的創新教育模式是一線實踐的關鍵。本期解碼,讓我們一起走進手機編程和STEM項目設計的現場,共同探索創新教育的教學方式。
App Inventor安卓編程是近幾年興起的一個開源編程平臺,因其具有可視化、圖形化、模塊化拼接的特點,特別適合低年級學生學習。在教學中,筆者聚焦核心素養,開展基于計算思維的App Inventor程序設計課堂教學實踐,讓學生經歷提出問題、分析問題、算法建模、實踐驗證、反思升級的過程,構建課堂教學結構,培養學生的計算思維。
● 課堂教學結構的架構
基于App Inventor程序設計教學的基本特點,構建基于計算思維的App Inventor程序設計課堂教學結構,主要分為五大環節(如圖1)。
該模式融合了教師活動、學生活動、學生思維,將課堂分為五大板塊:第一個板塊是創設問題情境,激發學生分析、解決問題的意識;第二個板塊是對問題進行抽象與分解,將大任務分解為一個個小任務,在用自然語言描述的基礎上,能用算法形式來繪制流程圖,培養學生的分解、抽象思維,形成算法思維;第三個板塊是提出解決方案,用模塊化的方式,抽象為App Inventor代碼語塊來解決實際問題,培養學生的算法思維與邏輯思維;第四個板塊是實踐解決方案,驗證其正確性,通過實踐驗證、交流分享的循環模式,培養學生的批判思維;最后一個板塊是展示分享,總結歸納,延伸課堂,在師生交流中產生新的設想,培養學生的迭代思維。
● 課堂教學結構的實施
1.提出問題
基于計算思維的App Inventor程序設計教學首先要創設問題情境,激發學生的深度思考,引出學習需求。結合學生的生活與學習實際,圍繞問題創設情境,提出本課所要解決的問題,引發學生的思考與討論,激發學生的學習興趣,使其對程序設計的學習能夠學以致用。
以《美麗校園》案例為例,課堂伊始創設問題情境:春天來了,校園里春意盎然,特別美麗,你想用什么辦法來記錄與展現這校園春色呢?問題一經拋出,學生會產生很多想法,例如,有學生會提出可以通過手機來拍攝照片或視頻,有學生會提出可以利用這些素材通過信息技術來設計各種各樣的展示作品,也有學生會提出運用正在學習的安卓APP程序設計平臺為美麗校園設計APP。
2.分析問題
當學生提出問題后,要立足學生思維發展,從不同角度、不同層面引導學生思考與分析,以問題解決為核心,培養學生的問題分析能力。課堂上引導學生用計算機的方式去思考,將大任務通過抽象與分析,變成一個個小任務,并運用算法思維,引導學生用流程圖的方式來分解,化復雜為簡單,培養他們的抽象思維與算法思維。
在《美麗校園》案例中,要展示比較多的照片,可以通過用戶來進行控制,那么可以設計怎樣的APP呢?這里要解決的問題如下:如何實現照片切換的功能?切換到照片的最后一張該怎么處理?學生會提出可以通過按鈕來進行切換,可以使用上一張、下一張的方式來進行切換,切換到最后一張照片后重新回到第一張。提出了這一想法,就會產生新的問題:這些照片通過什么方式來按序切換呢?這就引出了變量的運用。
功能分析后,讓學生用計算機的方式來思考,將問題通過算法思維來進行表述,也就是如圖2、圖3所示的流程圖。
3.設計方案
通過流程圖的繪制與分析,學生已經有了解決實際問題的初步方案,那么如何通過App Inventor平臺來實現呢?這就需要經歷一個界面設計、組件屬性設置、邏輯設計的完整方案的設計過程。通過組件的選擇、功能的描述、代碼的選擇,實現模塊化的思考,將問題抽象為App Inventor代碼塊來解決實際問題,從而培養學生的算法思維與邏輯思維。
在《美麗校園》案例中,方案設計過程如下。
①界面設計。界面設計如下頁圖4所示,在該APP中,需要添加五個按鈕組件、一個標簽組件、一個圖像組件。其中,有四個按鈕組件進行了表格布局,因此在添加這四個按鈕組件之前,需要添加表格布局組件。
②組件屬性設置。每一個組件都有其特有的屬性,在組件添加完畢后,通過“組件屬性”面板,根據實際需求,進行組件屬性的設置與修改。
③邏輯設計。完成了界面設計后,就要通過編寫代碼來實現“點擊按鈕顯示圖片”的功能。單擊“邏輯設計”按鈕切換到程序設計視圖進行代碼編寫,選擇合適的代碼來實現。
4.解決問題
學生在經歷了一個提出問題、分析問題與設計方案的過程后,已經將復雜問題簡單化,將實際問題抽象為自然語言,并通過算法思維將問題通過流程圖的方式表達出來,在設計方案的時候能將App Inventor中模塊化的思想融合其中。在此基礎上在App Inventor中進行實踐,通過模擬器或AI伴侶進行調試運行,在實踐驗證、師生交流、修改優化的循環模式中培養學生的批判思維。在代碼編寫的過程中,學生不斷去調試與優化,特別是在學生展示、師生交流中,不斷發散學生思維,通過多種思路來解決問題,在多種思路的對比驗證中,引導學生不斷產生批判性思維,優化程序代碼,找到最佳路徑。
5.反思迭代
問題解決后,讓學生來分享與展示,說一說在程序設計過程中碰到的問題以及解決的方法。教師引導學生產生新的想法與創意,通過迭代思維升級APP,再進一步引導學生思考如下問題:如何來實現這些功能?需要解決哪些問題?還需要添加哪些組件?運用哪些代碼模塊來實現?提出新的設想后,讓學生帶著自己的思考,沿著分析問題、設計方案、解決問題、反思迭代的一般過程,進一步升級APP,培養他們的迭代思維。
總之,在基于計算思維的App Inventor程序設計課堂實施過程中,要以學生為主體,以教師為主導,以問題為向導,給學生充分的時間與空間,啟發學生思維,注重課堂實踐,在程序設計教學中,不斷培養學生的計算思維。