教育程式語言

維基百科,自由的百科全書
跳轉到: 導航, 搜尋

教育程式語言是一個教育性質的程序設計語言,是一種主要設計於用來學習的工具,是與用於編寫真實環境下的應用程序程式語言不大相同的一種程式語言。

目錄

[隱藏]

[編輯] 學習順序

許多教育性質的程式語言都提供建議的學習順序,即是學習一組程式語言的順序,每種語言都建立在其他語言的基礎上,使得學生能夠完成從簡單又易於理解的娛樂性編程環境到專業開發環境的轉變。

下面是一些著名的程式語言。

[編輯] 基於Smalltalk/Squeak

作為「OLPC(One Laptop per Child,每個孩子都有一台電腦)」項目的一部分,Smalltalk提出一個建議的語言學習順序,其中的每種語言都被設計成下一種的入門和基礎。這個順序是:Scrath->Etoys->Squeak->任意Smalltalk。在學習的過程中,每一種語言都提供了圖形化的編程環境,不僅是用於教會孩子們一些編程的概念,而且是包含物理和數學知識的模擬及講述故事的一些練習。Smalltakl和Squeak作為全功能的應用程序開發語言,在過去的數十年中已經變得十分有名了,而Scratch是孩子們學習的工具。

Scratch是一種基於Squeak、並由Squeak實現的可視化程式語言。通過讓孩子們創建遊戲,視頻和音樂,達到教會孩子們一些編程概念的目的。在Scratch中,所有的互動物體,圖形和聲音都能夠很輕鬆的導入到新的程序,通過新的方式將其組合,通過這種方法,初學者能夠很快的看到結果,並且有興趣深入學習下去。在Scratch社區中,已經開發和上傳了超過100,000個工程項目。Scratch是由MIT多媒體實驗室開發的。

Etoys的創意來源計算機螢幕上那些可程式的實體。Etoys提供一個簡單高效的腳本對象模型,和一個用戶媒體豐富的創作環境,涵蓋了2D和3D圖形,圖片,文本,粒子,演示文檔,網頁,視頻,聲音和MIDI音樂,能夠與其他Etoys用戶實時共享桌面,通過網際網路進行身臨其境的指導。Etoys是多語言的,已經在美國,歐洲,南美,日本,韓國,尼泊爾等地取得了成功。這個項目是針對9至12歲的兒童的。

Squeak是一個現代的,開源的,功能齊全的Smalltalk程式語言和執行環境。Smalltalk是一個物件導向,擁有動態類型和反射特性的程式語言,用來支持「人機共棲」這個「新的世界」的計算典範。像Lisp一樣,它有影像式持久性(image-based persistence),所以通過語言本身能對所以任何事物進行修改(參見Smalltalk#反射)。Smalltalk在物件導向編程和JIT及時編譯等方面給行業帶來了深遠的影響。Squeak是在廣泛開發項目中使用的工具,包括多媒體應用,教育平台和商業網路應用程序等。Squeak被設計為高度可移植的,調試,分析和維護亦是如此,這是因為Squeak的虛擬機完全用Smalltalk編寫的,Squeak的主頁維護著免費的教程列表,Stéphane Ducasse則維持著大量Smalltalk和Squeak相關的在線書籍。現如今使用最廣泛的,採納了許多Smalltalk的設想的語言是Objective-C。

[編輯] 基於Java

Sun公司推薦的學習順序是:Greenfoot->BlueJ->Netbeans/BlueJ->Netbeans/Java。

Greenfoot是一個互動式Java開發環境,主要目的是用於教育。它可以很容易的開發2D圖形應用程序,例如一些模擬和互動遊戲。主要是針對於高中和大學早期階段的編程學習(Java的物件導向編程)。

BlueJ是一個完整的Java環境,是特別為課程導入教學,一年級的大學生設計的。BlueJ消除了一些複雜的Java語法,難以理解的輸入輸出(I/O),並且可視化的表示出了類/對象之間的關係。BlueJ編程環境是關於教授初學者物件導向概念的大學研究項目(The Blue System)的一部分。BlueJ目的是為一年級的大學生提供一個易於使用、便於教學的Java環境,特彆強調了可視化與互動技術,旨在創造出一個高度互動的環境,鼓勵試驗和探索。

NetBeans/BlueJ是一個集成開發環境,旨在幫助學生從BlueJ的IDE過渡到更專業的NetBeans IDE。Sun提供了針對高中教學和使用Java/BlueJ免費課程。

NetBeans/Java是一個專業的開發平台。NetBeans既是一個網路應用程序開發平台,同時也是使用NetBeans平台的IDE(集成開發環境)。NetBeans Platform是能夠簡化桌面應用程序開發的可復用性框架,提供了開發桌面應用程序所需的共通服務,使得開發者能夠把重點放在實現應用程序的業務邏輯上。NetBeans IDE是完全使用Java編寫,基於NetBeans Platform的集成開發環境。NetBeans IDE與眾不同的支持所有類型的Java應用程序開發(Java SE,Web,EJB和移動應用程序)。其他的特性還包括使用基於Ant的工程系統,版本控制和重構。

[編輯] 基於Lisp

Lisp是現如今使用的計算機語言家族中第二古老的語言,因此擁有大量的方言以及廣泛的實現。Lisp最初是作為計算機程序的實用數學記法而創立的,基於λ演算,這使得它特別適合於理論計算的教學。作為最早的程式語言之一,Lisp開創了許多計算機科學概念的先河,包括樹形資料結構、自動存儲管理、動態類型、物件導向編程、自足執行的編譯器(self-hosting compiler)。這些概念對於學習計算機科學而言是十分有幫助的。

LISP語言的名字來源於「LIST Processing language(列表處理語言)」。 鏈表是Lisp中最主要的資料結構之一,Lisp本身代碼就是由鏈表構成的。因此,Lisp程序能夠將原始碼當作某種資料結構來進行操作,這就允許程式設計師創建新的語法,甚至是能夠把新的特定領域的語言嵌入到Lisp。所以Lisp對於學習語言的設計,創建自定義語言是相當有用的。

合理的學習順序是:Logo->Scheme/newLisp(教育版變體)->Common Lisp(職業版變體)

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目前已廣泛應用於各種平台,同時提供了免費版和商業版。

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!。

[編輯] BASIC

[編輯] 兒童

[編輯] 大學

[編輯] 按年齡和程度區分所授語言

下表為家長和老師總結了上方的信息。

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

[編輯] 參考連結

[編輯] 外部連結