張瑋煒
摘 要:Java是應(yīng)用廣泛的編程語言,因其自身的特點(diǎn)被許多學(xué)校選為編程的入門語言。在教學(xué)過程中,初期學(xué)習(xí)的又是一些基本概念、基本結(jié)構(gòu),幾乎沒有圖形界面的內(nèi)容。對(duì)于非計(jì)算機(jī)專業(yè)而又習(xí)慣于動(dòng)漫的學(xué)生們來說,就顯得枯燥,不易引起學(xué)生們的興趣。使用Scratch等軟件作為教學(xué)的輔助軟件,可以把部分基本概念、結(jié)構(gòu)以圖形化或動(dòng)畫的方式展示出來,提高學(xué)生的興趣,促進(jìn)學(xué)生對(duì)基本概念的理解。
關(guān)鍵詞:輔助軟件;Java;應(yīng)用
Java是應(yīng)用廣泛的編程語言,對(duì)于學(xué)過機(jī)器人編程或任何編程語言的人來說,都簡(jiǎn)單易學(xué)。但要在課堂上四十多課時(shí)內(nèi)學(xué)會(huì)編程語言中的基礎(chǔ)知識(shí)和Java的常見應(yīng)用,理解概念的基礎(chǔ)上,編出各種程序來,如果只是教師的講授、輔導(dǎo),有部分學(xué)生就難以學(xué)通了。而使用簡(jiǎn)單易用的輔助軟件,可以幫助學(xué)生理解許多概念。
Scratch是一款由麻省理工學(xué)院(MIT)設(shè)計(jì)開發(fā)的一款面向少年的簡(jiǎn)易編程工具,可以通過命令和參數(shù)的設(shè)置完成動(dòng)畫、游戲的設(shè)計(jì)。構(gòu)成程序的命令和參數(shù)通過積木形狀的模塊來實(shí)現(xiàn)。用鼠標(biāo)拖動(dòng)模塊到程序編輯欄就可以了?,F(xiàn)在的學(xué)生是看動(dòng)漫長(zhǎng)大的,枯燥的編程對(duì)他們來說不易上手,從未接觸過編程的學(xué)生對(duì)基本概念的理解也有一層隔閡。對(duì)Java教學(xué)而言,可用Scratch作為初學(xué)者的輔助軟件,當(dāng)然其它軟件也可以,這里講使用Scratch。
在Java中教授語言基礎(chǔ)知識(shí),如數(shù)據(jù)類型、常量、變量、運(yùn)算符、表達(dá)式時(shí),除講解其存在的因由及形式外,還可以直觀的方式觀察,此時(shí)的學(xué)生剛剛開始學(xué)編程,對(duì)程序代碼還一頭霧水,可以讓他們看簡(jiǎn)單的程序,觀察常量、變量、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式的存在形式,對(duì)于看動(dòng)漫長(zhǎng)大的學(xué)生來說,為了讓他們更快理解,可以輔助以動(dòng)漫的編程軟件,如在Scratch里選定一個(gè)角色,最最初步的操作,讓這個(gè)角色前移幾步,“移動(dòng)?茗步”在?茗里填上5,然后直接運(yùn)行這個(gè)命令,則該角色移動(dòng)5步,將步數(shù)改成10,再運(yùn)行,則該角色往前移動(dòng)10步?!?”和“10”本身的含義是不變的,值也不變,我們是在?茗里修改的步數(shù)。不論“5”還是“10”或者其它的數(shù)字,都要錄入到?茗里存放到?茗里,那么這個(gè)?茗方框里在任一時(shí)間點(diǎn)只能存放一個(gè)數(shù)字,但不同時(shí)間點(diǎn)可以存放不同的數(shù)字,對(duì)?茗方框來說,可以存放不同的數(shù)據(jù),只是在不同時(shí)間而已,存放了10的時(shí)候,5就被覆蓋掉了,該角色就往前移動(dòng)10步而不是5步了。那么?茗方框就可以稱為變量,可是錄入程序代碼的時(shí)候,只能錄入鍵盤上的字符,錄入不了?茗方框,在程序代碼中就用一個(gè)名稱來表示,這就是變量名了。在動(dòng)畫里,還有其它小角色,其它小角色也需要?jiǎng)悠饋恚驳迷O(shè)置移動(dòng)的形式。那么對(duì)其它小角色,也得在它們的?茗方框里填入移動(dòng)的數(shù)字,由此此處?茗方框又是一個(gè)變量,這個(gè)?茗方框里的值與前面角色的?茗方框里的值應(yīng)該互不影響,才能設(shè)定各個(gè)角色的移動(dòng),從而顯示出不同的動(dòng)畫效果,怎么樣才能互不影響呢??jī)蓚€(gè)變量、兩個(gè)變量名就可以區(qū)別清楚了,兩個(gè)變量各存各的數(shù)字,兩個(gè)不同的名字系統(tǒng)也可以區(qū)分出來。至此,常量、變量的相關(guān)概念也就清楚了。至于數(shù)據(jù)類型,其實(shí)也是為了對(duì)數(shù)據(jù)分類管理,學(xué)生容易理解,就不必用輔助軟件來解釋了。
初學(xué)者不易理解的還有自增自減,表達(dá)式x=x+1、y=y-1等,此時(shí)對(duì)程序還沒有更多的了解,單從表達(dá)式上解釋也可以,我們也可以從輔助軟件里直觀的觀察。借助Scratch的角色的位置坐標(biāo),可以很好的解釋此類表達(dá)式。比如剛開始時(shí)的默認(rèn)角色“小貓”,它的默認(rèn)位置是畫面的中間位置,即坐標(biāo)(x,y)的值是(0,0)。任一角色只要是被選中的狀態(tài),都是隨時(shí)可以看到坐標(biāo)的。從“運(yùn)動(dòng)”里選中命令“將x坐標(biāo)增加10”,那么運(yùn)行后,看到小貓往右移動(dòng)了10步的位置,小貓的坐標(biāo)(x,y)也改成了(10,0),也就是說小貓的水平坐標(biāo)x從0變成了10,再次運(yùn)行,小貓的水平坐標(biāo)又從10移動(dòng)到了20,再次運(yùn)行,小貓的水平坐標(biāo)又從20移動(dòng)到了30。這是如何實(shí)現(xiàn)的呢?命令對(duì)應(yīng)的代碼是什么呢?就是x=x+10。將x里存放的數(shù)值拿出來加上10以后,把加法得到的和還存放到x里。
這種用法。從概念上講,是非常清楚的??墒菍W(xué)生們開始編程時(shí)往往不知道怎么用,這時(shí)就可以用輔助軟件來協(xié)助應(yīng)用了。比如設(shè)定小角色的位置(x,y)中的x的值,x<100時(shí)往前走幾步,x>=100時(shí)開始往上飛,學(xué)生直接看到效果。也可以再細(xì)分,x<0時(shí),往前慢走幾步,0~100之間時(shí),快速移動(dòng),x>=100時(shí),開始往上飛,還可以再分,不同的坐標(biāo)位置,不同的速度。原理與用代碼直接寫一模一樣,只是對(duì)于看動(dòng)漫長(zhǎng)大的初學(xué)者來說,更具視覺效果而已。
對(duì)于循環(huán)結(jié)構(gòu)而言,容易講解,學(xué)生也容易理解,學(xué)生易出錯(cuò)的點(diǎn)是在循環(huán)嵌套上。比如
等。在循環(huán)嵌套的運(yùn)行中,學(xué)生往往弄不清楚某循環(huán)中各變量的值到底是多少,就具體的數(shù)值而言,用輔助軟件也可以輔助觀察,但是對(duì)于數(shù)據(jù)處理而言,不是Scratch這個(gè)輔助軟件的專長(zhǎng)。此時(shí)可簡(jiǎn)單設(shè)計(jì)觀察效果,真正的大量的數(shù)據(jù)處理還得用Java的代碼本身。
對(duì)于編程零基礎(chǔ)、不知怎么考慮代碼的Java初學(xué)者來說,使用Scratch等簡(jiǎn)單的輔助軟件可以幫助理解概念,但真正要掌握編程的方法和思維方式,還需要使用Java來做一些實(shí)例。endprint