CMU--计算机学生向往的殿堂

以一个APEA student的身份探索美国卡耐基梅隆大学
带大家游览一遍这所大神云集、学术氛围极强的学校

这个夏天,我在美国宾夕法尼亚州小小的匹村(Pittsburgh)参加了美国卡耐基梅隆大学(Carnegie Mellon University,下文简称CMU)的APEA项目。这个项目旨在让全世界高中生接触CMU给大学生开设的课程,培养学生对于不同科目的兴趣,并让他们对CMU有一个更加深入的了解。

本文大致会讨论CMU及其校园生活,APEA项目,和CS专业的种种。

About CMU

CMU,卡耐基梅隆大学,坐落于宾州匹兹堡, 拥有享誉全球的计算机学院和戏剧学院,其艺术学院,商学院,工程院以及公共管理学院等也都在全美名列前茅。

大家一提起CMU,估计想到的便是计算机,她的计算机专业被US News排为全美第一,与斯坦福、MIT、加州大学伯克利分校共同享有着“CS四大院校”之称。同样,她在戏剧方面也极有造诣,培养出了9个奥斯卡,114个艾美奖以及44个托尼奖得主, 在2016年被好莱坞记者报排在全美第三。可见,CMU是当之无愧的“美国第一职业学校”。

若是这种功利性排名和数字并不让人信服,也许真正走近她才能深知其水平所在。
CMU校园不是特别大,主校区也就0.58平方公里这么大,若是想绕着校园慢跑,估计半个小时跑下来是可以跑完一整个主校区的,但无论如何,校园肯定肯定肯定比国交大

CMU有一个我极其喜欢的地标,叫做“Walking to the Sky“,这是一根高高有些倾斜的柱子,凭空矗立在主校区的草坪上,上面走着各式各样的人——学生,白领,小孩,家庭主妇,他们越走越高似乎想打破一切界限、挣脱一切束缚,走入云霄,即为其名“Walking to the Sky“。(也许我过度解读了,但是我真心喜欢)

About AP/EA

我参加的这个APEA项目,通常也叫做CMU的pre-college,不过APEA的director再三强调,这个pre-college实质上是和college给予的课程内容是一样的,只不过是因为我们都是高中生,才冠以pre的前缀。

CMU的大一学生通常要选五门课并需要修一个学期(十五个星期),而APEA学生则是要在六个星期内修完两门课一个学期的内容,可见,APEA的学术性是差不多和CMU的freshman year划等号的。

对于我或者任何一个APEA学生来说,这个项目是极具挑战性的。

APEA课程体验

我在这个项目里选的两门课分别为15-112 (Fundementals of Computer Science and Programming)和36-200(Reasoning with data),一门计算机科学、一门统计,都为CMU非常热门的Freshman courses,很多大一学生都会选这些课来刷学分。接下来我会大概讲讲36-200,然后重点去讲被誉为CMU计算机神级入门课的15-112

36-200

36-200(Reasoning with data)是一门入门统计课,其内容上和A Level的S1和AP statistics会有所重合,难度系数会稍微比他们高一点点。不同于S1和AP stats强调各种统计的Terms和公式,36-200更主要是在讨论统计的本质和意义,在解释统计公式的同时,还让我们思考更多统计的有效性和实质性。

36-200有两个教授讲课,分别负责理论和Lab。
理论每周有三堂课,每堂课教授都会为我们印一份lecture的讲义,并且会不辞辛苦地为我们写出每一道例题的解题思路和步骤,这个教授特别的慈善和蔼,我们每周都会有算入总成绩的quiz,即使题目都不算难,教授通常也都会耐心地等待所有学生都写完了才收卷,完全不顾已经超时了很久了。
Lab每周有两堂,通常在一个电脑教室进行,主要的工作是让我们学生去学习研究各式各样的数据库,并且鼓励我们去在各种各样的变量和数字里去找到联系,去make sense。负责lab的教授跟我们强调,公式不是重点,重点还是数据与数据的关系。

最后的期末考也分为两部分,一个Term project,一个期末paper。Term project是从一个data base做出几个Scenario设想并且做一个Presentation出来,我研究的是学生出勤率和各种因素的影响,使用了一份欧盟学术研讨会里的学术报告中的数据库来进行分析,最后的得分算是挺高的了——98。期末paper算是特别容易了,主要还是开卷考,可爱的教授还给了我们一份特别详尽的formula sheet,基本上什么都不用记就可以进考场了。
36-200总体而言,比起15-112来讲是特别轻松了,每当我在15-112的quiz考砸的时候,36-200的分数便会给我一丝小小的安慰。

15-112

15-112(Fundementals of Computer Science and Programming)是CMU最受欢迎的CS课程,在CMU这种全民CS的地方,无论你是学数学,学工程,甚至是学drama,你都会去学和计算机沾边的课程,在CMU,大部分教授都会持有一种观点,就是你不学点电脑就可能找不到工作……所以15-112这个CS入门课是广受大家追捧,其课程创办者David Kosbie,也是特别受CMU学生爱戴,他的座右铭“Carpe Diem”也是被他的学生广为传颂。很遗憾,负责这次AP/EA的15-112讲师并不是David Kosbie本人,而是一个更年轻的教授,他的教课水平也特别的高。

15-112主要讲的是python语言,讲课速度是特别的快。理论上说15-112不需要任何计算机编程基础,但是在来CMU之前,APEA学生还是得做一个placement test并达到一定分数线才能被分进来。第一次上课的时候Professor问这里都有多少人学过一种或多种计算机语言,几乎所有人都举了手。所以讲课的时候,教授都默认大家都会编程,知识点过的非常快,每次我们问关于语言语法的问题的时候,教授通常都会让我们自己下课去play around,搞得大家都很无奈。

15-112每天会有两节课,一节上午的lecture和一节下午的recitation。上午的lecture是由Professor来讲,讲大纲上的基本知识点的内容。下午的recitation是由TA(Teaching Assistant)带,这里要提一提
15-112的TA,他们都是现CMU大学生,绝大多数都是David Kosbie带出来的学生,他们的计算机水平在我看来都是业界极高的存在。这些TA都有统一的蓝色15-112TA制服,而且每天都会穿着,可以看出来他们是多喜爱做15-112TA这个身份。也正是因为有着这一群TA的存在,CMU的师生比才可以达到可怕的1:5的境界(我们15-112班上共有60名学生,而TA却有十多人)。虽然TA会讲得更加细心,但是比起lecture却更有难度,在recitation里面TA会讲更多的算法和难题,每个TA都是经验极其丰富的程序员,写起代码来那是特别的快,一眨眼睛的功夫他们就已经边讲边写了十几行了,所以稍不留神可能就跟不上TA的思路了。

除了Recitation,TA们还会组织很多小组学习或者tutoring,每天下午两点开始都会有Office Hours,所以说他们是尽心尽责地想让我们提高自己的成绩,对此我是打心底的感激。

15-112的作业是非常多并且非常有难度的,基本上现在做的作业还没做完,下次的作业就接踵而至,为了赶due,学生们都是天天晚上喝double-shot和monster,每天不熬个一两点就是不正常的了,这也正是我在CMU吃的很多,反而瘦了八斤的原因。这些作业通常都是做算法或者处理方式,所以说一般都由autolab自动批改记录分数,你写的代码是怎样就怎样,能return正确的值就对,不能就是错,及其残忍。而且Professor对于我们写的代码的style也是非常严格:一行代码不能超过80个字符;不能随意未赋值计算;不能有超过五个缩进;一个函数不能超过20行……为了满足style的要求,我是吃了不少的苦。

在作业如此多的同时,15-112每周也会有记入最终成绩的quiz,难度系数高而且时间给的少,因此我的分数波动也特别大,还好每次考砸,我还能在office hours去找TA哭诉。

最后再讲一下15-112的两个期末:同样一个term project,一个final paper。
Term project是一个极其耗时间的项目,在我看来,这难度是比final paper要难上不少的。Professor给学生六天时间,用python做出一个project出来。我做的是一个2D射击游戏,主要的复杂点在于敌人的AI,敌人可以在合适时机展开对主角的射击,并在合适时机进行自我补救等。在做15-112的Term的六天里,我是没有休息多少,吃饭睡觉打豆豆的同时永远会想着如何改善程序的efficiency和修复漫天繁星的bug(而且我当时还不能忘记去顾虑36-200的term project,确实是挺崩溃的)。最后我的term是勉强拿了一个90分,打心底来讲还是特别的满意的。后来,我听说大学生上这个课有三周的时间去做这个term,我心中也就只能惨然一笑吧。
15-112的Final paper不像36-200的那么轻松,是个闭卷考,虽然难度系数上没有每周的quiz这么高,但是考量了学生们六个星期所有学习内容,所以还是特别有挑战性的。

CMU大学生活

在CMU生活的长长六个星期里,第一个感受到的就是不容易,当所有人在其他夏校里各式各样地发朋友圈的时候,在CMU的我们几个国交学生就大致一笑了之吧——CMU的distraction是真的少。什么吃的喝的玩的,都在远远的downtown。学校虽然每周末都会组织一些出游,但是对于选择计算机课程的学生来讲,这些都太奢侈了——太花时间了,我们为了赶due,基本上在CMU的场所就两个:Commons和宿舍书桌前。所以说,卡梅真的是一个很好的地方让人静心学习,这里真心没有多少让人分心的东西。

再加上几个大家通常会很关心的点吧

  • 宿舍有洗衣机和自动烘干机非常棒
  • 有些宿舍没空调只有风扇,不过天气算是很凉快
  • CMU有(据说)十个吃的餐厅,有一个还可以的亚洲餐厅叫INoodle
  • 便利店通常每天傍晚六点就关门,星巴克、奶茶店(都挺远的)也是

结语

总体而言,对于热爱学习特别是喜欢CS的朋友们,CMU绝对该是你的Dream School,只要你是那种有毅力有恒心的学习狂,保证会被CMU的学习氛围所吸引,在这里,有着无数大神,若是能进入这个圈子,一定能长很多见识。