留学生活
当前位置:首页 > 留学生活 >
加州大学伯克利分校交流小结
时间:2019-05-22 15:38 来源:未知 作者:stuex  点击:

计算机科学与技术 兰方舟 161220059

我来到伯克利的方式是与大多数人不同的。由于发现上海-洛杉矶-旧金山的机票价格低廉,我和另一位室友贪心的选择了分别购买两段机票,中间预留了接近四个小时。然而没有想到,2018.1.15这天,在上海浦东机场10个小时的晚点把我们的计划完全破坏了。原本下午一点到达洛杉矶,最后却在凌晨时分才狼狈抵达。由于从洛杉矶到旧金山选择了廉价航空,改签是不可能改签的,任何补偿都没有。为了赶上BISP的迎新,我们忍痛订了洛杉矶另一机场到旧金山的全价机票。异国他乡,没有了移动支付,甚至不知道该怎样打车。我们折腾了好久的app,才在深夜里战战兢兢的坐上了一位印度大叔的车。车在寂静的公路上极速奔驰,放着奇怪的音乐,仿佛能闻到大麻味。一个多小时后,我们连夜赶到了另一机场,交出了堪比机票钱的天价车费。最后,我们在超过24个小时的通宵旅途之后,呼吸到了Berkeley秋日清晨的空气,有惊无险的赶上了迎新活动。

一方面,Berkeley的餐馆很多,但价格通常10$起步。本地菜的餐馆大多并不被国人所接受。中餐的口味相对还可以,平均水平在美国应该也是一流的了:Telegraph Street的包员外较为实惠,服务态度一流,口味类似弱化版的六食堂金陵小炒。四海小馆有着大量中国小吃:小笼包,锅贴,热干面,螺蛳粉等。Tasty Pot类似国内小火锅,味道较为正宗。另一方面,我并不觉得食堂有网上所说的那么糟:国内大学通常很少有能吃的西餐,然而UC-Berkeley的食堂里中餐的比例相当高,并且本人感觉很多都能吃——这大概和那里很多广东口音的员工有关。事实上,我觉得食堂里除了本地菜以外的口味都还不错,有时还会有韩国泡菜,印度咖喱等。为了适当省钱,我只办了一次食堂的Bear Plan,通常中午前往食堂吃饭,有时顺带拿一些水果和茶叶。晚上随意处置一些速冻食品,如水饺、包子等。

作为CS的学生,选课自然是有一定的困难的,特别是当下如日中天的机器学习。这个学期的机器学习相关课程大多数会直接秒拒,只有CS188人工智能,和统计专业一门新开的课STAT157深度学习导论可供交换生选择。事实上,Berkeley的系统、理论等方向在四大中都是数一数二的,并且创造过许多BSD,Spark这样极具影响力的项目。如果不是对机器学习非常狂热,我们完全可以考虑选择一些其它方向的课,几乎不可能选不上。我为了必修课选择了CS164编译原理、CS184计算机图形学,此外还选了一门CS267并行计算的应用。除了CS184作为Machine Learning的前序课程有些难选,其它两门选课都是没有任何压力的。此外,CS161 Computer Security这门课选的人非常少,让我不敢去考虑它。但是据认识的人反映,这门网络安全的课程也是相当不错的。CS162操作系统,对于CS的同学不可谓不重要。如果在本校学的不太好(像我这种)且时间允许,再修一次也是个不错的选择。虽然它的Project看起来相当硬核,但我觉得会非常有用。CS267是一门研究生课,但是作为本科交换生也不会有任何的选课麻烦,这是我觉得UC-Berkeley做的很好的一个地方。
   
UC-Berkeley的CS专业课没有水课,至少我提到的这几门Upper Level及以上的没有。所以说,很多本地学生都只会选两门硬课和一门比较简单的课,而大部分交换生也只会选不超过3门专业课(再配合BISP必修的一学分水课达到学分要求)。如果选修的3门专业课都较为硬核,其实已经是会让人非常疲惫的了。至于CS相关的课程,总体上相比于国内编程任务量大,内容多,期末占比低。

CS164这门课的老师是”臭名昭著”的Hilfinger,很多Berkeley的学生都领教过他的厉害。CS164,就几乎是他自己一点一点完全构建出来的compiler world:自造的语言Chocopy,持续更新的Reference Compiler,整个课程几乎每一个文档、作业、命令都出自他手。这门课的任务量相当重:7次homework,3个project,还有2个mid-term,1个final-exam,这显然没有办法像国内的很多课一样期末突击、蒙混过关。第二个mid-term我在20分里只拿了5.5分,真的相当绝望了。至于project,我的小组合作还算顺利。然而,如果组里面有人被Hilfinger吓跑了,其他的同学写起来大概是会很痛苦的。此外,这门课拿A的难度是比较大的,除了因为课程难度大,另一个原因是“老奸巨猾”的Hilfinger并不按照比例算等级——而是直接看你的绝对分数。总体而言,为了必修课而选读这门课的同学要做好打硬仗的准备。

CS184是一门中规中矩的课程,任务量相对CS164可以接受,花的时间还是比较可控的。这门课一共4-5个小project,一个final project,两次mid-term,没有final。相比于这学期南大的图形学课程,这门课的内容更加深入,真正的涵盖了图形学的一些常见理论,并且基本都在project中详细实现。当然,如果对图形学基本不感兴趣,我觉得也未必要在宝贵交换学期修读这门课。

CS267是我最喜爱的一门课(研究生课),编程作业和final project各占50分,没有任何考试。这门课的三位教授中有一对ACM Fellow(夫妻),水平相当之高。这在国内的学校绝对是很罕见的。并且,我们还可以很方便的申请NERSC(美国能源局,就在UC-Berkeley东边的山上)里面的超级计算机,一次使用上千个CPU Core来进行实验(也有GPU),真正的体验并行计算的快感。 这门课的lecture涵盖范围极广,包括各种并行算法、模型、分布式系统。其中很多的项目和理论都出自UC-Berkeley,比如LAPACK,Spark,UPC++,logP模型等。当然,这些lecture我是大半听不懂的,据说到最后硕博也不怎么去上课了。每一次的作业,都需要自学一个编程模型,甚至还有在Berkeley新鲜出炉的试验品。幸运的是,我在不多的交换生中分配到上交大佬Jack Yan,得以蒙混过关。这门课的一位助教Benjamin Brock非常有亲和力,并且对中国了解很多。他不仅喜欢喝奶茶吃火锅,甚至可以完美的模仿香港地铁报站(粤普英),实在是令人叹为观止。在final project中,我们组几个人站在他的肩膀上放弃了有着沉重包袱的C++,实现了Rust的分布式容器库。最后,这个容器库基本解决了C++版本的安全性问题,并且勉强能用来写一些简单算法。总体上,这门课lecture极难,作业勉强能做,project要求较高但非常有趣,没有任何考试。并且,只要平时的任务保质保量完成,这种研究生课程的给分相当之高。

 有一点不幸的是,我出国交换前未及时修读毛概,并且在二月份才了解到自己可能无法保研。此后,我开始打算一心申请美国的Master。对于一般人来说,大三升大四的暑假都是一个提升简历的好时机。而对于申请Master的同学,暑研和实习都是可以考虑的。由于我暑假打算回国,所以就全部找的实习(由于交换生的身份,美国本土的实习基本不给投,上交大佬Jack Yan就挂了简历)。在国外找实习,笔试和面试不可谓不痛苦。首先,时差让人非常的难受:我曾翘课参加Google面试却不久被拒,多次在夜里被阿里巴巴的电话吵醒,在凌晨1点半接到过腾讯的offer call,也参加过4am-6am的微软笔试和夜间连续三场的面试。其次,由于UC-Berkeley的课程压力非常大,很难抽出太多时间来准备这些面试。幸运的是,UC-Berkeley的图书馆都提供的大量的研讨小间供使用,环境干净宽敞,预定非常方便,对于深夜面试更是特别合适了。此外,如果夜里时间太晚或者赶任务,也可以直接在Moffit五楼的的Wellness Room里睡觉。我尝试过三四次,除了有点冷之外其它都不错,完全可以带一套被子过去裹成毛毛虫。对于我自己,虽然水平有限,有些知识还是在交换学期现学现卖的,但可能因为学校和GPA还不错,大部分面试都还算比较顺利。

Berkeley的交换学期实在太过忙碌,这让我在学期快结束时才第一次正式来到一水之隔的旧金山。旧金山实在是像极了香港:一样的3D城市地无三尺平,一样的民族大融合、粤普英混杂,一样的知名高校林立,一样的高密度快节奏,一样的北美风CBD,一样都是全球最高房价之一(很大程度上都由保护环境、限制建设所致)。只有气候上迥乎不同,一个是长夏无冬常年湿热,一个是春秋相连常年微凉。然而由于12、1、2几个月两地温度都不算低,仍然是一样的蚊虫满地飞。总体上看,美国大概也就数西海岸和中国最为接近,尤其是北加州华人众多的湾区:无论是地理距离上,还是文化距离上,都是如此。

回国的时候是五月底,Berkeley的天气仍然和来时一样,细雨、微凉,仿佛时间停滞了数月。湾区这边的生活确实也是如此,看起来太过严肃,很多事都免不了预约、填表,一切看起来都是确定的,没有什么新意。身边的商店也都开了很久,楼下的咖啡馆在做二十年店庆,似乎一切都能一眼望到头。这方面看来,虽然湾区是计算机科学的圣地,适合求学和工作,但我还是觉得未来在国内发展更适合自己。

最后,非常感谢学校提供这一次高质量的交换机会。在UC-Berkeley短短的四个月,我不仅学到了知识,开阔了眼界,并且明确了目标,可以说收获颇丰了。

 

                            旧金山Downtown的街道
 
 
                            Berkeley的Foot Hill食堂
 
                         四海小馆的小笼包和锅贴
 
                                   C++之父的小讲座
 

                         CS267的Poster Session

                           壮观的CS188 lecture