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