胡紅云??
摘 要:在Blockly的實踐教學中獲取經驗,從Blockly的特征出發,通過不同的教學手段、合理的課堂實例選擇將其展現在學生面前,讓學生真正體會到Blockly的程序設計理念。
關鍵詞:Blockly;程序設計;塊語言
今年本校信息技術對于2016年入學的新生從第二學期開始開設新的知識點“Blockly程序設計”課程的學習,不知不覺十二個課時過去了,Blockly的學習也接近尾聲了。經過一輪的實踐,從最初的無從下手到現在的得心應手,感觸頗多,與大家分享我這幾個月的實踐探究心得。
一、 Blockly是什么?
Blockly是2012年6月由Google開發發布的基于Web可視化的編程語言,類似MIT的兒童編程語言Scratch,使用者可以通過類似玩樂高玩具的方式用一塊塊圖形對象構建出應用程序。其特征如下:
(一) 代碼轉換
Blockly代碼可以轉換成JavaScript、Dart、XML等代碼。
(二) 交互單一
不同于App Inventor、Scratch強大的交互功能(觸、點、搖、說)和豐富的素材對象、設計直觀,Blockly除去代碼塊無圖形素材對象,交互簡單,僅僅只是單純的鍵盤輸入和輸出對話框。
(三) 無法“保存”
Blockly設計的程序無法通過簡單的保存命令一下子將代碼塊保存,必須通過對相應的XML語句的保存來間接保存塊語言程序。
二、 Blockly怎么上?
我現在上Blockly的學生先接觸的程序語言的是Scratch和App Inventor。在決定學生上Blockly時,我一打開其界面就有點懵了。如果按照Scratch和App Inventor塊語言的上課模式,學生一定是不會聽的,因為其無圖形素材且交互單一,就像是代碼封裝成了圖形塊的C語言,想用新奇的例子去抓住學生的注意力是不可能了。該怎么上呢?我的上課安排是這樣的:
(一) 思想為主,注重算法
課堂以程序設計的思想為主,每一個程序要做足問題分析、算法設計、程序編寫、調試運行的四個步驟,要想進行代碼編寫,首先要先學會問題的分析和算法的設計。
(二) 優選案例,知識滲透
每一個案例的選擇要循序漸進將程序設計的知識滲透,經過一輪的教學我結合學生高中數學算法課本,整理安排了一些不是特別復雜的案例如下:
(三) 學案提供,知識延伸
每一節課在學生沒有課本的情況下(本學科的特殊性)我們都要有學案給學生,不能只是簡單的計算機任務發布。我設計學案都會圍繞本節課的教學目標所選擇的案例,做足問題分析、算法設計、程序編寫、調試運行、知識拓展,讓學生真正將知識做到有本可依、有案可查。
(四) 多種形式,豐富課堂
課堂上我們由于Blockly的特殊性,要摒棄原來的教師演示操作加學生完成練習的教學模式,可以采用以下方法來完善每節課的知識點:
1. 連線搭建橋梁
在學案中我幾乎每節課都會設置趣味連線題讓學生將流程圖與Blockly語句一一對應,這樣很多知識無意識的就在他們做題的過程中做到了知識梳理。
2. 填空解讀算法
每個案例的流程圖算法并不是一定要讓學生來設計,可以通過“完形填空”的方法來解讀算法,理清思路。
3. 找茬加深理解
有的知識點的案例可以通過給學生有錯誤代碼,讓他們運行、糾錯,加深對知識的理解,也化解了每個案例都要搭建代碼的厭煩情緒。
對于Blockly的課堂,只要我們能夠多思考,從它的特征出發,每一節課精心準備,也能夠使課堂生動起來。這也給了我一個想法,是不是可以將學生學習這種語言的順序改變一下,期待下一個實踐能夠有更多的經驗與大家分享。endprint