華文網

超全兒童程式設計軟體匯總,值得收藏!

大家在給孩子選程式設計軟體之前,一定要知道教育性質的程式設計語言如Logo、Scratch、Etoys、Alice等和專業的程式設計語言如vc、Pascal、VB、Java、.net等有什麼不同.

一個教育性質的程式設計語言,是一種主要設計於用來學習的工具,

是與用於編寫真實環境下的應用程式程式設計語言不大相同的一種程式設計語言.。

許多教育性質的程式設計語言都提供建議的學習順序,即是學習一組程式設計語言的順序,每種語言都建立在其他語言的基礎上,使得學生能夠完成從簡單又易於理解的娛樂性程式設計環境到專業開發環境的轉變。今天超人來給大家分析分析幾款流星的程式設計軟體。

▍Logo

Logo是特別為孩子們設計的入門程式設計語言。學習Logo的第一步是認識“turtle graphics”(龜狀圖形,最早可以追溯到1969年,proto-Lisp中的“turtle robots”)。

在現代的Lisp實現中,有一個叫“turtle”的抽象繪圖設備,專門用來繪製龜狀圖形,是為了吸引孩子們進行程式設計。

Seymour Papert,Logo語言的發明者,是構造論的支持者,

構造論是多種構成主義的學習理論。Papert認為像寫作之類的活動,會在早期接受計算文化過程中自然而然的學會。所以Logo設計的初衷不僅僅是為了教會孩子們程式設計和計算文化中的一些概念,而是為了增強孩子們對日益以科技為主導的文化的適應。

“比開始較早進行智力教育更為重要的是,這能夠使孩子們避免學習中形成的長期依賴,即學習的東西都是由所謂權威的人提出的…而這樣的小孩無法給自己準確的定位,或者讓社會覺得他們是在智力上是無助的”。

通過在3歲左右的孩子進行實驗,對他們30年的跟蹤記錄發現,大多數都取得了教育上的成功。Logo實際上是一個Lisp的線性版本,對於高年級的學生而言,

Logo能夠用來解釋電腦甚至是人工智慧中的一些概念。

Brian Harvey寫過一系列的文章“Computer Science Logo Style”,對那些通過Logo學習電腦科學的學生而言是很有幫助的。Logo目前已廣泛應用於各種平臺,同時提供了免費版和商業版。

▍ Scratch

Scratch由麻省理工學院的 Dr. Mitchel Resnich 和他的“終身幼稚園(MIT's Lifelong Kindergarten research group)”研究組成員共同完成。

Scratch 的設計靈感來源於教小朋友們程式設計時遇到的種種困難。它的名稱來源 於DJ 混錄唱片的技術。(#大概是覺得DJ混唱片、搭樂高積木,用Scratch程式設計某種程度很相似。)

Scratch:讓程式設計變得像搭積木一樣。過去,很多教程裡總是喜歡拿方形、圓形等來説明我們理解高深的物件、實例等等程式設計理論。但總是越說越讓人糊塗。

程式設計命令按照動作、感覺等形象的進行分類,並且這些程式設計命令均可支援拖拽。成套的邏輯語句利用突出或特殊形狀等形式來輔助程式設計。

例如:"IF...THEN...ELSE..."是一個黃色的呈“E”狀的圖形塊,其中有一個菱形的洞供填寫條件,在“E”的三橫中間可以加上不同的操作。程式設計過程中,用戶可以添加來自本地或者Web的圖片和聲音,當然,添加的方式一樣是拖拽。

Scratch 是軟體基礎教學的一次革命。讓那些厭煩程式設計的人眼前一亮。Scratch使程式設計容易上手、充滿樂趣,但卻不失編寫複雜應用程式的能力。

▍Small Basic

微軟Small Basic作為一個入門程式設計語言,是Visual Basic的簡化版本。“旨在把‘樂趣’帶回到程式設計中”。Small Basic實在是小,只有15個關鍵字,並且每個都自然好懂。

Small Basic提供特別的物件函式程式庫,包括使人普遍感興趣和孩子們感興趣的東西(例如Flickr)。孩子們能夠線上或在本地創建有趣的交互程式。Small Basic利用了微軟的Visual Studio IDE提供的自動完成和上下文相關的幫助。

▍Scheme

Scheme最初是在1975年出於教學目的而設計的語言(參加[9] LISPs of the day used non-recursivecontrol structures to implement lambda calculus以非遞迴的控制結構實施λ演算),這主要是因為Lisp仍然在硬體實現具有高效率。

Guy L.Steele,Jr和Gerald Jay Sussman創造出了Scheme,通過使用簡潔高效的Lisp程序呼叫,使得Scheme成為最快的解釋型語言之一。

從語言教學上來講,可以通過以domain-specific languages(DSL,特定領域語言)和MetacircularEvaluator(元迴圈計算)的方式來進行。

1984年出版的《Structure and Interpretation of Computer Programs》(《電腦程式的構造和解釋》)將這種教育理念納入了經典的教學課本中,從而改變了Pascal在大學程式設計語言中的優勢地位。

“Abelson和Sussman在1984年出版的《Structure and Interpretation of Computer Programs》(SICP),給上世紀八十年代的電腦課程設計帶來了徹底性的改變。

更為重要的是,SICP打破了語法入門課程的壟斷,不再是將課程的組織僅僅圍繞某個當前流行的程式設計語言的語法,而是將學習計算科學的重點放在了:

functional abstraction(函數抽象), data abstraction(資料抽象), streams(流), data-directed programming(資料導向程式設計), implementation of message-passingobjects(消息傳遞物件的實現), interpreters(解譯器), compilers(編譯器), and register machines(寄存器機器)。”

短時間內,美國以及世界各地的很多大學把第一門電腦科學課程改成了SICP和Scheme。而SICP也成了MIT Press最為暢銷的圖書之一。

和SCIP一起,Scheme也廣泛應用,不僅僅是印第安那大學,MIT,耶魯大學的開設的少數課程,而是成為世界性入門語言的選擇。

自那以後,Scheme社區為低年級課程提供了一些定制的教育程式設計環境。其中有PLT Scheme和DrScheme環境,還提供了免費的教師培訓教材:How to Design Programs 和TeachScheme!。

▍newLISP

newLISP旨在提供一個磁片佔用和系統資源使用少的,快速的,強大的,跨平臺的,全功能腳本版的Lisp程式設計語言。因為它的簡單,一致,線性的特點,特別適合於初學者。

newLisp能夠最大限度的減少學習的曲線並且帶給程式師更多的創造性和快樂。

CommonLisp 是通用的(專業的),多泛型程式設計語言。它支援過程式、函數式和物件導向的程式設計範式。

作為一個動態程式設計語言,CommonLisp促進了反覆運算編譯向高效運行時程式的快速發展。CommonLisp和大部分其他程式設計語言不同,它使用S-expressions(S運算式)來表示代碼和資料結構,而函數和巨集調用是用鏈表實現的。

通過Lisp的標準化統一各種Lisp的變體已經提上了日程,這不是一個特定的實現而是一個語言規範。現在有幾種CommonLisp的標準實現,包括商業產品和開源軟體 。

▍AgentSheet

AgentSheet是屢獲大獎的遊戲和模擬製作工具,它可以簡單到讓中學生通過製作視頻遊戲來學習電腦知識,也可以複雜到讓NASA的科學家來類比太空梭的有效負荷。

AgentSheet是由一個叫做Scalable Game Design(可擴展的遊戲設計)的完整課程提供支援的,它從簡單的像青蛙一樣(Frogger-like)的遊戲一直到複雜的人工智慧模擬遊戲。

AgentSheet支援遊戲(動畫,交互,聲音,語音合成/識別(Mac)),科學應用程式(繪圖,輸出到試算表,3D繪圖(Mac))。AgentSheet有英語,希臘語和日語版本。

Lego Mindstorms以AgentSheets為基礎,開發了LegoSheets程式設計語言,比Brick Logo的學習曲線要平緩的多。

▍Alice

Alice是一個免費的程式設計軟體,旨在教會孩子們事件驅動的物件導向程式設計。程式設計者可以使用現代IDE,以拖拽的方式創建互動式的故事程式。

Alice目標群體是大多數中學階段的有電腦使用經驗的女生,可謂寓教於樂。還有一個叫Story Telling Alice的Alice的變體,能夠提供更強的講故事能力。

▍Baltie

Baltie是圖形化的程式設計工具,適合兒童,青少年(成人)。Baltie是軟體中一個主要的角色,一個巫師,用來執行各種命令、將出現在他視野的圖片變魔術。

通過Baltie的幫助,孩子們能夠很快認識到什麼是電腦,如何對電腦進行操作和程式設計,這些都是在玩的過程中實現的。Baltie同樣能夠幫助邏輯思維訓練,而且對孩子們的知識並沒有多少要求,只要求會玩和想像力。

Baltie已經在許多國家的小學中採用了。新版本的Baltie 4甚至完全支援C#,更多的資訊可以在SGP Systems中找到。

▍Guido van Robot

Guido van Robot是一個機器人控制程式,有點類似於Logo和Karel J. Robot,使用了Python語法中的很少一部分。

Guido van Robot被設計成對任何高階語言都儘量簡化和通用。還有一個叫RUR-PLE的變體,它包括了完整的Python語法和一些經典的課程。

▍Karel,Karel++,和Karel J.Robot

Karel,Karel++,和Karel J.Robot是為那些完全的初學者而準備的。用來在一個由長方形街道網格組成的城市中控制一個簡單機器人。Karel是一個自主的程式設計語言,而Karel++是Karel的C++實現,Karel J. Robot則是Karel的Java實現。

▍Learn to Program BASIC

Learn to Program BASIC是一個通過互動課程教會中學生Basic的Basic解釋程式,在Basic語言中加入了一些的遊戲,包括對2D sprite支持。在LTPB中編寫的程式能夠脫離LTPB獨立執行,即是一個可以自由分發的“runner”。

▍Phrogram

Phrogram(第二代的KPL,MS Kid's Programming Language)是2006年引入的一個商業的、易於學習的程式設計語言和整合式開發環境。它強調圖形和聲音,使得它特別容易開發遊戲,寓教於樂的程式。

Phrogram是簡化的結構化語言,提供了基於元件開發的特性,例如類和方法。Phrogram在現代IDE中進行建模,例如Eclipse 和Visual Studio. NET,並可以幫助初學者為這些或者其他的專業開發環境做好準備。

▍RoboMind

RoboMind是一個簡單的教育性質的程式設計環境,能讓初學者對機器人程式設計。RoboMind介紹了流行的程式設計技術、一些機器人學和人工智慧的知識。人們能夠使用阿拉伯語、中文、荷蘭語、英語和瑞典語對機器人進行程式設計。

▍StagecastCreators

StagecastCreators是基於示範程式設計的視覺化程式設計系統。使用者通過移動螢幕上的圖示,為物體(角色)制定規則來操作整個系統。使用者可以創造2D模型來類比一個概念,多層次的遊戲,交互的故事等。

▍Etoys

Etoys的創意來源電腦螢幕上那些可程式設計的實體。Etoys提供一個簡單高效的腳本物件模型,和一個使用者媒體豐富的創作環境,涵蓋了2D和3D圖形,圖片,文本,粒子,演示文檔,網頁,視頻,聲音和MIDI音樂,能夠與其他Etoys用戶即時共用桌面,通過互聯網進行身臨其境的指導。

Etoys是多語言的,已經在美國,歐洲,南美,日本,韓國,尼泊爾等地取得了成功。這個項目是針對9至12歲的兒童的。

▍Squeak

Squeak是一個現代的,開源的,功能齊全的Smalltalk程式設計語言和執行環境。Smalltalk是一個物件導向,擁有動態類型和反射特性的程式設計語言,用來支援“人機共棲”這個“新的世界”的計算典範。

像Lisp一樣,它有影像式持久性(image-based persistence),所以通過語言本身能對所以任何事物進行修改(參見Smalltalk#反射)。

Smalltalk在物件導向程式設計和JIT及時編譯等方面給行業帶來了深遠的影響。Squeak是在廣泛開發項目中使用的工具,包括多媒體應用,教育平臺和商業網絡應用程式等。

Squeak被設計為高度可移植的,調試,分析和維護亦是如此,這是因為Squeak的虛擬機器完全用Smalltalk編寫的,Squeak的主頁維護著免費的教程列表,Stéphane Ducasse則維持著大量Smalltalk和Squeak相關的線上書籍。

現如今使用最廣泛的,採納了許多Smalltalk的設想的語言是Objective-C。

大家再看看搜到的一張表格,是現在比較流行的少兒程式設計軟體,有詳細解釋:

年齡經驗水準合適的程式設計語言學齡前–二年級無/不適用Logo style: Logo, Guido van Robot, Karel. Scratch, Baltie 2, Stagecast Creator二年級–四年級無/不適用Logo, Scratch, Etoys, Stagecast Creator五年級–八年級很少或沒有經驗Lego Mindstorm, Etoys, AgentSheets, Alice, Baltie 3, learning oriented BASIC, Phrogram, Stagecast Creator,smallBASIC五年級–八年級有一些經驗Squeak, full featured BASIC, Greenfoot, Pascal高中很少或沒有經驗Squeak, Greenfoot, Pascal, full featured BASIC高中有一些經驗Squeak, Greenfoot 或 BlueJ, newLISP, OZ. Most other programming languages.大學不是主要專業,假定沒有經驗Squeak, Greenfoot 或 BlueJ, newLISP, full featured BASIC大學開始電腦科學或程式設計課程Haskell, OZ, Scheme, Qi, Squeak, NetBeans BlueJ

程式設計命令按照動作、感覺等形象的進行分類,並且這些程式設計命令均可支援拖拽。成套的邏輯語句利用突出或特殊形狀等形式來輔助程式設計。

例如:"IF...THEN...ELSE..."是一個黃色的呈“E”狀的圖形塊,其中有一個菱形的洞供填寫條件,在“E”的三橫中間可以加上不同的操作。程式設計過程中,用戶可以添加來自本地或者Web的圖片和聲音,當然,添加的方式一樣是拖拽。

Scratch 是軟體基礎教學的一次革命。讓那些厭煩程式設計的人眼前一亮。Scratch使程式設計容易上手、充滿樂趣,但卻不失編寫複雜應用程式的能力。

▍Small Basic

微軟Small Basic作為一個入門程式設計語言,是Visual Basic的簡化版本。“旨在把‘樂趣’帶回到程式設計中”。Small Basic實在是小,只有15個關鍵字,並且每個都自然好懂。

Small Basic提供特別的物件函式程式庫,包括使人普遍感興趣和孩子們感興趣的東西(例如Flickr)。孩子們能夠線上或在本地創建有趣的交互程式。Small Basic利用了微軟的Visual Studio IDE提供的自動完成和上下文相關的幫助。

▍Scheme

Scheme最初是在1975年出於教學目的而設計的語言(參加[9] LISPs of the day used non-recursivecontrol structures to implement lambda calculus以非遞迴的控制結構實施λ演算),這主要是因為Lisp仍然在硬體實現具有高效率。

Guy L.Steele,Jr和Gerald Jay Sussman創造出了Scheme,通過使用簡潔高效的Lisp程序呼叫,使得Scheme成為最快的解釋型語言之一。

從語言教學上來講,可以通過以domain-specific languages(DSL,特定領域語言)和MetacircularEvaluator(元迴圈計算)的方式來進行。

1984年出版的《Structure and Interpretation of Computer Programs》(《電腦程式的構造和解釋》)將這種教育理念納入了經典的教學課本中,從而改變了Pascal在大學程式設計語言中的優勢地位。

“Abelson和Sussman在1984年出版的《Structure and Interpretation of Computer Programs》(SICP),給上世紀八十年代的電腦課程設計帶來了徹底性的改變。

更為重要的是,SICP打破了語法入門課程的壟斷,不再是將課程的組織僅僅圍繞某個當前流行的程式設計語言的語法,而是將學習計算科學的重點放在了:

functional abstraction(函數抽象), data abstraction(資料抽象), streams(流), data-directed programming(資料導向程式設計), implementation of message-passingobjects(消息傳遞物件的實現), interpreters(解譯器), compilers(編譯器), and register machines(寄存器機器)。”

短時間內,美國以及世界各地的很多大學把第一門電腦科學課程改成了SICP和Scheme。而SICP也成了MIT Press最為暢銷的圖書之一。

和SCIP一起,Scheme也廣泛應用,不僅僅是印第安那大學,MIT,耶魯大學的開設的少數課程,而是成為世界性入門語言的選擇。

自那以後,Scheme社區為低年級課程提供了一些定制的教育程式設計環境。其中有PLT Scheme和DrScheme環境,還提供了免費的教師培訓教材:How to Design Programs 和TeachScheme!。

▍newLISP

newLISP旨在提供一個磁片佔用和系統資源使用少的,快速的,強大的,跨平臺的,全功能腳本版的Lisp程式設計語言。因為它的簡單,一致,線性的特點,特別適合於初學者。

newLisp能夠最大限度的減少學習的曲線並且帶給程式師更多的創造性和快樂。

CommonLisp 是通用的(專業的),多泛型程式設計語言。它支援過程式、函數式和物件導向的程式設計範式。

作為一個動態程式設計語言,CommonLisp促進了反覆運算編譯向高效運行時程式的快速發展。CommonLisp和大部分其他程式設計語言不同,它使用S-expressions(S運算式)來表示代碼和資料結構,而函數和巨集調用是用鏈表實現的。

通過Lisp的標準化統一各種Lisp的變體已經提上了日程,這不是一個特定的實現而是一個語言規範。現在有幾種CommonLisp的標準實現,包括商業產品和開源軟體 。

▍AgentSheet

AgentSheet是屢獲大獎的遊戲和模擬製作工具,它可以簡單到讓中學生通過製作視頻遊戲來學習電腦知識,也可以複雜到讓NASA的科學家來類比太空梭的有效負荷。

AgentSheet是由一個叫做Scalable Game Design(可擴展的遊戲設計)的完整課程提供支援的,它從簡單的像青蛙一樣(Frogger-like)的遊戲一直到複雜的人工智慧模擬遊戲。

AgentSheet支援遊戲(動畫,交互,聲音,語音合成/識別(Mac)),科學應用程式(繪圖,輸出到試算表,3D繪圖(Mac))。AgentSheet有英語,希臘語和日語版本。

Lego Mindstorms以AgentSheets為基礎,開發了LegoSheets程式設計語言,比Brick Logo的學習曲線要平緩的多。

▍Alice

Alice是一個免費的程式設計軟體,旨在教會孩子們事件驅動的物件導向程式設計。程式設計者可以使用現代IDE,以拖拽的方式創建互動式的故事程式。

Alice目標群體是大多數中學階段的有電腦使用經驗的女生,可謂寓教於樂。還有一個叫Story Telling Alice的Alice的變體,能夠提供更強的講故事能力。

▍Baltie

Baltie是圖形化的程式設計工具,適合兒童,青少年(成人)。Baltie是軟體中一個主要的角色,一個巫師,用來執行各種命令、將出現在他視野的圖片變魔術。

通過Baltie的幫助,孩子們能夠很快認識到什麼是電腦,如何對電腦進行操作和程式設計,這些都是在玩的過程中實現的。Baltie同樣能夠幫助邏輯思維訓練,而且對孩子們的知識並沒有多少要求,只要求會玩和想像力。

Baltie已經在許多國家的小學中採用了。新版本的Baltie 4甚至完全支援C#,更多的資訊可以在SGP Systems中找到。

▍Guido van Robot

Guido van Robot是一個機器人控制程式,有點類似於Logo和Karel J. Robot,使用了Python語法中的很少一部分。

Guido van Robot被設計成對任何高階語言都儘量簡化和通用。還有一個叫RUR-PLE的變體,它包括了完整的Python語法和一些經典的課程。

▍Karel,Karel++,和Karel J.Robot

Karel,Karel++,和Karel J.Robot是為那些完全的初學者而準備的。用來在一個由長方形街道網格組成的城市中控制一個簡單機器人。Karel是一個自主的程式設計語言,而Karel++是Karel的C++實現,Karel J. Robot則是Karel的Java實現。

▍Learn to Program BASIC

Learn to Program BASIC是一個通過互動課程教會中學生Basic的Basic解釋程式,在Basic語言中加入了一些的遊戲,包括對2D sprite支持。在LTPB中編寫的程式能夠脫離LTPB獨立執行,即是一個可以自由分發的“runner”。

▍Phrogram

Phrogram(第二代的KPL,MS Kid's Programming Language)是2006年引入的一個商業的、易於學習的程式設計語言和整合式開發環境。它強調圖形和聲音,使得它特別容易開發遊戲,寓教於樂的程式。

Phrogram是簡化的結構化語言,提供了基於元件開發的特性,例如類和方法。Phrogram在現代IDE中進行建模,例如Eclipse 和Visual Studio. NET,並可以幫助初學者為這些或者其他的專業開發環境做好準備。

▍RoboMind

RoboMind是一個簡單的教育性質的程式設計環境,能讓初學者對機器人程式設計。RoboMind介紹了流行的程式設計技術、一些機器人學和人工智慧的知識。人們能夠使用阿拉伯語、中文、荷蘭語、英語和瑞典語對機器人進行程式設計。

▍StagecastCreators

StagecastCreators是基於示範程式設計的視覺化程式設計系統。使用者通過移動螢幕上的圖示,為物體(角色)制定規則來操作整個系統。使用者可以創造2D模型來類比一個概念,多層次的遊戲,交互的故事等。

▍Etoys

Etoys的創意來源電腦螢幕上那些可程式設計的實體。Etoys提供一個簡單高效的腳本物件模型,和一個使用者媒體豐富的創作環境,涵蓋了2D和3D圖形,圖片,文本,粒子,演示文檔,網頁,視頻,聲音和MIDI音樂,能夠與其他Etoys用戶即時共用桌面,通過互聯網進行身臨其境的指導。

Etoys是多語言的,已經在美國,歐洲,南美,日本,韓國,尼泊爾等地取得了成功。這個項目是針對9至12歲的兒童的。

▍Squeak

Squeak是一個現代的,開源的,功能齊全的Smalltalk程式設計語言和執行環境。Smalltalk是一個物件導向,擁有動態類型和反射特性的程式設計語言,用來支援“人機共棲”這個“新的世界”的計算典範。

像Lisp一樣,它有影像式持久性(image-based persistence),所以通過語言本身能對所以任何事物進行修改(參見Smalltalk#反射)。

Smalltalk在物件導向程式設計和JIT及時編譯等方面給行業帶來了深遠的影響。Squeak是在廣泛開發項目中使用的工具,包括多媒體應用,教育平臺和商業網絡應用程式等。

Squeak被設計為高度可移植的,調試,分析和維護亦是如此,這是因為Squeak的虛擬機器完全用Smalltalk編寫的,Squeak的主頁維護著免費的教程列表,Stéphane Ducasse則維持著大量Smalltalk和Squeak相關的線上書籍。

現如今使用最廣泛的,採納了許多Smalltalk的設想的語言是Objective-C。

大家再看看搜到的一張表格,是現在比較流行的少兒程式設計軟體,有詳細解釋:

年齡經驗水準合適的程式設計語言學齡前–二年級無/不適用Logo style: Logo, Guido van Robot, Karel. Scratch, Baltie 2, Stagecast Creator二年級–四年級無/不適用Logo, Scratch, Etoys, Stagecast Creator五年級–八年級很少或沒有經驗Lego Mindstorm, Etoys, AgentSheets, Alice, Baltie 3, learning oriented BASIC, Phrogram, Stagecast Creator,smallBASIC五年級–八年級有一些經驗Squeak, full featured BASIC, Greenfoot, Pascal高中很少或沒有經驗Squeak, Greenfoot, Pascal, full featured BASIC高中有一些經驗Squeak, Greenfoot 或 BlueJ, newLISP, OZ. Most other programming languages.大學不是主要專業,假定沒有經驗Squeak, Greenfoot 或 BlueJ, newLISP, full featured BASIC大學開始電腦科學或程式設計課程Haskell, OZ, Scheme, Qi, Squeak, NetBeans BlueJ