當前位置:
首頁 > 新聞 > 教兒童編程:我們應該使用什麼語言?

教兒童編程:我們應該使用什麼語言?

更多精彩,敬請關注矽谷洞察官方網站(http://www.svinsight.com)

我從老師和家長得到的一個最常見的問題是:我們應該用什麼語言來教孩子編程?一直從Scratch這種基於塊的語言入門很重要嗎?孩子們應該在什麼年齡過渡到基於文本的語言?並且如何在Python、Java或者JavaScript之間進行抉擇呢?

我在近十年已經給數百名學生教授了編程課程,我經常出席會議或者為剛接觸計算機科學的教師辦講習班。很多老師是第一次嘗試在他們的學校建立一個CS項目,所以不難理解為什麼他們擔心選擇哪種編程語言。除了嘗試找到對學生最有利的編程語言之外,教師還必須在教師擅長的教學內容與管理者、家長和學生應該學習的內容之間取得平衡。

那麼,有沒有一種「正確」的編程語言可以入門呢?

編程的語言不重要,重要的是編程的思想!

正如你所想,答案是否定的(沒有「正確」的入門編程語言)!因為,重要的不是編程語言,而是如何教學生用代碼解決問題。理解如何創造一個演算法(一步一步的指令)來處理任務,並想出用代碼編寫該程序的最好方法,可能是最困難的部分。

原因是,學習一種特定編程語言的極少關鍵字和簡單語法很容易,比學習一種實際的、口語的人類語言要容易得多!

相反,為了獨立編程,必須了解編程中的基本概念,如變數、列表、條件、循環和函數等,而且知道在何時、何處以及如何使用它們用來將你的演算法轉為程序代碼。如果一個學生一旦掌握了那些基本概念並使用一種程序語言成功編程了一段時間,那麼用另一種語言編程就沒有那麼困難了。

然而,學習的第一種編程語言是否會改變你在未來思考和編程的方式呢?學習當今業界最流行的語言很重要嗎?

編程語言此消彼長,你終會適應。

編程語言受歡迎的程度正在改變,我們不能保證現在教孩子們的編程語言在他們進入就業市場時仍然被使用。

我的第一個編程語言是Pascal(是的,你可能需要現在查一下它了)但是多年來,我學會了在不同機器上用不同的編程語言——一些晦澀難懂的就不提了。

在近十年作為一名教育工作者,我學習了足夠的Logo、Scratch、Provessing、JavaScript、Arduino和Python,以便在我的課堂上將它們用作編程教學語言。6年前,我建議孩子們從Logo這種最早的CS教育語言開始學習,而且我現在仍然認為它是一個強有力的選擇。

下面是最重要的部分:如果你能教孩子最基本的編程概念,而且他們花費了足夠的時間用一種語言編程,那麼他們應該已經培養了一種可以在未來有需要時更換編程語言的基礎技能。

還有一個經常出現的問題:我們需要所有的孩子從基於塊的編程語言開始,而不是基於文本的編程語言開始嗎?

基於塊,還是基於文本?

大概10年前,在為六年級學生開設的數字設計課上,我開始使用Scratch,這可能是最流行的、對孩子最友好的基於塊的語言,而且我仍然喜歡在各個年級繼續使用它。同時,我很興奮能夠使用Scratch3.0剛剛發布的新功能,尤其是支持文本轉語言和語言翻譯的擴展。

基於塊的編程消除了許多年輕程序員們的許多挫折,比如缺少逗號或忘記以括弧結尾,從而留下更多的時間來集中注意力理解概念。

此外,Scratch專註於創造性和易於創造圖形、編輯聲音、共享和混合項目,使其成為適合所有年齡的一種完美的第一編程語言。它的定位是一種創造藝術、動畫、故事和遊戲的工具,而不是一種「編程」語言,這種品牌理念讓Scratch更受歡迎、不那麼嚇人。

重要的不是語言,而是如何教學生使用代碼解決問題。

我發現,在使用Scratch幾年之後,學生想去學基於文本的編程,因為他們認為「成年人」和在業界「真正的」編程是相關聯的。我也看到,有時只是編程語言上的輕微改變,就需要複習回顧像變數和循環之類的概念。

但是,我的中學學生更願意在學習基於文本的編程語言上付出額外的努力;在他們挑戰Python, JavaScript, Arduino 和Processing等時,他們經常會為了仔細拼寫和仔細使用語法而放慢速度。一旦學生能夠通過最初的「所思即所得(我真正能看到我所打字的內容)」部分時,他們會欣賞基於文本編程的靈活與強大,尤其是當他們在創建項目時,發現複製、粘貼、修改和協作文本代碼要容易得多的時候。

每年夏天我在Foothill College KCI Computer Science Crash的crash course上課的時候,我會給老師提供Scratch和Python,同時用兩種語言展示同一項目。

他們喜歡看到這兩種語言的相似之處,而且如果我們一開始從「偽代碼」或者流程圖開始(在寫任何代碼前寫下演算法的方式),他們會更加喜歡。

在Scratch和Python中,下面是一個看起來像流程圖的一個包含檢查密碼的小項目。

教兒童編程:我們應該使用什麼語言?

打開今日頭條,查看更多圖片

Password checker flowchart diagram

密碼檢查程序流程圖

教兒童編程:我們應該使用什麼語言?

教兒童編程:我們應該使用什麼語言?

用Python寫的密碼檢查器

沒有接觸過基於塊的編程的老師和學生可以容易地在我的課上學會Python,說明在正確的項目中,也可以從基於文本的編程語言開始。

是什麼讓任何編程語言都能成為教孩子編程的好語言?選擇一門語言有什麼標準嗎?

雖然知道編程教學更多的是關於概念的教學,不需要在選擇完美的第一語言上擔心,這可能是一件好事,但問題仍然存在:一門語言應該具備什麼,才能使它成為教孩子編程的好選擇?

雖然編程語言經常有很多的評估方法,例如運行速度、應用、可用庫、業界支持等,這些是我考慮的一些重要的標準。

它有一個強大的社區嗎?

我總是提到Scratch和Python的原因是,他們可以在課堂上接觸到很多使用這些語言的教育者。他們背後有如此巨大的社區是因為這些語言總是免費、開放、歡迎來自世界各地的廣大用戶。

擁有一個大的社區意味著你可以找到更多的資源,例如項目、課程計劃、教程、視頻和書籍,可以用於在課程上教授這門語言。你也很有可能進入一個教育會議,或者找到一個能給你許多建議的會議。

學起來容易嗎?

有許多可供選擇的基於文本的語言,一些語言在業界比其他的更受歡迎,一些語言具有特定的特性,使其更適合創建特定的項目。

雖然很多高中生學習Java最終目的可能不是為了AP Computer Science課程,但是它不一定是入門時最簡單的語言。

Python要簡單得多,由於它非常簡單,所以在教育界中很受歡迎。在計算機選修課上使用Python三年之後,我經常對Python完成事情花費的時間之短、中學生學習Python編程的速度之快而感到驚訝。受到Python在教授孩子編程方面出色表現的啟發,我花時間寫了一本關於Python的書。

它背後的設計理念是什麼?是為這個年齡段設計的嗎?

提供適齡的工具很重要,編程語言能根據目標年齡組隱藏或展示特性也同樣重要。

Scratch的創造理念來自使用代碼進行創造性表達,有意地簡化了一些在編程語言中期待看到的結構。

Scratch Jr.為還在學習閱讀的孩子而設計,沒有變數或條件,因為這對於他們這種年齡來說可能會讓他們十分困惑。

Python提供了許多支持各種項目的擴展,但是這些擴展是作為模板提供的,需要顯式地添加它們,所以你不需要見到它們,除非你需要它們的時候。

年級高的學生學習複雜程序的語言必須支持調試,這是一項基本技能。

如果教授「面向對象」編程很重要,那麼用使用Java也不是一個壞的選擇。

安裝容易嗎?能跨平台運行嗎?

有很多事情需要記住,尤其是處於學生在家編程很重要的情況下。

有一些只在特定的環境下工作,例如蘋果的Swift編程語言。

如果學生使用Chromebooks編程,那麼一個穩定、基於瀏覽器的工具是很重要的。

另一個需要考慮的問題是:該語言是真的免費,所以每個學生可以在家使用,還是只有付費才能使用隱藏擴展?

與社區共享項目有多容易?

Scratch背後的基本理念是社區,讓孩子們相互分享和學習。這個社區也對老師很有用。然而,分享也需要規劃:例如希望學生在何時和多大程度上分享、評論、重用和重新利用他人的項目。

雖然JavaScript作為第一種基於文本的編程語言可能不被接受,而且不如Python簡單,但是它只在Web上運行是它具有的一個優勢。展示項目就像把它們發布到學校的Web伺服器上一樣簡單。

當選擇一門語言的時候,有很多其他的考慮。

什麼樣的項目是可能的?不同的語言對於不同的項目有不同的支持和擴展。例如,Processing和P5.js讓媒體項目和創建藝術和動畫變得更容易。

Python讓編寫複雜數據分析甚至機器學習項目成為可能。

教師可能也需要強大的課堂工具來管理作業和評分,尤其是小組項目。最常見的問題之一是:「這種語言現在流行嗎?」因為,編程語言受歡迎程度肯定會影響學生報名上課時編程語言的選擇。所以不難理解家長們想讓教育工作者教授在工作方面具有市場的編程語言。

然而,培養良好的編程習慣勝過教授流行語言。

雖然我們可以強調尋找「完美」的編程語言作為入門,但不要忘記最終的目標是讓學生探索基本的編程概念。他們可能永遠不會選擇在你的課下編程,而且你教的語言可能會隨著他們年齡的增長而過時。

但重要的是,編程教學將幫助學生理解計算機如何解決問題,獲得批判性思維的技能,並有希望了解編寫代碼是多麼有趣。

更多精彩,敬請關注矽谷洞察官方網站(http://www.svinsight.com)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 矽谷密探 的精彩文章:

誰說矽谷從不996?
人工智慧如何重塑醫療數據?

TAG:矽谷密探 |