作爲一名學生教師,我非常感興趣的是諸如Scratch,Logo,Alice和Lego mindstorms等「迷你語言」如何有效地教導學生編程的核心概念,如變量,函數和循環。學習編程語言概念
爲了教授這些基本的核心概念,一種「迷你語言」是否比另一種更好?
作爲一名學生教師,我非常感興趣的是諸如Scratch,Logo,Alice和Lego mindstorms等「迷你語言」如何有效地教導學生編程的核心概念,如變量,函數和循環。學習編程語言概念
爲了教授這些基本的核心概念,一種「迷你語言」是否比另一種更好?
取決於你教孩子的年齡有多少,我只需要用像python這樣簡單的語言。
這裏是一個免費的書,教所有的基本知識,只有約200頁長: http://www.greenteapress.com/thinkpython/thinkpython.html
我認爲這不要緊,其中大部分「小語言」的使用。但是我認爲如果你不打算解釋更多的基礎知識,你最好還是用真正的微型語言而不是「真正的」語言。 當我學習了基礎知識(用Java)的時候,我真的非常生氣,我不得不記得public static void main
而不知道這一切意味着什麼。 所以我會選擇儘可能少的開銷語言。 選擇哪種特定語言真的取決於學生的年齡。
有很多可能性,最終這類問題與「品味」有很大關係。我認爲這個方案是一個非常好的選擇,但有幾個原因。一個是它是一種非常簡約的語言,很少用語法來使事情複雜化。另一個原因是我覺得計劃表達了關於計算的真正基礎,並且非常清楚。另一個是該方案可以用於非常「多範式」的方式。你可以在Scheme中進行函數式編程,或者命令式編程。從Scheme開始構建一個對象系統也很容易 - 您可以使用不到100行的代碼將簡單的語言移植到該語言上。還有一些Scheme實現有很多庫,所以你可以做一些事情,比如圖形編程或者網絡編程。
最後,人們非常重視在Scheme中開發優秀的教學材料。 「計算機程序的結構和解釋」被公認爲經典,但對於年幼的孩子來說,它的很多材料都是非常困難的,我認爲(它針對麻省理工學院的新生)。但是,材料,如「如何設計程序」:http://www.htdp.org/您可以在htdp中真正清楚地看到的一件事是Scheme的最小語法如何讓您正確理解重要思想。
Scheme作爲第一語言的主要缺點是,現在真正廣泛使用的大多數語言看起來不像Scheme,因此學生在向其移動時可能會進行一些調整。但我傾向於認爲,特別是對於孩子們來說,首先獲得核心思想是最重要的。
這是一個非常困難的問題。 Logo和Smalltalk(僅舉兩個明顯的例子)都是專門設計用於教孩子們編程的。然而,你很快就會遇到一個問題:很難定義一種語言,這種語言既簡單又足以讓小孩完全理解,並且還有足夠的豐富性,以避免其迅速變得侷限和笨拙。
至少從我所看到的情況來看,大多數嘗試在都有效果不佳方面。舉例來說,大多數嘗試包括旨在使代碼更像英文的冗長(例如,徽標中的「收件人:」)。孩子們的鍵盤技巧往往不夠好,這樣的冗長令人沮喪。他們也(根據我的經驗)期望,如果語法的一部分看起來像英語,那麼該語言也應該接受其他有效的英語(我期望其他語言的母語人士也是如此),但我的經驗主要是英語使用者)。與此同時,大多數孩子(我曾與之合作)很快就會發現他們發現了迷你語言的限制。其中一些可能源於上面提到的挫折。有些人可能也是因爲他們的老師(至少有些老師)缺乏想象力來提出有趣且具有挑戰性的練習。我認爲今天比20年前(比如說)還困難得多 - 當時,孩子們對於他們可以用烏龜圖形繪製的東西感到興奮(舉一個例子)。今天,他們習慣於使用逼真的3D圖形進行遊戲,並且用直線繪製2D「玫瑰」似乎更像是基於蹩腳的遊戲。
對python達成一致!如果僅僅因爲它具有絕對最小的語法要求和最小的標點符號。這樣的美學可以對新開發者產生巨大影響。 也有非常好的框架,比如PyGame,可以很容易地製作交互式的東西。我認爲這個任務比語言更重要。跳過「將消息打印到控制檯」,而是專注於「這個圖形化的東西在我點擊它時起作用」 – alecf 2010-04-05 16:20:30
Livewires是一個開源課程,用於教孩子編程,它使用Python和PyGame的簡化版本來獲取它們甚至更快。我已經翻閱了它 - 看起來很有希望。 http://www.livewires.org.uk/python/home – TarkaDaal 2010-04-05 16:53:44