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