大家在給孩子選編程軟件之前,一定要知道教育性質(zhì)的編程語言如Logo、Scratch、Etoys、Alice等和專業(yè)的編程語言如vc、Pascal、VB、Java、.net等有什么不同,一個教育性質(zhì)的程序設(shè)計語言,是一種主要設(shè)計于用來學習的工具,是與用于編寫真實環(huán)境下的應(yīng)用程序編程語言不大相同的一種編程語言.。
許多教育性質(zhì)的程序設(shè)計語言都提供建議的學習順序,即是學習一組編程語言的順序,每種語言都建立在其他語言的基礎(chǔ)上,使得學生能夠完成從簡單又易于理解的娛樂性編程環(huán)境到專業(yè)開發(fā)環(huán)境的轉(zhuǎn)變。
Logo是特別為孩子們設(shè)計的入門程序設(shè)計語言。學習Logo的第一步是認識“turtle graphics”(龜狀圖形,最早可以追溯到1969年,proto-Lisp中的“turtle robots”)。在現(xiàn)代的Lisp實現(xiàn)中,有一個叫“turtle”的抽象繪圖設(shè)備,專門用來繪制龜狀圖形,是為了吸引孩子們進行編程。Seymour Papert,Logo語言的發(fā)明者,是構(gòu)造論的支持者,構(gòu)造論是多種構(gòu)成主義的學習理論。Papert認為像寫作之類的活動,會在早期接受計算文化過程中自然而然的學會。所以Logo設(shè)計的初衷不僅僅是為了教會孩子們編程和計算文化中的一些概念,而是為了增強孩子們對日益以科技為主導的文化的適應(yīng)。“比開始較早進行智力教育更為重要的是,這能夠使孩子們避免學習中形成的長期依賴,即學習的東西都是由所謂權(quán)威的人提出的…而這樣的小孩無法給自己準確的定位,或者讓社會覺得他們是在智力上是無助的”。通過在3歲左右的孩子進行實驗,對他們30年的跟蹤記錄發(fā)現(xiàn),大多數(shù)都取得了教育上的成功。Logo實際上是一個Lisp的線性版本,對于高年級的學生而言,Logo能夠用來解釋計算機甚至是人工智能中的一些概念。Brian Harvey寫過一系列的文章“Computer Science Logo Style”,對那些通過Logo學習計算機科學的學生而言是很有幫助的。Logo目前已廣泛應(yīng)用于各種平臺,同時提供了免費版和商業(yè)版。
Scratch由麻省理工學院的 Dr. Mitchel Resnich 和他的“終身幼兒園(MIT's Lifelong Kindergarten research group)”研究組成員共同完成。Scratch 的設(shè)計靈感來源于教小朋友們編程時遇到的種種困難。它的名稱來源 于DJ 混錄唱片的技術(shù)。(#大概是覺得DJ混唱片、搭樂高積木,用Scratch編程某種程度很相似。)Scratch:讓編程變得像搭積木一樣。過去,很多教程里總是喜歡拿方形、圓形等來幫助我們理解高深的對象、實例等等編程理論。但總是越說越讓人糊涂。現(xiàn)在,Scratch出現(xiàn)了,一切都將不同!編程從此將會和搭樂高積木一樣簡單!Scratch現(xiàn)已提供基于Windows以及MAC版的下載,Linux版的也正在研發(fā)當中。編程界面分為操作符、變量、代碼、圖片、聲音、程序等部分。編程命令按照動作、感覺等形象的進行分類,并且這些編程命令均可支持拖拽。成套的邏輯語句利用突出或特殊形狀等形式來輔助編程。例如:"IF...THEN...ELSE..."是一個黃色的呈“E”狀的圖形塊,其中有一個菱形的洞供填寫條件,在“E”的三橫中間可以加上不同的操作。編程過程中,用戶可以添加來自本地或者Web的圖片和聲音,當然,添加的方式一樣是拖拽。Scratch 可將項目文件存為本地的“.sb文件格式,并通過一個按鈕將其上傳到Scratch主頁上。其它用戶借此可對該項目進行評論。此外,也可從Scratch網(wǎng)站上下載一個叫做“.SB file directly”的 Java applet,借其可將Scratch項目植入任一站點。
Scratch 是軟件基礎(chǔ)教學的一次革命。讓那些厭煩編程的人眼前一亮。Scratch使編程容易上手、充滿樂趣,但卻不失編寫復雜應(yīng)用程序的能力。
微軟Small Basic作為一個入門程序設(shè)計語言,是Visual Basic的簡化版本。“旨在把‘樂趣’帶回到編程中”。Small Basic實在是小,只有15個關(guān)鍵字,并且每個都自然好懂。Small Basic提供特別的對象函數(shù)庫,包括使人普遍感興趣和孩子們感興趣的東西(例如Flickr)。孩子們能夠在線或在本地創(chuàng)建有趣的交互程序。Small Basic利用了微軟的Visual Studio IDE提供的自動完成和上下文相關(guān)的幫助。
Scheme最初是在1975年出于教學目的而設(shè)計的語言(參加[9] LISPs of the day used non-recursivecontrol structures to implement lambda calculus以非遞歸的控制結(jié)構(gòu)實施λ演算),這主要是因為Lisp仍然在硬件實現(xiàn)具有高效率。Guy L.Steele,Jr和Gerald Jay Sussman創(chuàng)造出了Scheme,通過使用簡潔高效的Lisp過程調(diào)用,使得Scheme成為最快的解釋型語言之一。從語言教學上來講,可以通過以domain-specific languages(DSL,特定領(lǐng)域語言)和MetacircularEvaluator(元循環(huán)計算)的方式來進行。1984年出版的《Structure and Interpretation of Computer Programs》(《計算機程序的構(gòu)造和解釋》)將這種教育理念納入了經(jīng)典的教學課本中,從而改變了Pascal在大學程序設(shè)計語言中的優(yōu)勢地位。
“Abelson和Sussman在1984年出版的《Structure and Interpretation of Computer Programs》(SICP),給上世紀八十年代的計算機課程設(shè)計帶來了徹底性的改變。更為重要的是,SICP打破了語法入門課程的壟斷,不再是將課程的組織僅僅圍繞某個當前流行的程序設(shè)計語言的語法,而是將學習計算科學的重點放在了:functional abstraction(函數(shù)抽象), data abstraction(數(shù)據(jù)抽象), streams(流), data-directed programming(數(shù)據(jù)導向編程), implementation of message-passingobjects(消息傳遞對象的實現(xiàn)), interpreters(解釋器), compilers(編譯器), and register machines(寄存器機器)。”
短時間內(nèi),美國以及世界各地的很多大學把第一門計算機科學課程改成了SICP和Scheme。而SICP也成了MIT Press最為暢銷的圖書之一。和SCIP一起,Scheme也廣泛應(yīng)用,不僅僅是印第安納大學,MIT,耶魯大學的開設(shè)的少數(shù)課程,而是成為世界性入門語言的選擇。自那以后,Scheme社區(qū)為低年級課程提供了一些定制的教育編程環(huán)境。其中有PLT Scheme和DrScheme環(huán)境,還提供了免費的教師培訓教材:How to Design Programs 和TeachScheme!。newLISP旨在提供一個磁盤占用和系統(tǒng)資源使用少的,快速的,強大的,跨平臺的,全功能腳本版的Lisp程序設(shè)計語言。因為它的簡單,一致,線性的特點,特別適合于初學者。newLisp能夠最大限度的減少學習的曲線并且?guī)Ыo程序員更多的創(chuàng)造性和快樂。
CommonLisp 是通用的(專業(yè)的),多泛型程序設(shè)計語言。它支持過程式、函數(shù)式和面向?qū)ο蟮木幊谭妒。作為一個動態(tài)程序設(shè)計語言,CommonLisp促進了迭代編譯向高效運行時程序的快速發(fā)展。CommonLisp和大部分其他程序設(shè)計語言不同,它使用S-expressions(S表達式)來表示代碼和數(shù)據(jù)結(jié)構(gòu),而函數(shù)和宏調(diào)用是用鏈表實現(xiàn)的。通過Lisp的標準化統(tǒng)一各種Lisp的變體已經(jīng)提上了日程,這不是一個特定的實現(xiàn)而是一個語言規(guī)范,F(xiàn)在有幾種CommonLisp的標準實現(xiàn),包括商業(yè)產(chǎn)品和開源軟件 。
AgentSheet是屢獲大獎的游戲和仿真制作工具,它可以簡單到讓中學生通過制作視頻游戲來學習計算機知識,也可以復雜到讓NASA的科學家來模擬航天飛機的有效負荷。AgentSheet是由一個叫做Scalable Game Design(可擴展的游戲設(shè)計)的完整課程提供支持的,它從簡單的像青蛙一樣(Frogger-like)的游戲一直到復雜的人工智能仿真游戲。AgentSheet支持游戲(動畫,交互,聲音,語音合成/識別(Mac)),科學應(yīng)用程序(繪圖,輸出到電子表格,3D繪圖(Mac))。AgentSheet有英語,希臘語和日語版本。Lego Mindstorms以AgentSheets為基礎(chǔ),開發(fā)了LegoSheets程序設(shè)計語言,比Brick Logo的學習曲線要平緩的多。
Alice是一個免費的編程軟件,旨在教會孩子們事件驅(qū)動的面向?qū)ο缶幊。編程者可以使用現(xiàn)代IDE,以拖拽的方式創(chuàng)建交互式的故事程序。Alice目標群體是大多數(shù)中學階段的有計算機使用經(jīng)驗的女生,可謂寓教于樂。還有一個叫Story Telling Alice的Alice的變體,能夠提供更強的講故事能力。
Baltie是圖形化的編程工具,適合兒童,青少年(成人)。Baltie是軟件中一個主要的角色,一個巫師,用來執(zhí)行各種命令、將出現(xiàn)在他視野的圖片變魔術(shù)。通過Baltie的幫助,孩子們能夠很快認識到什么是計算機,如何對計算機進行操作和編程,這些都是在玩的過程中實現(xiàn)的。Baltie同樣能夠幫助邏輯思維訓練,而且對孩子們的知識并沒有多少要求,只要求會玩和想象力。Baltie已經(jīng)在許多國家的小學中采用了。新版本的Baltie 4甚至完全支持C#,更多的信息可以在SGP Systems中找到。
Guido van Robot是一個機器人控制程序,有點類似于Logo和Karel J. Robot,使用了Python語法中的很少一部分。Guido van Robot被設(shè)計成對任何高級語言都盡量簡化和通用。還有一個叫RUR-PLE的變體,它包括了完整的Python語法和一些經(jīng)典的課程。
Karel,Karel++,和Karel J.Robot是為那些完全的初學者而準備的。用來在一個由長方形街道網(wǎng)格組成的城市中控制一個簡單機器人。Karel是一個自主的程序設(shè)計語言,而Karel++是Karel的C++實現(xiàn),Karel J. Robot則是Karel的Java實現(xiàn)。
Learn to Program BASIC是一個通過互動課程教會中學生Basic的Basic解釋程序,在Basic語言中加入了一些的游戲,包括對2D sprite支持。在LTPB中編寫的程序能夠脫離LTPB獨立執(zhí)行,即是一個可以自由分發(fā)的“runner”。
Lego Mindstorms(樂高機器人)是集合了可編程Lego磚塊、電動馬達、傳感器、Lego磚塊、Lego Technic部分(齒輪、輪軸、橫梁)的統(tǒng)稱。Mindstorms起源于益智玩具中可編程傳感器模具(programmable sensor blocks)。第一個Lego Mindstorms的零售版本在1998年上市,當時叫做Robotics Invention System (RIS)。最近的版本是2006年上市的Lego Mindstorms NXT。許多語言都能對Mindstorms進行編程,包括Logo、Basic、Java的衍生版、Smalltalk和C語言。Computer Clubhouses是專注于Mindstorms編程的網(wǎng)站。
Phrogram(第二代的KPL,MS Kid's Programming Language)是2006年引入的一個商業(yè)的、易于學習的程序設(shè)計語言和集成開發(fā)環(huán)境。它強調(diào)圖形和聲音,使得它特別容易開發(fā)游戲,寓教于樂的程序。Phrogram是簡化的結(jié)構(gòu)化語言,提供了基于組件開發(fā)的特性,例如類和方法。Phrogram在現(xiàn)代IDE中進行建模,例如Eclipse 和Visual Studio. NET,并可以幫助初學者為這些或者其他的專業(yè)開發(fā)環(huán)境做好準備。
RoboMind是一個簡單的教育性質(zhì)的編程環(huán)境,能讓初學者對機器人編程。RoboMind介紹了流行的編程技術(shù)、一些機器人學和人工智能的知識。人們能夠使用阿拉伯語、中文、荷蘭語、英語和瑞典語對機器人進行編程。
StagecastCreators是基于示范編程的可視化編程系統(tǒng)。用戶通過移動屏幕上的圖標,為物體(角色)制定規(guī)則來操作整個系統(tǒng)。用戶可以創(chuàng)造2D模型來模擬一個概念,多層次的游戲,交互的故事等。
Etoys的創(chuàng)意來源計算機屏幕上那些可編程的實體。Etoys提供一個簡單高效的腳本對象模型,和一個用戶媒體豐富的創(chuàng)作環(huán)境,涵蓋了2D和3D圖形,圖片,文本,粒子,演示文檔,網(wǎng)頁,視頻,聲音和MIDI音樂,能夠與其他Etoys用戶實時共享桌面,通過互聯(lián)網(wǎng)進行身臨其境的指導。Etoys是多語言的,已經(jīng)在美國,歐洲,南美,日本,韓國,尼泊爾等地取得了成功。這個項目是針對9至12歲的兒童的。
Squeak是一個現(xiàn)代的,開源的,功能齊全的Smalltalk程序設(shè)計語言和執(zhí)行環(huán)境。Smalltalk是一個面向?qū)ο,擁有動態(tài)類型和反射特性的程序設(shè)計語言,用來支持“人機共棲”這個“新的世界”的計算典范。像Lisp一樣,它有影像式持久性(image-based persistence),所以通過語言本身能對所以任何事物進行修改(參見Smalltalk#反射)。Smalltalk在面向?qū)ο缶幊毯蚃IT及時編譯等方面給行業(yè)帶來了深遠的影響。Squeak是在廣泛開發(fā)項目中使用的工具,包括多媒體應(yīng)用,教育平臺和商業(yè)網(wǎng)絡(luò)應(yīng)用程序等。Squeak被設(shè)計為高度可移植的,調(diào)試,分析和維護亦是如此,這是因為Squeak的虛擬機完全用Smalltalk編寫的,Squeak的主頁維護著免費的教程列表,Stéphane Ducasse則維持著大量Smalltalk和Squeak相關(guān)的在線書籍。現(xiàn)如今使用最廣泛的,采納了許多Smalltalk的設(shè)想的語言是Objective-C。