?

視覺化程序設計軟件的應用與發展

2015-09-11 12:30鄭歡陳勇
電腦知識與技術 2015年17期
關鍵詞:敘事性可視化功能

鄭歡++陳勇

摘要:視覺化程序設計軟件,有助于提升學習者的學習興趣,降低學習者的學習困難。為此,信息技術與教育領域的研究者開發了許多程序設計軟件,如Alice、Scratch、Lego Mindstorms、RAPTOR、Game Maker、Baltie、Jeroo等等,它們具有可視化和敘事性等功能,受到了社會的廣泛關注。

關鍵詞:程序設計軟件;可視化;敘事性;功能

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)17-0089-04

Application and Development of Visual Programming Software

ZHENG Huan, CHEN Yong

(School of education, Shanghai Normal University, Shanghai 200234, China)

Abstract: Visual programming software can help learner improve interest in learning and reduce the difficulty of learning. Researchers in the field of information technology and education have developed a lot of programming software, such as Alice, Scratch, Lego Mindstorms, RAPTOR, Game Maker, Baltie, Jeroo etc, they have some functions of visualization and narrativity. And these visual programming software received a wide attention of the society.

Key words: programming software; visualization; narrativity; function

1 程序設計的發展歷史

19世紀的50年代到60年代初,程序設計為手工藝式的,從而高德納把程序稱為藝術品。在19世紀60年代末到70年代初,隨著程序發展規模的不斷擴大,出現了軟件危機。一方面需要大量的程序軟件系統;但另一方面,程序軟件的設計周期長,可靠性差。一直以來,程序設計的核心是:編寫出的程序結構清晰,程序語言簡單、易閱讀、方便修改的程序設計軟件。然而,在當時的程序設計模型中,也面臨著錯誤隨著代碼的擴大而級數般的擴大的困難,甚至到了無法控制的地步。這個時候就出現了一種新的程序設計模型——面向對象程序設計,由此也產生了一批支持此技術的程序設計語言,比如C++或Java?,F如今,程序設計軟件又發生了許多變化,呈現出了以可視化與敘事為顯著特征的發展趨勢,受到了程序設計軟件學習者的廣泛關注。

2 程序設計軟件的發展及其特征

由于像C++或Java類似的程序語言設計類軟件所反映的教學內容過于抽象、概念復雜、語言編寫規則繁多、編程容易出錯等原因,導致了現在的學習者對程序設計的學習興趣越來越低。在過去的十幾年里,信息科學教育研究者發展了很多視覺化的程序設計軟件,為學習者提供富有樂趣的程序設計環境,如:Alice、Scratch、Lego Mindstorms、RAPTOR、Game Maker、Baltie、Jeroo等,可以幫助學習者充滿興趣地學習程序設計。為學習者降低了學習程序設計的難度,讓學習者在學習程序設計時能夠獲得學習興趣,這也是現今可視化程序設計軟件成功的關鍵所在。

隨著社會的發展,視覺化程序設計軟件已經在信息科學教育界中受到極大的關注。因為相比于以前程序語言編寫抽象、復雜的教學軟件,這些視覺化的程序設計軟件具有以下的共同特征:

1)具有敘事和可視化功能的特征。能夠吸引初學者的興趣,便于進行教學活動;學習者在學習過程中可以收獲很大的樂趣和信心,對學習者產生事半功倍的學習效果。

2)簡單、易操作。它們并不過多地要求使用者需要過多的程序設計技能和知識,只需要使用者的想象力,并且通過點擊和拖拽鼠標就基本上可以完成程序設計。

3)重在培養初學者的邏輯性思維。這些程序設計軟件有助于提高學習者讀對程序設計的認識,并培養初學者程序設計的邏輯性思維。

4)適用于初學者。這些視覺化程序設計軟件最大的特征就是降低了初學者以前學習程序語言設計的難度,避免了對復雜的程序設計語言的編寫。因為這些軟件能把一些抽象概念形象地展現出來,為進一步學習難度較大的C++、Java打下良好基礎。

3 視覺化程序設計軟件的分類

雖然,現如今開發的程序設計軟件都基本具有視覺化特征,但在某些功能上還是存在著差異。鑒于此,對程序設計軟件進行了簡單分類:

1)敘事功能的程序設計軟件(narrative tools):讓初學者通過程序設計語言編寫一個故事情節,如:Alice,Scratch和Jeroo。

2)特定輸出實現的程序設計軟件(specialized output realizations):用非文本的方式提供程序操作的回饋,譬如多媒體等方式,如:Lego Mindstorms,JES。

3)流程功能的程序設計軟件(flow-model tools):通過程序語言組件的連結,用以呈現計算的程序,如:RAPTOR,Iconic Programmer,VisualLogic。

4)分層語言的程序設計軟件(tiered language tools):讓初學者在進一步學習中,可以逐漸使用更復雜的版本,如:Baltie,ProfessorJ,RoboLab。

4 常用視覺化程序設計軟件介紹

依照應用的常用性,針對目前適于教育領域中常用的程序設計軟件進行簡單的介紹。

4.1 Alice

Alice(http://www.alice.org)是由美國卡耐基·梅?。–arnegie Mellon)大學開發的以學習者為中心的程序設計軟件,也被稱為3D交互式圖形編程環境(3-D Interactive Graphics Programming Environment),其作用是讓學習者在設計3D動畫的同時學習事物轉向的程序設計概念,適合初學者使用。Alice提出了這種支持面向對象程序設計的三維虛擬世界動畫教學軟件,具有敘事和可視化的功能??突っ仿〈髮W開發Alice的主要目標是:用以幫助更多的青少年學會如何在3D的環境下編寫計算機程序,并希望在學習Alice這一軟件的基礎上,青少年能夠學習更為復雜的Java和C++編程。

Alice最顯著的特點就是支持圖形化程序設計,并能夠生成三維虛擬世界中的對象,然后可以將場景的設計同程序設計結合起來。Alice根據功能劃分為5個區域(如圖1所示):1)對象樹。在這一區域中顯示的是場景中出現的對象。2)World 窗口。把對象添加到這一窗口,可以進行場景設計。3)事件區。這一區域是對事件的響應而進行的編程。4)函數方法細節區。這一區域顯示的是每個對象的屬性、方法和函數。5)代碼編輯區。通過把對象的屬性、方法、函數拖拉到這一區域,然后根據提示,并自動生成相應的代碼。Alice提供互動、立體的模擬環境,所有的物體都具有前后、左右和上下六個方向,并提供程序語法的標簽,學習者不需要輸入程序碼,只要利用鼠標拖拽的方式將成式語法標簽放到界面右下的程序編輯區即可完成程序設計編輯。

Alice系統為學習者提供了一種全新的方式去學習程序編程。尤其是對初學者而言,避免了對復雜的程序設計語言的編寫。因為在Alice程序設計中,一些抽象概念可以形象地展現出來,所以初學者在學習Alice的過程中,就能更加直觀地理解和學會類、對象、方法及事件驅動等概念,并為進一步學習C++和Java程序設計語言打下良好的基礎。在美國,現今有300多所高等院校將Alice納入了初學編程的課程中。有的小學把Alice編程課程放在小學高年級(5、6年級)的Science課中,從小培養孩子學習編程的興趣與能力;不僅如此,在美國政府部門的大力支持下,很多中學和大學中,也將Alice編程課程作為選修課,面向對編程有興趣的學生開設。像Intel、Oracle、Google等公司也設立了各種獎項,以此鼓勵中、小學生開展具有創意的Alice編程。

4.2 Scratch

Scratch(http://scratch.mit.edu/)是由麻省理工大學(Massachusetts Institute of Technology, MIT)的媒體實驗室終身幼兒園組(Media Lab Lifelong Kindergarten Group)開發的一套可視性程序語言的開發平臺,旨在讓程序設計語言初學者不需先學習語言語法便能設計創作產品。作為可視性程序語言,初學者不用擔心語言文法,可以透過探索、實驗去學習創造交互式故事、動畫等技術。Scratch包含視覺化和敘事的兩種特征,學習者可以用來創作互動式故事、動畫、游戲、音樂和藝術,并在網絡上分享自己設計的每個作品。

Scratch的界面主要分為四大板塊(如圖2所示):舞臺、角色列表、程序指令區和程序編輯區。Scratch的主要特色在于它適用于初學者學習程序設計,學習者只需利用鼠標點擊和拖拽的方式進行程序設計,完成可視化編程。不需要牢記任何指令碼或編寫復雜的程序碼,解除了學習者在程序語言輸入方面的困難,有助于提高學習者讀對程序設計的認識,并培養學習者的邏輯思維。因為Scratch是一款面向少年兒童的程序設計軟件,其創作的程序簡單、易操作,而且界面的卡通形式也能夠吸引兒童的興趣,運用Scratch創作的作品進行教學活動,在兒童認知發展初期有著事半功倍的效果。

4.3 Lego Mindstorma

目前的研究表明,使用機器人可以幫助程序設計學習者更易理解計算機類課程中抽象的基本概念。1986年,丹麥的LEGO(樂高)公司和美國麻省理工學院的媒體實驗室(Media Lab)進行的一項“可程式積木(Programmable Brick)”的合作案。1996年LEGO公司發布了Mindstorms機器人開發和編程工具包。而Lego Mindstorms(http://www.lego.com/zh-cn/Mindstorms/support)則是集合了電動馬達、傳感器、可編程主機、Lego Technic部分(輪軸、插銷、橫梁、齒輪)的統稱。

Mindstorms是由益智玩具中可編程的傳感器模具(programmable sensor blocks)的發展而來。樂高機器人套件(LEGO Mindstorma Robotics Invention System)是面向對機器人有興趣的大人和12歲以上的小孩而設計的一個教育玩具。Lego Mindstorms的第一個零售版本Robotics Invention System(RIS)于1998年上市。目前的最新版本是2013年上市的Lego Mindstorms EV3。在免費的EV3編程軟件中,擁有25個好玩的任務,EV3軟件是給機器人編程,賦予機器人生命的關鍵,使用者只需編寫一個程序,就可以讓機器人按照指定的路徑前進,讓機器人服從使用者的命令。

Lego Mindstorma是一套可以對其進行編程的機器人拼裝套裝(如圖3所示),它能賦予使用者創建和指揮專屬于自己的樂高機器人的非凡能力。目前的最新版本Lego Mindstorms EV3套裝中包含了使用者需要的一切,根據不同的編程設置,其控制的機器人可以移動、行走、說話??偠灾?,使用者可以利用直觀的編程軟件(例如:智能 EV3第三代機器人程序塊或智能設備)來自由地指揮機器人。

Mindstorms平臺最初由于LEGO機器人缺乏與高等教育相符的程序設計環境,也缺乏對大學水平的程序設計語言(如:C++和Java)的支持,所以并不適用于高等教育。十幾年以后,隨著Mindstorms使用群體的日益擴大, Mindstorms平臺為C++和Java開發了有效的程序設計環境,從而讓更多的高校開始選用低價的LEGO機器人作為其教學的平臺。

1)麻省理工學院(Massachusetts Institute of Technology)的電子技術和計算機科學系專門開設了自主機器人設計課程。學生可以在這門課程中,運用之前學到的編程知識,通過搭建物理模型,進行編程并自由地控制機器人的活動。最后再以比賽的形式完成實驗,查看學習效果。

2)卡耐基·梅?。–arnegie Mellon)大學作為第三方利用自身資源,開發了Robot C程序設計環境,如今Robot C已成為LEGO機器人最流行的程序設計語言之一。

3)加利福尼亞州立大學(California State University)在相應的課程中,使用物理模型來促進學生對程序設計結構的理解,使用LEGO機器人作為了他們的教學實驗平臺。

到2006年,在LEGO公司發布Mindstorms NXT機器人套裝時,機器人在計算機教育中的作用已得到了普遍認同和歡迎。

4.4 RAPTOR

RAPTOR(http://raptor.martincarlisle.com/)是一種流程軟件形態的程序設計軟件(如圖4所示)。RAPTOR是一種基于流程圖的可視化程序設計軟件,并提供發展算法的一種可視化環境,從而讓學習者在可視化程序設計的環境中進行算法的撰寫,并為程序和算法設計的基礎課程的教學提供了一種實驗環境。學習者通過鼠標拖拉左側的流程圖符號至右側流程圖編輯區,可以隨時增減流程圖符號或改變流程圖符號的位置,使其在撰寫的過程中不斷地進行思考、安排和控制。

RAPTOR作為一種可視化程序設計的軟件,已經為以卡內基·梅隆大學等為代表的世界上20個以上的國家的高等院校使用,在計算機基礎課程教學中,也取得令人滿意的效果。在RAPTOR的可視化操作環境中,使用者無須單獨編譯和執行,只需在其環境中執行相應的算法流程,所以使用RAPTOR來解決問題,就可以讓原本抽象的概念變得越加清晰。這說明程序運作的邏輯順序不必再利用傳統程序設計的文字環境來進行設計和調試,可以直接在RAPTOR可視化的表達環境中進行,這也能夠極大減輕使用多種軟件時帶來的學習負擔。對初學者而言,RAPTOR并沒有強制要求自上而下的分解程序設計目標,而是讓學習者嘗試著逐步去開發代碼,利用交互的圖形庫,創造出更有趣的算法。

4.5 Game Maker

Game Maker(http://www.yoyogames.com/)是由Mark Overmars使用Delphi語言開發的視覺化程序設計軟件(如圖5所示)。Game Maker是一款可靈活編程、擁有圖形界面、以2D游戲設計為主的游戲開發軟件。Game Maker允許學習者使用圖形、按鈕和文本創作游戲,而無需學習復雜的諸如C++或Java編程語言,并可以在游戲設計過程中,附帶上精美的背景、動畫、音樂和聲音效果。學習者只需要拖拽圖形、輸入文字、點擊很少的幾個按鈕,選擇一些控制選項,游戲很快就可以編寫成功。憑借這些優點,Game Maker極大地促進了歐美乃至全世界獨立游戲界的發展。

Game Maker是個專為設計游戲而制作的軟件,不同于其他程序設計軟件的是它將復雜的游戲功能融于簡單的操作方式,適合提供給程序設計的初學者使用。因為Game Maker主要是為 2D 游戲而設計的程序軟件,它提供貼圖、移動、游戲規則以及其他多種功能,所以初學者只需通過拖拽Game Maker界面上的選項,就可以讓初學者輕松設計和制作一個中型以下簡單游戲。通過Game Maker提供的有趣環境和設計過程,讓學習者從中學會游戲設計的概念、技巧和流程;學會物體、事件等程序設計概念。當學習者對程序設計的概念越來越熟悉之后,學習者就可以使用越來越多的程序設計語言,從而可以創作更高水平的游戲。

4.6 Baltie

Baltie4C# Pro(http://www.sgpsys.com/en/)是一款視覺化和分層語言式的程序設計軟件(如圖6所示)。學習者使用鼠標點選上方軟件列表中的符號選項進行程序設計,適合程序設計的初學者使用。初學者可以使用Baltie的互動模式和圖形區域進行程序設計;較高水平的程序設計學習者則還可以結合語法命令和圖像區域的C#語言進行程序設計。學習者通過使用Baltie軟件,可以學會邏輯、條件和事件等程序設計概念。

Baltie是面向圖形的可視化編程軟件。相比于Balties會幫助使用者很快意識到什么是計算機、如何掌握和計算機程序而言,使用Baltie可以更加鍛煉使用者的邏輯思維,它并不要求使用者需要過多的程序設計技能和知識,只需要使用者的想象力。

4.7 Jeroo

Jeroo(http://www.jeroo.org/)也是一款具有敘事功能的程序設計軟件。Jeroo適合初學者使用,學習者可以選擇Java、C++和Python等任何一種程序設計語言應用于Jeroo中,讓學習者根據自己的實際情況學習事物轉向的程序設計概念。Jeroo的左側提供編輯來源碼的區域;它的右側則呈現程序編輯的結果;它的下方則顯示目前程序設計的狀態信息(如圖7所示)。根據信息科學領域中的研究者的研究結果顯示,Jeroo能夠顯著提高學習者在學習程序設計的興趣與自信心;使用過Jeroo的學習者幾乎都指出:Jeroo是一套值得他們去推薦別人學習的程序設計軟件,并且適合作為學習Java程序設計語言之前的學習軟件。

5 結束語

程序設計軟件越是簡單易學、易操作、可視化和智能化,越是能獲得初學者的喜愛。因為對于非計算機專業的使用者而言,他們只需要有一定的計算機操作認知基礎,只需要花較少的時間和精力就可以掌握程序設計的基本知識,最好不需要用復雜的語言編程就可以實現大部分交互作用,減少他們學習程序設計軟件的認知負荷。面向對象的可視化程序設計軟件在現代程序設計思想中占有很重要的地位,未來程序設計軟件將會以一種可視化,更易表達現實世界,更易為人編寫的功能得到進一步發展,其使用將不再只是為專業的編程人員服務,人們完全可以用基礎的程序設計知識來完成編程。

參考文獻:

[1] 百度百科.程序設計[EB/OL].[2015-05-28].http://baike.baidu.com/link?url=y9EcZAkE9DfB7Ju7n5270UjsBNtREaxE5l6wt 9jvOSzac6q1znwEz_Vsx558dqW1WG0VGD1e-bq5T7Yu8JHkzK.

[2] 陳蕓. 利用Alice三維虛擬世界進行程序設計入門教學[J].計算機教育,2007(9): 160.

[3] 陳勇,楊宛穎,張月. Scratch動畫軟件:功能、特點與應用[J].電腦知識與應用,2014(8):5519.

[4] 陳勇.信息技術基礎[M].上海:上海交通大學出版社,2014.

[5] 百度百科.樂高機器人[EB/OL].[2015-06-02].http://baike.baidu.com/view/1590087.htm.

猜你喜歡
敘事性可視化功能
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
敘事性景觀中植物的特點及配置形式研究
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
關于非首都功能疏解的幾點思考
中西醫結合治療甲狀腺功能亢進癥31例
辨證施護在輕度認知功能損害中的應用
圖像志的延伸:互文語境中的敘事性
高校初任英語教師身份構建的敘事性研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合