背景信息
學(xué)員介紹:
Circle,普頓學(xué)員,小學(xué)六年級(jí)開始自學(xué)編程,對(duì)計(jì)算機(jī)有濃厚的興趣,正在準(zhǔn)備信息學(xué)奧賽,但更感興趣的是計(jì)算機(jī)科學(xué)能怎樣用在生活中。
項(xiàng)目介紹:
ESAP,全稱Engineering Summer Academy at Penn,是在賓夕法尼亞大學(xué)校園內(nèi)舉辦的、為期三周的工程夏校。
課程方向一共有六個(gè),Biotechnology(生物技術(shù)),Complex Networks(復(fù)雜網(wǎng)絡(luò)),Computer Graphics(電腦圖像),Computer Science(計(jì)算機(jī)科學(xué)),Nanotechnology(納米技術(shù))和Robotics(機(jī)器人)。Circle作為出國(guó)留學(xué)黨中為數(shù)不多的OIer(信息學(xué)奧賽選手),選擇了計(jì)算機(jī)科學(xué)方向。
一、申 請(qǐng)
ESAP的申請(qǐng)給我留下的印象不多,畢竟它只是我申請(qǐng)的眾多夏校中的一所。不過我記得當(dāng)時(shí)在收到其他頂尖夏校的拒信時(shí),收到一張ESAP的Offer,是一件非常欣慰的事情。
申請(qǐng)需要提交文書以及簡(jiǎn)答題的答案,另外需要學(xué)校官方成績(jī)單、標(biāo)化成績(jī)、以及兩封推薦信。參加完夏校再來看申請(qǐng)流程,我得出的結(jié)論是,相比于提供理工科的硬性指標(biāo),申請(qǐng)者更需要體現(xiàn)自己在工程方面的熱情。我那時(shí)并沒有突出的理工科學(xué)術(shù)活動(dòng)成績(jī),但我記得當(dāng)時(shí)我選擇的文書題目是“闡述讓你想繼續(xù)學(xué)習(xí)工程的一次經(jīng)歷或一個(gè)概念”,文中主要描述的是面向?qū)ο蟮某绦蛟O(shè)計(jì)理念和現(xiàn)實(shí)生活的聯(lián)系。也許是因?yàn)檎猩賯兺高^文書看到了我對(duì)工程的熱愛,他們給予了我一個(gè)寶貴的學(xué)習(xí)機(jī)會(huì)。
二、學(xué) 術(shù)
計(jì)算機(jī)科學(xué)課程學(xué)習(xí)的主要內(nèi)容就是Python。官方的課程建議是,這門課程適合沒有編程經(jīng)驗(yàn)或者對(duì)編程不熟悉的人參加,事實(shí)上也確實(shí)如此。體驗(yàn)之后發(fā)現(xiàn),該課程對(duì)于編程經(jīng)驗(yàn)豐富的同學(xué)來說易如反掌;然而對(duì)于新手而言,這門課是相當(dāng)硬核的。
課程的前兩周,是對(duì)于Python基本知識(shí)的學(xué)習(xí),包括各種語句、基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο缶幊痰鹊取6n程的第三周,我們需要完成一個(gè)Final Project,即做一個(gè)游戲或者做一個(gè)和網(wǎng)絡(luò)爬蟲有關(guān)的小課題。平時(shí)的課程由教授講授,并且有相關(guān)的練習(xí)題需要我們完成,完成后由助教進(jìn)行打分。當(dāng)然,如果在課堂上提前完成了布置的練習(xí),可以拿Extra Work,或者去參加助教不定期開設(shè)的Mini-Lecture,講解一些額外的內(nèi)容(例如,圖論、博弈論、移動(dòng)應(yīng)用程序開發(fā)等等)。
前兩周有不少有趣的小練習(xí)。練習(xí)的目的是用一種有趣的方式,讓我們把已經(jīng)學(xué)習(xí)的各種編程語句以及編程思想進(jìn)行應(yīng)用,比如說,如何提示用戶輸入操作信息,如何以一定的概率執(zhí)行某條語句。大概第二天的時(shí)候,我們就開始做“Hammurabi”,一個(gè)古老的電腦游戲。玩家將扮演“漢謨拉比”,買進(jìn)或者賣出土地,給人民分配糧食,以及安排農(nóng)耕。玩家需要盡可能積累谷物,并嘗試讓自己的國(guó)家發(fā)展起來。當(dāng)然,隨機(jī)的災(zāi)害會(huì)發(fā)生,老鼠會(huì)啃掉農(nóng)作物,瘟疫(我把它稱為“滅霸的響指”)會(huì)殺死一半的人口,玩家需要根據(jù)此調(diào)整自己的策略。
事實(shí)上,這個(gè)游戲的邏輯比我想象的要復(fù)雜一些。比如說,防止一些無意義的輸入影響游戲運(yùn)行,處理收成、鼠害、瘟疫的隨機(jī)化,判斷什么時(shí)候該結(jié)束游戲,結(jié)束游戲后怎么對(duì)玩家的表現(xiàn)做出評(píng)價(jià),等等。
課程進(jìn)行到第二周,隨著講課的重心漸漸向理論轉(zhuǎn)移,老師布置了一個(gè)叫做“Tower Blaster”的作業(yè)。這份作業(yè)要求和一個(gè)伙伴完成,搭檔是由助教結(jié)合每個(gè)人的特點(diǎn)匹配的。這也是一個(gè)游戲,每一個(gè)方塊上都寫有一個(gè)數(shù)字,玩家要嘗試用隨機(jī)生成的方塊替換自己塔里的方塊,先于敵人使得自己塔上的數(shù)字單調(diào)遞增。這個(gè)游戲最有意思的地方在于策略。我和我的伙伴一起研究出了一個(gè)基礎(chǔ)策略,并對(duì)它進(jìn)行優(yōu)化。最后,我們還嘗試讓兩個(gè)AI對(duì)抗進(jìn)行游戲,并統(tǒng)計(jì)它們的輸贏情況。在這個(gè)過程中,我感性地體會(huì)到了計(jì)算機(jī)處理數(shù)據(jù)速度:十萬局游戲,在大約三秒鐘的時(shí)間內(nèi)就可以完成。
第三周的Final Project,我自己組建團(tuán)隊(duì),受啟發(fā)于Terraria(泰拉瑞亞,一款有名的2D沙盒游戲),制作了一個(gè)生存游戲。實(shí)際上,這一周才是課程的精髓,也是整個(gè)Program最累的一周。剛開始的過程也非常不順利,首先是一個(gè)又一個(gè)的Bug,再往后是程序?qū)崿F(xiàn)邏輯的問題:比如怎么檢測(cè)碰撞、怎么生成怪物等等。還有的時(shí)候,我為自己的程序中類和對(duì)象該怎么設(shè)計(jì)絞盡腦汁,連從食堂回宿舍的路上都在想怎么制作劍和方塊。一周時(shí)間,我們寫出了約1000行代碼的程序,并在Final Presentation那一天進(jìn)行了展示。
Final Presentation形式上類似于一個(gè)Fair,沒有固定的Lecturer和Audience。每一個(gè)人都有一個(gè)“攤位”用來展示自己的電腦程序。當(dāng)然,隨時(shí)可以去另一個(gè)攤位看或者玩別人的游戲。
我印象中還有人做出了簡(jiǎn)易版Minecraft(我的世界,3D沙盒游戲,前文所提Terraria的鼻祖),還有超級(jí)馬里奧和Flappy Bird。雖然我個(gè)人感覺他們的程序?qū)崿F(xiàn)的功能沒有我們的多,但是從這個(gè)夏校的意義來看,寫游戲是為了通過一種自己最喜歡的方式,體驗(yàn)像計(jì)算機(jī)科學(xué)家一樣思考的方法。從“鼓勵(lì)”的角度出發(fā),教授對(duì)于每一個(gè)游戲的評(píng)價(jià)都非常高,都指出了里面非常值得肯定的地方。
三、課外活動(dòng)
ESAP的課外活動(dòng)相當(dāng)豐富且有趣。第一天的Ice Breaker就讓我耳目一新:教室中所有人要按照年齡從大到小的順序站成一隊(duì)。這個(gè)活動(dòng)不僅能夠促進(jìn)同學(xué)們的交流,還可以引入“排序算法”的話題。最后,教授問我們都用了哪些排序方法,有同學(xué)提出讓2001年、2002年、2003年出生的人分別站在一起,這便是“桶排序”;有同學(xué)提出“向前走,直到遇到第一個(gè)比我大的人“的做法,這便是“插入排序”。
第三天還有一個(gè)刺激的“Electricity”游戲。玩法大概是所有人分成兩隊(duì),左手牽著前面的人的右手,右手牽著后面的人的左手,當(dāng)助教給出信號(hào)的時(shí)候,第一個(gè)人要捏下一個(gè)人的手。對(duì)于中間的人,如果前一個(gè)人捏了自己的左手,自己要用右手馬上捏下一個(gè)人的左手。這樣相當(dāng)于兩條“電線”傳遞一個(gè)信號(hào)。當(dāng)最后一個(gè)人的手被捏的時(shí)候,要趕緊把地上的一個(gè)瓶子撿起來。這個(gè)游戲最有意思是信號(hào)傳輸?shù)臅r(shí)間往往會(huì)比想象的要久(總時(shí)長(zhǎng)往往要好幾秒),而且有的時(shí)候還會(huì)有人在沒收到信號(hào)的情況下捏手,導(dǎo)致瓶子無故被搶走。
至于日常的在Lounge吃零食、看電影、下棋打牌等等活動(dòng),也能很好地促進(jìn)同學(xué)之間的友誼。不過我經(jīng)常做的事就是和同學(xué)們?cè)诰W(wǎng)上玩你畫我猜(捂臉)。
關(guān)于CS的Field Trip,盡管頻率大約只有一周一次,但每一次都給我留下了很深刻的印象。第一周周末去了Six Flags,有世界上最高的過山車京達(dá)卡(不敢坐),一下午的時(shí)間,我竟然滿足于坐小過山車 +?用右手原則走鏡子迷宮 +?尋找所有的紀(jì)念幣鑄造機(jī)。我拍了京達(dá)卡的照片,從此也算是一個(gè)見過世界最高過山車的人了。
第二周周中去了一次首都。首先參觀了教授以前工作的地方(Applied?Predictive?Technologies,現(xiàn)在屬于Mastercard),里面的工作人員講解了他們使用的預(yù)測(cè)技術(shù),還給我們出智力游戲來解。我最喜歡APT的一點(diǎn)是它在細(xì)節(jié)方面的新穎。比如說,為了激勵(lì)員工的斗志,公司用類似于霍格沃茨分學(xué)院的方式分了五個(gè)“學(xué)院”。接下來,就是做和旅游團(tuán)非常類似的事情:逛航空航天博物館、去美國(guó)黑人歷史博物館、等等。由于路遙車塞,回到費(fèi)城的時(shí)候都已經(jīng)差不多22:30了,于是教授把第二天上課推遲了一個(gè)小時(shí)(睡眠 +1h)。
四、日 常
賓大的食堂,我們常去的有兩所:Hill和Houston。Hill的優(yōu)點(diǎn)是便宜、管飽,缺點(diǎn)是每天不變樣(每天早上固定的炒蛋+香腸+土豆)。Houston的優(yōu)點(diǎn)是樣式多(壽司、披薩、通心粉等等),缺點(diǎn)是排隊(duì)的人一般很多,還有幾率找不到座位。
宿舍相當(dāng)舒適,是一人一個(gè)小房間的Suite,有冰箱和電磁爐,房間非常寬敞,但晚上外面有點(diǎn)亮(我曾經(jīng)在朋友圈配上窗外夜景然后呼吁:Let there be dark)。
百貨超市離宿舍約200米,基本上需要的東西都可以在那里買到(大箱的瓶裝水特別便宜)。附近有星巴克以及各種地方餐廳(似乎有兩三家中國(guó)餐廳),只要在界內(nèi)(非常寬,左右橫跨七八條街),就能去吃。
賓大的健身房,設(shè)施齊全(兩層樓,一層有氧一層力量),跑步機(jī)上可看視頻(國(guó)內(nèi)大多數(shù)做不到)。當(dāng)然,里面有相當(dāng)多的硬核健身者。
美中不足的地方,可能就是教室和食堂離宿舍比較遠(yuǎn)吧,印象中走路要至少二十分鐘。Bookstore的位置也不是很友好,也要走十幾分鐘。一句忠告:不要Move-out之后再去Bookstore。我當(dāng)時(shí)沒安排好,急急忙忙跑到了Bookstore買了點(diǎn)東西就走了。
五、感 悟
對(duì)于ESAP,我的感觸頗深,不能在這篇文章里說盡,只能挑幾點(diǎn)略作展開。
首先,Pair Programming的機(jī)制非常符合未來發(fā)展趨勢(shì)。未來軟件開發(fā)業(yè)的工作將非常強(qiáng)調(diào)團(tuán)隊(duì)合作,而在ESAP上,學(xué)生們也要兩人搭檔,共同完成一份程序。實(shí)現(xiàn)Tower Blaster的時(shí)候,我和一位美國(guó)本土的高中生分到了一組。于我而言,分組給我?guī)淼淖畲笫找媸亲屛业乃悸纷兊酶忧逦R婚_始,我會(huì)和他一起寫偽代碼。而且,當(dāng)我想要實(shí)現(xiàn)一個(gè)功能的時(shí)候,我會(huì)一步一步地把它描述給我的伙伴聽,他也會(huì)提出有益的建議。程序員界有一種“小黃鴨調(diào)試法”,即通過把自己實(shí)現(xiàn)這個(gè)算法的邏輯講給一只玩具小黃鴨聽來幫助調(diào)試程序,而這種方法和Pair Programming有異曲同工之妙。
其次,通過這次夏校,我對(duì)計(jì)算機(jī)科學(xué)的意義有了更深入的理解。國(guó)內(nèi)的許多孩子學(xué)習(xí)信息學(xué)奧賽也許是為了保送名校,他們中間許多人對(duì)專業(yè)知識(shí)的掌握非常牢固,能夠把許多大學(xué)生都“了解即可”的知識(shí)爛熟于心。但是他們并不一定會(huì)像ESAP中的學(xué)生一樣去思考計(jì)算機(jī)能給他們帶來什么。
在ESAP中,許多學(xué)生之前甚至沒有接觸過計(jì)算機(jī)編程,但是他們清楚自己想拿計(jì)算機(jī)去做什么,也更關(guān)注當(dāng)前社會(huì)發(fā)展的趨勢(shì)。我記得在Final Project的展示中,有一組女生用網(wǎng)絡(luò)爬蟲做出了一個(gè)地區(qū)強(qiáng)奸發(fā)生率的查詢系統(tǒng)。盡管這個(gè)項(xiàng)目實(shí)現(xiàn)起來幾乎沒有邏輯上的難度,但是卻有很大的社會(huì)意義。這也恰恰印證了廣為流傳的這一說法:“我們以前學(xué)習(xí)英文,不是為了成為翻譯官;我們以前學(xué)習(xí)打字,不是為了成為打字員;我們現(xiàn)在學(xué)習(xí)編程,同樣也不是為了成為程序員。”
希望我能有一天從俯視的角度看待信息學(xué)奧賽,看清它對(duì)我人生的價(jià)值。
以上就是關(guān)于【計(jì)算機(jī)夏校之旅】的解答,如需了解學(xué)校/賽事/課程動(dòng)態(tài),可至翰林教育官網(wǎng)獲取更多信息。
往期文章閱讀推薦:
頂尖數(shù)學(xué)夏校ROSS&G2 MATH申請(qǐng)即將截止!錯(cuò)過再等一年!
如何申請(qǐng)G2 MATH數(shù)學(xué)夏校?2026年詳細(xì)步驟指南來了!

? 2026. All Rights Reserved. 滬ICP備2023009024號(hào)-1