教二年級的小朋友編程哪門語言入門好?
公司志願者俱樂部與一個民工子弟學校建立了長期合作關係,已經志願服務一個學年了。每周回有志願者去給小朋友上一節課,打算堅持到這個班的孩子小學畢業。暑假的時候捐了一批筆記本電腦給他們,打算去給他們上一些計算機方面的入門課。如果這個階段就講編程是不是太早了?上去學期去講了一節二進位,結果很悲劇,幾乎沒幾個孩子能明白,所以有點後怕。但是還是希望能夠開闊他們的視野,要是能夠影響其中的一個天才那就更值了。問題來了,教小朋友編程哪門語言入門好?
諷刺的人都是什麼心態,去年奧巴馬,蓋茨,扎克伯格等一群大佬推行 K-8 intro to CS 就是給小學生推廣編程的呀。K-8 Intro to Computer Science有人推薦 Scratch,然而我覺得 Scratch 相比 K-8 Intro 欠缺的是一個完整的 Schedule好像上圖才能說明問題,於是我把 K-8 Course 1 的所有課程弄完了
同樣是 Block Code 教學
先可以試試這個 app 遊戲:
iTunes 的 App Store 中的「Kodable」 (有中文)同時,給孩子講一些電腦的基礎知識。
同樣 K-8 Intro 的官網還在最近推出了 K5 的 3 個 beta 課程同樣也是 Block code 教學 K5 beta Courser 且循序漸進。另外還推薦了很多第三方教學平台Tutorials for the ClassroomCodeHS
Online curriculum designed specifically for highschool classrooms.
Codecademy After SchoolA complete online afterschool program for a coding club.
Khan AcademyOnline curriculum that teaches JavaScript programming in a visual environment.
TynkerTeach programming in elementary or middle school in a fun way.
Curriculum You Can IntegrateBootstrapFree curriculum to teach high-school algebra and geometry concepts using computer programming.
CS Unplugged
Fun classroom exercises to teach computer science principles, no computers needed!
Bring Classes to Your SchoolGlobaloriaTeach computer programming through game design - as a full-time class, an in-class module, or afterschool program.
TEALSGet mentored and placed into high school classes as a part-time teacher in a team teaching model where the school district is unable to meet their students" computer science needs on its own.
AP Computer Science - with AmplifyThis online course (MOOC) is designed for high school students to learn AP Computer Science in an online classroom. The course is free, but additional support to the school offering it costs money.
Platforms for Teaching KidsAlice3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web.
KoduCreate games on the PC and XBox via a simple visual programming language. Can be used to teach creativity, problem solving, storytelling, as well as programming.
ScratchProgramming language that makes it easy to create your own interactive stories, animations, games, music and art - and share your creations on the web.
我沒有細看,應該是除了 Scratch 和少數的幾個平台的 Hour of Code 項目之外,別的沒什麼中文。
Hour of code 項目中,我覺得這個 Lessons overview 很不錯,課程完整,有中文,進程很好玩。推薦 EV3 因為可以用 iPad 來操控它,比二代更有意思。
NXT 是可以一直從小學玩到大學的東西稍微大些就可以進階參加 FLL(FIRST LEGO League) 比賽了更進階的話,比如 CubeStormer 團隊搞的 CubeStormer 系列LOGO,而且有一種LEGO LOGO是可以寫程序控制一隻玩具烏龜爬行的,能學習簡單編程思想,寓教於樂。
scratch你可以先培養他們的編程思想同時還能快速創造作品
-
晚上本來準備再打一會無主之地的,結果看到這個問題下面那麼多質疑題主的,實在坐不住了。
質疑的人,我想多少低估了二三年級的孩子的學習能力。
要知道,孩子學編程的心態和方法不會和大學生或者是讀研、工作的成年人一樣。拿我自己舉一個例子。我上小學三年級時(大約是十一二年前)學校開始上計算機課(那個時候還叫微機課)。開始主要是教一些簡單的操作,很快學校就開了計算機興趣班。說來也奇怪,當時這個班的實驗性質比較強,一個微機老師帶我們二十來個主動報名的學生,開始講一些計算機基礎知識,然後教二進位,然後就開始教一些簡單的 QBasic 的語句規則。
與諸位設想的不同的是,當時一個班裡的同學學得非常快,其實整個小學階段真正上機寫程序也沒有幾次,但是一些基本的語言規則、編程思路大家都能掌握。當時很流行的一種電子詞典「文曲星」內置一個小的 Basic 編譯器(?),我大約在四五年級的時候學校數學課教到方差,我嫌按計算器麻煩,就自己編了一個十個數算平均數和方差的程序,雖然也沒有用過幾次,但是看到自己寫的東西真的有用,當時絕對是成就感滿滿。
(有一個知友建議讓他們學英語,還是以我自己為例,小學的時候英語水平很次,但是這絲毫不影響自己理解諸如選擇語句、循環語句和邏輯運算等等的概念,只是要記憶一些特定的字母組合。比如,等到以後真正學到了 square, 才知道 SQR 原來是這個貨。)
後來初中的計算機小組(形式和小學差不多)開始教 C 語言(沒錯,用的就是譚浩強老師的那本暢銷書),雖然語言規則不一樣了,但是有小學時候的基礎,但覺得每學一步都有以前印象中的知識對應,非常有意思。當然這些水平都只停留在比較基礎的層面上,也就是寫幾個簡單的小程序。
慚愧的是,上到高中以後,我沒有再參加類似的小組。不過據說他們學的也是 C,我覺得如果去學的話應該是有一些老本可以啃的吧。(大一學計算概論和數據結構與演算法的時候也算啃到一點老本呢。)
我在當時計算機小組中不算是優秀的,初中時很流行計算機競賽,我的很多高中同學、現在是大學同學的高中校友,都是計算機競賽加分或者保送上的高中,跟他們比起來,我覺得自己還是落後不少的。當然他們小學是什麼時候開始學編程的,我就不知道了。
對於題主的問題,我只能說,小學二三年級的學生,在經過一定計算機基礎知識的學習之後,完全具有理解簡單演算法的能力,甚至有編寫簡單程序的能力。甚至可以用學到的程序,幫助理解一些數學課上剛剛學到的概念,有相輔相成的效果。我當時學的是 QBasic,也許有更合適的,在其他知友的答案裡面看到一些。即便不用電腦,用流程圖寫演算法這種事情,總還是可以教,也是很好理解的。
PS. 那些對樓主想法嗤之以鼻的知友們,我想說的是,現在的境況和我十幾年前上小學是大不一樣,我家到上高中的時候才買的家用機,之前對電腦的了解限於計算機課和興趣小組。現在一年級的孩子也許就拿到一個 iPad 每天切水果,家用電腦很大程度上成標配了,你們難道真的以為要上微機課只能教簡單的操作?讓二三年級的孩子學一點編程,當然不是讓他們拿一本 C++ Primer 啃,也不用讓他們開發多大的程序,學一些二進位演算法,畫畫簡單流程圖,讓他們也能體會到自己想辦法解決小問題的樂趣,總比讓他們放假了去網吧在 LOL 上坑你們好吧。
必須logo啊,Vb也行吧……
不過二進位的話,得學了指數才好教吧……不過也行,別教二進位,你就直接教2,4,8,16這樣乘著玩,也能背下來,這是我五年級的時候自己乾的……
不過,數學這麼有趣的東西,當然要一步步學才最爽啊。你跳著教,真的會傷到學生自信,進而喪失對數學的興趣。會有一種習得性的無助感,等到他順利學到二進位,可能也不敢相信自己竟然能學會了……如果我教兒子學編程的話,首選Python。
原因:1. 夠簡單,最小的程序只需要一行代碼2. 跨平台,學會了可以用來解決各個平台的問題3. 功能強大,理論上幾乎可做所有應用層的開發,運行庫足夠豐富4. 發布簡單,純文本形式,無需編譯沒有makefile。現在他還小,不知道過幾年會不會有更好的選擇。用swift吧,最新的iOS10在iPad上的swift playgrounds挺好的,小孩象玩遊戲一樣學習編程。
你是有多喪心病狂,直接開始給二年級學生教編程啊。
你當然是先教他們電腦的基本操作使用了,比如word,ppt啥的。
我見過一些小學就開始學編程的,但是這種小孩一般父母都是科技工作者,從小接觸這些的。應該不適合你這個情況。
Scratch - Imagine, Program, Share
非常適合用來教兒童編程。不需要記憶那些難懂的關鍵詞,完全圖形化的界面。如下圖所示:
英語
====================居然上瞎扯了,吃飯的時候看到自己的答案感覺有點微妙呢。我在 github 看到了一個神奇的編程語言叫做
謝邀。。。html吧。。。可見即可得的東西,不用編譯。。。
basic。
qbasic我小學就是二年級開始學編程的。basic學起。先教英語吧。連英語都不懂那堆指令是什麼意思也不知道,還要死記硬背,搞什麼?數學也不好的情況下編程所需要的邏輯思維也不夠,除非你就想教一下hello world,但是他們知道hello world翻譯成中文是什麼意思嗎?
先教下開機,關機,windows系統的操作,如何上網,輸入法怎麼用,word跟ppt怎麼用吧。這階段真的連excel都不好教,因為二年級的孩子連平均數是什麼都不知道呢。
實在想教,也是上了中學之後,英語和數學都差不多夠用了的情況下的。我會教Ruby
推薦 Processing.org,我老婆大人學文科的,她都能學會。
曾經在網易公開課看到有說Scratch,說這貨是給國外小孩子玩編程的,至於我國小孩子玩得轉不轉,那估計要兩說了。不過編程最基本就是理解二進位,二年級小學生對於進位都沒概念,只是想當然的認為數數就是十個數,你告訴他,只用數兩個數,你讓他怎麼能夠想得明白,之後就是一堆為什麼,比如,2到9哪裡去了,既然有2到9為什麼不用來表示……
自己寫一個語言,量身定製。
你沒想想你二年級在幹啥,你老闆有沒有說過你的思維異於常人?還是你是來黑程序員的?
對了,你小心數學老師和急沒有人想知道哪種編程語言適合胎教嗎?————————忍不住吐槽,中國孩子的興趣和熱忱,就是被題主這種無知的傢伙給扼殺的。二年級的孩子,連人類語言的掌握都處在初級階段,你去教他晦澀堅深的編程語言,這不是扯淡嗎?他們除了死記硬背一行行自己完全看不懂的代碼,還能幹啥?讓二年級的孩子學習編程語言這種反人類的東西,除了給他們留下痛苦的記憶、扼殺他們的興趣順便殃及英語,能有什麼正面的作用嗎?你可別跟我說你那所農民子弟學校里的孩子個個是天才。我承認世界上存在極少數的天才,確實可以在二年級學編程,但是,你遇到這種天才的概率不會比你買彩票中500萬高!也許你那所學校里連一個這樣的天才都沒有,而你卻為了連一個都沒有的天才去給他們所有人開編程課,如果你不是來嘩眾取寵黑程序猿的,那你一定無藥可救了。還有,樓上有好幾位大神號稱自己小學學過編程,請曬出你們現在的職務以及供職的公司以及收入,讓知友們膜拜一下神通們如今的風采。否則,你們跟跟整天說「我祖上可闊了」的阿Q,沒有區別,我就當你們在放屁。
推薦閱讀:
※為什麼很多老師認為教材編的不好?
※家長辭去工作自己在家辦學堂教育孩子,這樣的行為算是違反相關教育法規嗎?比如剝奪了兒童接受義務教育的權利等?
※如何看待學校大力宣揚讓學生學美術?
※哪些道理沒人說也得懂?哪些雞湯人人說卻不能盡信?
※人之初性本惡?