王波 涂騰
編者按:在科技發展日新月異的今天,信息技術教學已經遠離了開關機還需要反復講解的時代,三歲孩童熟練地擺弄著iPad已非奇事。自策劃了“Scratch來了”這一專題之后,編輯深刻感受到研究程序語言的老師的可愛,他們的執著、他們的探索,使得程序教學不再那么枯燥,煥發出勃勃生機。因此,雜志特別策劃了這一專欄,將陸續刊發一些程序教學領域有代表性的教學實踐。也期待更多老師投身到程序教學中去,通過自身的踐行,推動程序教學的復興。
在程序教學發展的過程中,代碼語言的教學一直是學生必須要邁過的一個“坎兒”,學生需要像學習一門語言一樣,理解其中的單詞(關鍵詞)、語法(關鍵詞使用規則),并能夠寫出一篇像樣的“命題作文”(根據項目需求,編程解決問題)。但是學生記憶這些單詞和語法需要時間和比較系統的訓練,在這個過程中,核心是習慣用代碼表達想法。由于學生是初學者,因此代碼語言的界面要盡可能的簡單,語法規則要盡可能有明晰的提示,并且還應該有比較好的演示效果,這樣才能用比較少的時間、比較容易地學習代碼語言,通過比較,我們發現了Small Basic。
● 什么是Small Basic
Microsoft Small Basic是一個經過簡化的BASIC編程語言,于2008年10月發布,是基于.Net開發框架重新建立的,電腦中需要安裝Microsoft.NET Framework 3.5才可以運行。Small Basic有強大的幫助系統,輸入每一個語句甚至字母都有豐富的解釋,生成的.exe文件可以獨立運行,每個程序都有一個編碼,通過這個編碼可以生成在線交流和訪問程序(如圖1)。
在社區交流方面,Small Basic的網站上提供軟件的下載和程序的分享,此外針對教師和學生的自學,在teachingkidsprogramming.com上提供有相應的教程和考試方案(如圖2)。
● Small Basic的特色
1.Small Basic的編程環境
只有一個代碼區和一個語法解釋側欄用于解釋標定的語法內容的含義。輸入一個關鍵字后,會自動彈出可選的關鍵字和每個關鍵字的解釋,這個功能與VB類似,但是作為一門針對兒童的語言,其關鍵字的排布方式更加人性化,使用起來也更加美觀。對于每個語句,在解釋欄中都給出了參考的語句和對應的典型代碼(如下頁圖3),圖3還給出了常見的類和對象的關鍵字。
2.使編程更易分享
社區的使用,使編寫的程序更容易被他人使用或與朋友分享。讓他人導入用戶的已發布程序并在自己的計算機上運行。使用Silverlight播放器,用戶甚至可以在自己的博客和網站發布編寫的游戲邀請他人來參與。
3.使編程代碼編寫更加簡單
友好的環境,人性化的界面,一個非常簡單的語言和豐富有趣的一套庫,讓用戶能快速地編寫自己的程序。它的語言只包含14個關鍵字,并有一系列的開發庫,允許用戶創建新的庫或者修改現有的。此外,它還允許加載第三方開發庫。
4.使編程更具智能
典型范例的選擇,使編程有了可參考的樣本,智能感知的特性,幫助用戶更快地輸入程序。當用戶輸入一個字母,系統可以自行進行智能聯想,用戶可以通過按上/下箭頭鍵來遍歷這個列表。當用戶找到想要的,可以按回車鍵將選中的條目插入到自己的程序中。
5.使程序更具有兼容性
在與其他語言的銜接上,Small Basic的Turtle對象提供了LOGO語言的所有功能,并且Small Basic的程序可以升級為VB的程序,系統會自動地將代碼改寫為VB兼容的模式。
● Small Basic的典型范例
下面用一個典型范例來說明Small Basic的使用方法。圖4所示的代碼,將逐個輸入一串數字統計數字中0~9出現的次數。
圖4所示的程序,使用了兩個for語句,在輸入語句的過程中,右側的注釋欄會自動給出語法規范,圖5是程序的輸出結果。在Small Basic中,變量和數組的使用不需要提前聲明,在初學階段,這樣做便于提高學生編寫程序的正確率,但是接下來要注意培養學生的規范性,做到提前聲明,為后續的學習打好基礎。
● Small在程序教學中所處的學段
Small Basic的教學可以放在Scratch之后,Java或者VB之前,學生通過圖形化編程環境,已經熟悉了程序的基本結構,把同樣的程序用Small Basic改寫,是一個比較容易推行的做法。如圖6所示的Scratch程序,繪制了一幅由隨機色彩的圓點構成的圖畫。
在教學上,圖6的程序可以視作是圖7中Small Basic代碼的流程圖,學生可以做同一個程序,比較其中的相同點和不同點,這樣有助于提高學習效率。
由于Small Basic使用.NET技術,其作品的表現力較圖6所示的Scratch語言有了較大的提高(如圖8)。
● Small Basica課程設置建議
Small Basic作為一門代碼語言,也會遇到其他代碼語言教學的普遍問題。例如,學生的打字速度參差不齊會影響程序的完成速度,如何通過學案幫助學生自學,如何有效地進行教學評價等,這些問題還需要進一步的研究。北京景山學校已經在八年級嘗試著講授了一個學期的Small Basic課程,采取的方法是將清華大學出版社版本的Scratch教材中的案例用Small Basic改寫,但是就代碼語言的課程體系的問題,還需要進一步細致的研究。
對于Small Basic在程序教學中的位置處理,老師們也可以做如下的嘗試:①針對已經學習過LOGO語言或者Scratch語言的小學高年級學生,可以直接進行Small Basic程序設計的學習,能夠使學生較快速地從圖形化編程語言進入簡單的代碼語言。②可以將兩種語言對照進行教學,如開設“Scratch和Small Basic”比對教學的嘗試,培養學生使用不同的程序語言,實現目標的方法。③對于“零基礎”的初一學生,可以直接進行Small Basic程序教學,將學生較容易、輕松地帶入編程的世界,為后面進行VB、Java等其他程序的學習墊定一個良好的基礎。
總之,Small Basic是一門比較適合從圖形化編程環境向代碼編程環境過渡的教學語言,對Small Basic的教學嘗試和課程研究,有助于程序教學中一些長期問題的解決。