波士顿大学不但拥有一流的师资、设备,也拥有健全的科系,也是许多学子的梦想学校,本人也十分幸运的进入到了波士顿大学就读cs项目,在这里分享一些我在BU的生活感受,以及我所读项目的个人体验,希望可以帮助到想要到美工留学读CS项目的同学,结合自己的需要作出最适合自己的选择。
首先是这个项目的录取情况,我是GRS/CAS即文理学院的CS,专业每届不到一百人,国人的比例还是很高的,大概可以占到60-70%左右,还有很多是BU本科升上来的学生。我没有具体去打听国内同学本科的高校,不过给我的感觉是北邮、东南、哈工大这一档的高校比较多。另外我这个专业中没有转专业的同学,那些同学都在MET学院的CS或者是ECE学院的EE/CE项目中。
说完了申请和录取的情况,接下来我和大家分享一下项目的课程设置以及我的选课情况,首先我从high-level来介绍一下CS系的选课要求,如果你本科是CS相关专业的同学,那么就没有pre的课程,总共需要选8门课,其中至少要有5门课是选自BREADTH COURSES。BREADTH COURSES有四个方向,分别是THEORY AREA、SOFTWARE AREA、SYSTEMS AREA 和 APPLICATIONS AREA,每一个方向都至少要选一门课。如果是转专业申请的同学,那么在offer中会提到大家需要选择的pre课程,一般在1-3门之间,大家只要按照offer的要求选课就可以了。项目一般是一年半毕业,同学们一般采取的选课策略都是3+3+2,因为一个学期学习的课程如果超过了3门那么压力实在是有些吃不消。
在我看来BU CS项目的学习竞争压力真的不是很大,大家明明都是科班出身的,也有专业的背景,但是不知道为何大家的基础也不是那么的牢靠,或许这只是我的错觉,不过大家只要好好选课学习的话还是会有很多收获的。因为我对ML/AI/DS不是很感兴趣,因此我可能是全系中唯一一个没有选这些课程的人,我之所以不选这些课也有一个原因是我觉得花那么多的学费来学一些水课的话对不起自己,所以我也选了一些非常硬核的课程,分别是cs651分布式系统;cs552操作系统;cs538&cs568,密码学与应用密码学。
当时我选这些课的心态就是我不是为了找工作来留学的,而是为了提升自己。这样做的确让我学到了很多知识,但是我的学习工作量也比其他同学大了很多,结果我没有什么时间去刷题,我觉得自己最终求职可以拿到offer实属侥幸,所以我不建议基础不好的同学效仿我的做法,适当选择一些学习压力不是太大的课程也可以让我们有更多的时间去支配。而我选了这些相对“冷门”的课程最为直观的感受就是欧美人的比例会大很多,尤其是和security相关的课程,毕竟学CS的人谁都会有当hacker的中二梦想。而且在我看来人工智能相关的工作如果没有PhD其实还是比较难找的,如果不是为了进实验室做科研的话倒不如多选两门old school硬课打好基础之后去找sde的工作。
接下来和大家说一下BU CS项目的评分标准,在这里每门课的成绩分别有A、A-、B+、B、B-,如果大家的分数再低就是不及格了,而毕业的成绩要求是大家所有的课程成绩都不能低于B-。在我看来这个成绩还是很容易达到的,只要我们平时不翘课,按时完成作业,就算我们平时的作业和最终考试成绩都不算太理想,最后也至少可以拿到B-的成绩。另外大家只要在平时认真学习,想要拿到B的平均成绩也是很容易的,其中虽然有些课难度比较大,但是最终给分还是比较高的,成绩也都不错。
不过大家想要拿A就不是那么轻松的事情了,同学们平时也要多花一些时间和心思在课程学习上才有可能拿到A的成绩,但是努力之后基本还是可以拿到A-的成绩的。而且这件事也并不是我们努力就可以做到的,在项目中有很多的毒瘤教授,大家在选课的时候一定要注意避开。这些教授基本都集中在3XX的课,Median给C+,能不选就尽量别选了,大家在选课之前只要和前辈多多交流基本就能了解那些很坑的教授是谁了,到时注意就好了。
总体来看项目想要拿到高GPA还是有一定难度的,平时学习的压力也是不小的。一般来说Median可以给到B-的成绩,大概前10%可以拿到A,大家也最好在作业和找工作之间找到平衡点。
接下来就是选课的问题了,我先和大家分享一下四个方向的具体课程设计:
1、THEORY AREA
CS 530: Algorithms
CS 535: Complexity Theory
CS 537: Probability in Computing
2、SOFTWARE AREA
CS 511: Formal Methods I
CS 512: Formal Methods II
CS 520: Programming Languages
CS 525: Compilers
3、SYSTEMS AREA
CS 550: Computer Architecture
CS 552: Introduction to Operating Systems
CS 553: Advanced Operating Systems
CS 655: Graduate Introduction to Computer Networks
CS 556: Advanced Computer Networks
CS 651: Distributed Systems
CS 670: Performance Analysis of Computer Systems
4、APPLICATIONS AREA
CS 538: Introduction to Cryptography
CS 542: Machine Learning
CS 548: Advanced Cryptography
CS 558: Network Security
CS 559: Algorithmic Aspects of Computer Networks
CS 660: Introduction to Databases
CS 562: Advanced Databases
CS 565: Data Mining
CS 680: Introduction to Computer Graphics
CS 580: Advanced Computer Graphics
CS 585: Image & Video Computing
CS 640: Artificial Intelligence
课程介绍
接下来我和大家具体介绍几门课的情况,首先就是我前面提到的那些相对比较硬核的课程。首先第一门是CS651,也就是分布式系统这门课。这门课跟的MIT6.824,每周看两篇paper+开卷的期中以及期末考试,作业两三周一份,内容主要是用Go实现MapReduce/Raft/KVRaft之类的,很有干货,这门课的教授也是很能讲的,在上课的过程中会有很多收获。
接下来是CS538:Intro of Cryptography,这门课是密码学的理论基础,这里面会涉及一些数学方面的知识,不过这些知识并不是很难,所以大家在选课的时候也不需要担心,另外这门课还有证明的部分,但是证明同样不是很可怕,学起来其实还好。Reyzin可以说是所有老师中课讲的最好的一个了,他没有ppt,就靠一块白板讲一节课,内容也是干货满满。不过需要注意的是他的语速很快,信息量也很大,一开始上他的课可能会有一些不适应,但是后面习惯了节奏之后我们会觉得很舒服,因为他的课讲得真的很明白。
下面是CS568,这门课是应用密码学,是用python来实现或者破解一些加密的算法,如果有了538的基础的话这门课会十分的轻松,我当时是作业全满分过的,而且老师也很幽默,课堂氛围比较轻松,我也很建议同学们同时选择这两门课,大家一定会有很多收获。
个人分享
除了这些课程之外我再和大家介绍一些我比较熟悉的课程,这样大家在选课的时候也能有一些参考。第一门是CS506,Tools of Data Science,这门课的内容是有点水的,算是Python处理大数据的一门基础课。这门课一学期一共3个assignments,难度也并不是很大,这门课还是适合那些没有python基础的同学去选择。
CS530,Adv Algorithms,这门课没有什么特殊之处,秋季的教授是Homer,一个十分慈祥的老教授。另外这门课的作业不多,难度中等,最为重要的是讲课的进度比较慢,所以有足够的时间去完成作业,学习的压力不会太大,同学们也可以选择这门课来平衡自己的工作量。
CS542,Machine Learning,这门课春季教授是Chin,这位教授人很好,从来不会为难学生。而这门课的作业难度也不是很大,虽然在作业中有一些数学证明部分是有一定难度的,但是lab上TA会讲解解法,只要大家认真听课的话做作业还是很轻松的。这门课还有一个好处是没有考试,最后做一个project就可以了,给分也挺高的。但是秋季教授是Saenko,课程比春季难多了,不仅有project还有考试,但是听说给分还可以,所以并不是那么坑。
另外CS591的博弈论教授也是Chin,虽然博弈论本身很复杂,难度也很大,但是这门课一学期只讲到二人零和博弈的纳什均衡,所以内容不算多,课程难度也不是很大。至于最后的project难度不是固定的,因为topic是自选的,所以这也要看大家的能力和选择了。
CS591的NLP是一个马来西亚教授授课,作业难度较为适中,不过在这门课上也有很多的PhD,所以难度还是有一点的,至少每次assignment的extra crediit是很难拿到的,而且最后一次作业跑起来还是很费时间的。
CS591的OOD,这门课其实就是Java面向对象编程,这门课如果之前学过Java的话就很简单。不过需要注意的是这门课杂事比较多,比方说我们需要经常找教授讨论project的客户需求什么的,代码量也是不小的,所以总体上很费时间,工作量也不是很轻松,大家在选课的时候也要做好规划。
接下来是CS660,数据库,这门课是要用Java在一个框架下制作简易的数据库,看到这里相信大家已经很清楚这门课的代码量会很大了。如果选了这门课,基本上大部分的时间都要写数据可的作业。另外这门课的课程内容也是很多的,不过因为这门课的内容很多都和本科阶段学习的知识是重叠的,因此难度不是很大,学起来也会轻松一些。
CS655,计算机网络,这门课的难度也不是很大,教授是Matta,也是一个很好的人,选择这门课想要拿到高分也并不是很困难。以上这些课相对都是很简单的,学习起来压力也不大,对于那些基础比较薄弱的同学来说还是很适合选择的,另外大家也可以用这些课程来平衡自己的工作量,避免同时选择太多的硬核课程导致学习压力过大。
还有就是Xi的课最好不要选,因为他上的课难度都是很高的,像CS525最终能坚持下来的人不超过10个,代码能力不强的同学一定要慎选他的课。
另外大家平时如果多和老师交流也是有机会进行研究的,有些时候教授也会发maillist问有没有人想要参加项目,所以想要从事科研的同学在这里也是会有机会的,但是我当时因为不想做学术,所以没有关注这方面,也没怎么和教授联系。不过这里的教授人都是很nice的,大家主动联系教授也是很轻松的。另外教授在office hour是很愿意为同学们解答问题的,有的教授甚至会顺口说出作业的答案,这点也是很好的。
总体来说这里的课程设计我还是比较喜欢的,主要就是同学们如果不想搞学术的话只要上课赚学分就可以毕业了,也不用上政治课那些有的没的,还是挺舒服的。
说完了选课接下来就是大家都很关心的实习了,在我看来我们这一届的实习还是不错的。首先波士顿在实习这个方面是肯定比不过湾区的。在我看来couursera的证书作用并不是很大,大家想要顺利找到实习的话最好还是让自己简历上多一些开发项目,从而体现我们在C++、Java方面的能力,另外在面试的时候也会考察一些算法方面的问题,所以刷题也是必要的,但是平时上课的工作量还是有些大的,所以大家也要调整好自己的时间安排。另外这边实习有提供CPT,所以实习可以放开了找,但是这边没有隔壁NEU的coop,这也是美中不足的地方,不过整体来看找实习还是比较轻松的。
另外春秋秋季都有general和engineering的career fair,同学们一般去的都是engineering的,在我看来学校还是挺重视career development的,career service做的也是很不错的,会有专业的老师帮忙修改简历。同时还有startup孵化器,各种event也很多,我觉得这对于同学们的就业还是有很大帮助的。
在这里我想说的是学校的career,像Google、fb也是会来搞一下info session这列的,这些大厂基本在波士顿都是有office的,不过其实坑和湾区还是有很明显差距的。根据我的了解这边找工作的情况并不是特别的乐观。但是大部分的同学还是找到了工作,我们这一届和后面那一届的不少同学都去了flag、Bloomberg、2Sigma这样的公司,而且同学们在找工作的时候都互相帮助,氛围很好。不过大家如果想要找到更好的工作还需要付出努力,所以大家在来到这边之后一定要多刷题,这样在未来求职的时候才能更有竞争力一些。
另外求职的时候找前辈内推也是一个好法子,这可以让我们有更多的机会,不过我是个有社恐的人,所以基本没怎么networking,同学们千万不要像我这样,这会让你们错失很多的机会。
说完了就业最后就是在这边的生活感受了,首先是来到这边的开销,我觉得一年半的项目总开销大概在10万美金左右,这样的开销还是比较适中的。另外波士顿这个城市也是很不错的,整个城市的学习氛围很浓厚,我觉得这也很适合我们在这里学习而且这里比较安全,BU的同学大部分都住在Allston附近,这边亚裔很多,环境相对比较安全。而且附近有很多好吃的,我们在这里可以找到各种各样的中国美食,加上这里的中国超市,所以生活很方便,同学们丝毫不用担心不适应这边的生活。
波士顿毕竟是大城市,所以交通也是很方便的,BU有三个地铁站,还有57路公交车穿过,去机场打车也只要20分钟。另外房租并不是很贵,一个月大概在800-1500之间,大家也可以结合自己的需要进行选择。不过需要注意的是波士顿这边基础设施已经有些破旧了,房子也大多很有年头了,所以可能会有老鼠,大家也要做好心理准备。另外这边半年都是冬天,所以如果我们住的离学校远的话也会比较麻烦,同学们一定要尽早找公寓,时间晚了可能就没有好位置了。
这边的人也大多十分的热心谦让,不过办事效率实在是让人不忍直视,同时很多服务不是很方便,像办宽带这样的事情还要打客服电话,音质还经常很差,会让人比较烦躁。另外这边social还是很方便的,毕竟BU这边留学生还是很多的,组局也十分轻松,不过我不是很喜欢社交也就和这类活动无缘了。
总之我觉得BU的CS项目还是很适合大家选择的,我也希望自己今天的分享可以帮助到大家。