近日,各大高校陸續發布2017年自主招生簡章。
(不要這么嚴肅好不好?好吧。。。)
其中清華大學招生領導小組給出的招生申請條件第一項就是:
“1.研究創作類:在科技發明、研究實踐、文學創作等方面具有突出表現的學生。”
北京大學(引用2016年的內容)給出的申請條件第一項也是:
“1、有發明創造或參加科技類、人文社科類競賽全國決賽或國際比賽獲得優異成績者;”
其他高校也是遙相呼應啊,比如中國第一所近代大學天津大學(北洋大學堂的前身)在今年3月27日給出的自主招生簡章里就明確規定報名條件是:
“(一)高中階段參加全國中學生學科奧林匹克競賽(數學、物理、化學、信息學)、青少年科技創新大賽(青少年創新項目)等競賽,獲得省級賽區一等獎(含)以上;
(二)高中階段獲得全國中小學生創新作文大賽高中組全國決賽特等獎;
(三)高中階段以第一發明人身份獲得國家授權發明專利;
(四)在學科特長或創新潛質方面有突出才能或極大潛力(要求自附詳細材料說明)。”
由此可以看出清華北大最先重視的就是有研究和創新能力的高中生,而天津大學作為傳統工科強校,提出的四個報名條件里有三條是和創新,研究相關的能力,比如科技創新,發明,創新潛質。
這些能力并不虛,而是可以通過申請人的簡歷一目了然地看出來。
作為一個在理工科學習和研究將近10年的博士生,我看到一份簡歷,就能大概知道對方的水平在什么層次,是門外漢,新手,剛入門,還是老司機,額,錯了,是老師傅。
因為簡歷可以反映申請人到底有沒有做項目的經歷,申請人的思想、喜好、以及目前所擁有的創新能力。因為創新能力可以后天培養,所以簡歷里還基本反映了申請人對研究的喜愛和努力程度。
那些在高校里做了幾十年研究的老教授們呢?他們比我見過更多的學生,帶過更多的研究生,基本上一眼就可以把這個孩子的潛力看得八九不離十。所以沒有實力的申請人必然會被淘汰,而那些越早接觸科研的學生,就會越有優勢。
我在這里也提醒大家,如果想讓自己的孩子在未來有一個好的出路,就算不申請名校的自主招生項目,也要盡早培養孩子的好奇心,和對科學研究的興趣。因為孩子未來能解決多大的問題,直接決定孩子未來人生的高度。
關于這些我們未來再仔細探討。
千里之行,始于足下。
我們要讓孩子從培養興趣和打好編程基礎開始,學習CodeMonkey這個編程游戲里相關的編程知識。
今天我們繼續學習“函數”王國的最后5關:第81-85關。
第81關
本關一開始,猴博士告訴咱,不要擔心,這一關我們只需要改一點就可以通關啦。
來看看這一關發生了什么事情:
我們看到,小老鼠和要撿的火柴之間擱著一座木橋,它需要經過木橋,撿起火柴,然后往回走,再次經過木橋,從而把火柴放在火柴堆上。
這是右側代碼框里已有的代碼:
我先解釋下這些代碼:
第1-3行:定義goto函數,這個函數在我們之前的教程里已經有大量用處,這里不再解釋。
第4,5行:注釋行,告訴我們下面的crossBridgeTo這個函數需要被修復。
第6-8行:定義crossBridgeTo函數,函數的作用對象被定義為p,這個函數的作用是讓小老鼠先走到木橋,再走到函數指向的對象p。所以第7行應該改為“goto bridge”。
第9行:注釋行,說明第10-13行的代碼沒有問題。。
第10行:把crossBridgeTo函數作用于match,即火柴。
第11行:讓小老鼠撿起火柴。
第12行:把crossBridgeTo函數作用于pile,即火柴堆。
第13行:讓小老鼠放下火柴。
修改后的代碼可以是這樣:
還等什么?點擊運行,看看效果吧!
通關!
第82關
這是第82關!
在左側的畫面里,小老鼠和火柴堆在小河下方,而三根火柴在小河上方,小河上有一座木橋。
這一關與上一關的差別是,這一關里小老鼠需要去撿三根火柴,而上一關小老鼠的工作量只有一根火柴。
有了之前學過的for循環,別說三根,就算給我1億根,我也能讓小老鼠撿完。
我們先看看右側的代碼框。
第1-3行:定義goto函數。
第4行:注釋行,說明第5-7行的代碼沒有問題。
第5-7行:定義crossBridgeTo函數,即先走到木橋,再走到函數的對象v。
第8-11行:注釋行,告訴我們通過crossBridgeTo函數,要讓小老鼠帶著對象z走到火柴堆。
第12行:開始定義collectThruBridge函數,對象用“z”代替。
第13行:注釋行,需要修改,從而定義collectThruBridge函數。
第14行:注釋行。
第15,16行:對于小河對面的每一根火柴,都用collectThruBridge函數作用于它從而把所有火柴都撿回到火柴堆里。
下面是我給出的一個解決方案:
大家重點看第14-17行,因為collectThruBridge這個函數的目的是讓小老鼠經過木橋,走到某根火柴,撿起它,回到木橋,走到火柴堆,放下撿來的火柴。
所以我的解決方案是:
第14行:經過木橋走到某根火柴那里。
第15行:撿起火柴。
第16行:經過木橋走到火柴堆那里。
第17行:放下火柴。
點擊運行,看看效果吧(只放了一部分效果)。
通關!
第83關
第83關,猴博士提醒我們,像islands,rafts之類的物體也可以作為函數的參數來使用。
其實這里的表述不是特別嚴謹,所謂函數的參數,應該改為函數的對象更為合適一些。
我們來看看這一關的畫風是怎樣的。
在左邊的畫面框里,我們看到老鼠需要先走過6個小島,即islands,走到火柴那里,然后撿起火柴,再經過6個木筏,即rafts,最后把火柴放在火柴堆上。
在右邊的代碼框里,我們看到已經給出的函數是這樣的:
第1-3行:定義goto函數。
第4行:注釋行,告訴我們在第5-8行里有問題,我們需要解決這個問題,才能讓小老鼠完成我們的目的。
第5-8行:定義gotoAll函數,這是因為goto函數只能一次做一個操作,比如goto島a,那么只能走到島a,走到島a之后就不再行動了。但是這里一共有6個島,除第一個島之外,小老鼠需要走過5個島。為了簡單起見,就用gotoAll來執行這樣的操作:讓小老鼠走過所有的對象。那么我們看到,第7,8行有點重復第2,3行的內容,其實用一句“goto s”就可以代替了。
第9行:注釋行,說明下面幾行需要被修復。
第10行:讓小老鼠經過所有的島。
第11行:空行,這里小老鼠需要執行撿起火柴的操作,所以需要寫上一句grab()。
第12行:讓小老鼠經過所有的木筏。
第13行:空行,這里小老鼠需要執行放下火柴的操作,所以需要寫上一句drop()。
我給出的代碼如下:
我們可以點擊試試,看看效果!
通關!
第84關
這一關我們需要借用烏龜來讓小老鼠在小河上移動起來。
這難度比前幾關要難一點,因為前幾關的木橋是不能移動的。
在左側的畫面框里,小老鼠在烏龜的背上,需要上去撿起火柴,然后返回到烏龜上,此時的烏龜可以被視為前幾關里的木橋,小老鼠接著把撿到的火柴放在火柴堆上。然后烏龜此時移動起來,讓小老鼠可以去撿其它幾根火柴,此時烏龜的功能比前幾關的木橋更強大,相應地,我們也需要寫相關代碼來操控烏龜。
以下是系統給出的代碼:
第1-3行:定義goto函數。
第4-6行:注釋行,告訴我們需要做什么。
第7-10行:定義getAndReturn函數,對象為r。顧名思義,這里的r應該是火柴,我們需要走向r,撿起r,然后返回到出發的位置。
第11,12行:注釋行,我們可以改動來延續第7-10行要完成的任務。
第13行:注釋行。
第14-19行:for循環,讓小老鼠把火柴m撿起并返回,走到火柴堆,放下火柴,走到烏龜背上,烏龜向左走8步。
我給出的解決方案如下:
在第11,12行里,我讓小老鼠撿起火柴,并且往回走d步。
這下子,getAndReturn函數就完成了讓小老鼠“面向火柴”(turnTo r),“定義d為小老鼠與火柴之間的距離”(d=distanceTo r),“走d步”(step d),“撿起火柴”(grab()),“往回走d步”(step -d)的操作。
點擊運行,看看效果吧!因為持續時間過長,我只放了一部分效果,以后運行時間越來越長的時候,我會把過程分成幾個動圖來顯示。
過關!
第85關
猴博士告訴我們,我們可以把函數的參數設為數字。
整體界面如下:
在左側的畫面框里,我們看到小老鼠在最上方,三個烏龜分別趴在三條河里,這里我們需要讓三個烏龜動起來,從而讓小老鼠過河。
來看看已有的代碼:
第1-3行:定義goto函數,對象為t。
第4-8行:定義collect函數,對象為m,即讓小老鼠收集m:走向m,撿起m,走向火柴堆,放下m。這里的m應該是火柴。
第9,10行:注釋行,讓下面的第11-13行代碼(allTurtlesStep函數)執行“讓所有烏龜前進d步”的指令。
第11-13行:完成allTurtlesStep函數。
第14行:注釋行。
第15-18行:“所有烏龜前進10步”(第15行),“小老鼠收集火柴0”(第16行),
“所有烏龜后退10步”(第17行),“小老鼠收集火柴1”(第18行)。
我給出的代碼是這樣的:
第11-13行要完成allTurtlesStep函數,所以我用一個for循環,讓每一只烏龜都前進d步。
點擊運行,看看效果!
這是小老鼠收集火柴0的過程:
這是小老鼠收集火柴1的過程:
通關!
是不是很開心?
在這5關里,我們闖過了“函數”王國里的最后5關。這一共15關(第71-85關)的“函數”王國,讓我們學會了如何定義函數來完成某些需要重復執行,先后執行的操作。這些函數的功能還是很強大的。
在接下來的15關里,我們將要學習如何利用“直到”(until)來完成一些不知道要循環多少次的循環指令。
希望大家喜歡!