大家好,我是逃媽。
最近真是有點喪,大家剛剛經曆了第一次感染高峰,受了不少苦,又陸續聽到一些嚴重的例子。
都還是有個艱難的過程吧,我們身在國外算是提前經曆了這些,挺過去就好,應該很快了。
告訴大家一個振奮人心的消息,掃掃陰霾。
還記得早些年,奧數火熱時代有個笑話不?
美國隊好不容易在國際大賽中拿了一次冠軍,奧巴馬來給隊員們道賀,一看傻眼," 搞半天還是中國隊啊?!"
現在,奧數不吃香了,類似的情況卻在「信奧賽」中重演。
在剛剛過去的第 45 屆 ICPC 國際大學生程序設計總決賽中,麻省理工 MIT 的代表隊獲得冠軍,團隊清一色華人孩子面孔!
咱們中國孩子就是棒!
其中最前面那個被隊友抱起來的超級大牛娃,鄧明揚(也叫 " 小乖 ",或 " 乖神 "),是小圖靈編程課總負責人乖媽的兒子:
大家留意到背景的那些公司 logo 了嗎?
它們既是比賽的贊助商,也是在現場觀戰,等着比賽一結束就展開遊說工作,搶奪人才的世界頂級企業。
當年發愁大學該上清華北大還是哈佛 MIT,現在發愁工作該選哪一家 ~
真是妥妥的别人家的孩子。
除了天賦秉異,家長掌握了信息差,引導得好,絕對也是小乖的成長秘訣。
乖媽自己就是計算機科班出身,從事編程教學工作,小乖在小高和初中階段,就已經是京城有名的編程小能手了。
當時一些敏銳的海澱媽媽開始私下攢班,自己租場地,請乖媽來上課。
後來,這樣的需求越來越大,乖媽就和清華姚期智院士所創立的圖靈研究所的名師們一起,組成了小圖靈編程課的教研團隊,走進人大附小、人大附中、北京 101、上海中學、北京科大附小……後來又開展了線上班,帶出一批又一批的信奧賽優秀孩子。
就在前幾個月,有個小學員的媽媽很開心地告訴我,她家寶貝 CSP-J 入門級拿了一等獎,已經順利拿到心儀初中的入場券了(等搖号會有 50% 的可能性被分到口碑比較差的學校,她不想冒風險)。
孩子有幾個常在一起上課外班的同學,她感覺從智力因素上看,自家娃不占優勢,但因為提早兩年就從奧數轉到了信奧,算占了先機。
她總結出的經驗是," 孩子該在哪方面發力,不能看當下的流行,要往前看幾年,看趨勢,估算到了娃升學的時候,那時候會更看重什麼。"
不得不感慨,眼光獨到,信息靈敏有多重要。
說實在的,别說幾年前了,就放現在,還是有很多家長搞不清楚編程有啥用,要不要學,是不是智商稅呢。
所以我也會隔三差五在咱們平台做下科普,盡一份計算機科班生的綿薄之力。
正好最近是美國信奧賽 USACO 的賽季,逃逃也在忙着備賽,趁這個時機,再來和大家随便聊一聊編程,幫助不太熟悉這個領域的家長們多做了解。
我舉例子的時候會用到簡單的代碼片段,大家看個大概就行,不要慌
Part.1
孩子學編程 , 主要是在學什麼 ?
孩子學編程,可以分為思維、語言、算法三個階段。
• 思維,通常是通過學習 " 圖形化編程 " 來獲得,用簡單易操作的方式,讓孩子掌握編程裡會用到的基本思想和知識:順序、循環、條件、變量、遞歸、函數、調用、調試等等。
舉個例子,我們要編一個程序," 求 1 加到 100 的和 "。
孩子可以像下面這樣,用圖形化編程來實現,其中的關鍵編程思想是" 循環 "(repeat),每次循環中,加數 a 增加 1,加到被加數 sum 裡;循環 100 次後,被加數 sum 就是我們要求的總數。
• 語言,要用到的編程思想和上一個階段幾乎一樣。但是,要用手工代碼敲出來。
比如還是剛才那個問題," 求 1 加到 100 的和 ",用 C++ 語言來編寫,是這樣:
int sum = 0;for ( int a = 1 ; a <= 100 ; a++ ) { sum = sum + a;}cout<< sum <<endl;
這裡的核心部分,for … .,也是個循環,它做的事情和剛才一模一樣:每次循環中,加數 a 增加 1,加到被加數 sum 裡,循環 100 次。
在 " 語言 " 階段,如果孩子之前有圖形化編程基礎,很容易上手,需要學的主要是這門語言的語法,使用規範等。沒有基礎的話,就得思維和語言一起理解,要稍微困難些。
換句話說," 圖形化編程 " 的階段不是必須的,它隻是降低了理解編程思維的難度和接受年齡,把基本功打得更紮實,讓後面的學習更順暢。如果孩子已經在小學中高年級了,可以直接從編代碼開始學。
很多家長糾結孩子該學什麼語言,我的建議是:
如果隻是想學編程,不打算往競賽方向發展,哪個都可以,Python、Java、C++ 等都行,它們都是應用非常廣泛的編程語言。
如果有往信奧賽發展的打算,直接選 C++。因為 C++ 是信奧賽指定語言,從入門的 CSP-J,到最後的 IOI,都指定使用 C++,學别的将來還要轉一道。
有些家長可能聽說 C++ 很難,其實從逃逃的備賽情況看,競賽題用到的 C++ 語法隻是 C++ 很小的一個子集,範圍沒有軟件工程上用的 C++ 那麼廣。C++ 中讓人頭大的内存管理、指針的指針,還有面向對象等内容,信奧賽裡都不涉及。
比如上面這段 C++ 代碼,用 Python 來寫就是下面這樣:
def sum ( ) : sum = 0 for n in range ( 1,101 ) : sum = sum + n return sum
print ( sum ( ) )
你說哪個更簡單更容易看懂?感覺也不相上下吧。
• 算法,在能靈活使用編程語言的基礎上,學習數據結構、算法,更聰明、更優化地去實現功能。
比如還是剛才那個問題," 求 1 加到 100 的和 "。但這次不是笨笨地從 1 加到 100,循環一百次去一個一個加了,而是用 "(首項 + 末項)* 項數 / 2 " 的高斯求和法去做,優化算法,降低複雜度,代碼也很簡潔:
int n = 100; cout << n* ( n+1 ) /2 <<endl;
算法階段,追求的是最優解。
我覺得,前面兩個階段,絕大多數孩子都可以勝任,關鍵看是否用功和有興趣。
到了算法階段,越往後走越要用到腦袋,我建議可以試探一下,如果孩子數理邏輯思維比較強,有興趣往下鑽,家長要大力支持;如果出現嚴重畏難抵觸情緒,就沒必要了,走到這裡,已經領先同齡人很多了。
下一步,就是進入信奧賽的競賽階段了。
Part.2
比起其他競賽
信奧賽更加 " 保值 "
這一點主要是針對美國的情況,我覺得蠻有意思的,大家可以對照看國内是否類似。
美國的奧數,是 " 競賽 " 形式;而信奧賽,是 " 考級 " 形式。
信奧賽 USACO,分為青銅、白銀、黃金、鉑金幾個等級,一級一級地過。今年過了青銅,明年接着從白銀打起就好。
但美國的奧數 AMC,從低到高分為 AMC10/12、AIME、USJ/AMO、MOP 這幾個級别,每年都得從頭開始。即便娃今年進入了 USJ/AMO,明年也會作廢,又要從 AMC10/12 考起。
用逃逃的話講就是,參加其他競賽,你隻能得瑟自己在哪年拿了什麼獎,但參加 USACO,你可以永遠吹噓自己是 " 黃金聖鬥士 "
當然,這是小屁孩的角度,從升學角度看,考級更加保值省勁兒。而且成長曲線也比較好看,一直在進步,好像潛力很大的樣子;競賽形式有些時候可能在退步,比如今年進入 AIME,明年因為在數學上投入比較少,就進不了,顯得成績很不穩定。
Part.3
越早開始越有利
因為題目一年比一年難
這一點,相信國内外是一樣的。
某個賽道,隻要湧進來的參與者越來越多,肯定會越來越卷,題目越來越難。
無論是競賽還是考級,都承載了人才篩選功能,分母大了,就得出各種奇招怪招來加大篩選力度。
比如早幾年 USACO 青銅級别的題目,基本上娃能熟練運用編程語言,就能過。因為它幾乎不看算法複雜度,隻要把功能實現出來就行;但這一兩年不同了,感覺難度總體往上擡了一截,沒掌握一些基本優化算法,基本上沒戲。
加上它本身又是能 " 保值 " 的考級形式,早過早當 " 聖鬥士 "
5 大學科聯賽裡,隻有數學和信奧在小學階段就能開始,物理、化學、生物至少得等到初中。
目前看來,關注數學的肯定比關注信奧的要多得多。
畢竟數學大家都知道重要,信奧很多家長還不知道是啥,存在信息差。所以還算是藍海一片,但可能也藍不了太久了~
還是得趁早。
EASTWEST
當然,以上的 " 升學 "、" 保值 "、" 趁早 "、" 藍海 ",都是比較功利的分析。
都是咱們當媽的,不想孩子被卷得那麼兇,受那麼大的苦,而琢磨出的一點 " 小聰明 " 分析。
其實,抛開所有這些,回到本質、初心,我還是那句話,語數外之後,下一個最具主科氣質,肯定是編程,因為它就是孩子的必備基本技能。
學好了,不虧。
直播預告丨寒假彎道超車,語文學習就靠閱讀和寫作!怎麼從小培養優秀的閱讀思維和寫作思維?有哪些高效實用的閱讀寫作技巧?今天中午 12 點來直播間,珍妮老師一個一個跟大家分享 ~ 直播間更有" 元旦 " 福利來襲,千萬别錯過!
【寒假彎道超車,就靠閱讀和寫作啦!】
點擊下方按鈕即可預約直播!