跨专业申请计算机
-
CS那么火,搞得很多非CS专业的同学们,眼见着CS专业的学生出国深造,去Google、Facebook工作,申请H1B,拿绿卡,好生羡慕。尤其是川普上台之后,对H1B申请者的资格审核加大力度,剔除了大量的印度低阶程序员,对同学们这种出国读研的CS高阶人才,真的是大好消息。注意,印度那些低阶程序员programmer只是凭借什么专科院校的证书、文凭,就上岗当码农了,和我们国内普遍拥有正规学士、硕士学位的软件工程师software engineer、软件开发师software developer等职位,完全是两回事。在美国劳工部官网上,这些职位是completely不同层次的薪资待遇。大家以后千万不要以程序员自贬!!!
越来越多的非CS专业的同学,在纠结着,自己能不能跨专业申请CS呢?Yes you can!!!
这里说的跨专业申请,既不是针对大一大二本科转学到美国换专业(有关本科转学,欢迎关注和创留学HGCP项目),也不是指那些专门设置的,为非CS专业学生申请的CS硕士具体项目,如USC-37学分;NEU-ALIGN;UPenn-MCIT等,而是普遍意义上的本科非CS专业背景,研究生跨专业申请CS的学生。
事实上,美国研究生绝大部分理工类专业,对申请要求并不硬性限定某某专业本科背景,即便列举出一些推荐的本科专业背景,也不会将招生名额仅仅限制在这些专业以内,通常中会给出一些先决课程prerequisite courses。无论本科专业学的是什么,只要入学前修完这些先决课程,就可以申请该专业了。同学们不用担心跨专业不能申请,放心大胆地追求自己的理想专业就好。
那么首先来解决先决课程的问题。来看看几个顶级CS院校的专业背景要求吧。
Cornell对于跨专业申请CS项目的学生,有如下要求:
Applicants who have
majored in other fields are absolutely
encouraged to apply provided they have demonstrated knowledge of the
following subjects(非相关专业的申请者,强烈建议掌握以下课程知识):Object-Oriented Programming and
Data Structures面向对象编程和数据结构Data Structures and Functional
Programming数据结构和函数编程Computer System Organization and
Programming计算机系统组织和编程Discrete Structures离散结构
Basic Calculus and Linear Algebra基础微积分与线性代数
UIUC的申请要求是:
Applicants who do not hold a
bachelor’s degree in computer science must have sufficient background in computer programming, data structures and
algorithms, computer architecture, and theory of computation. We highly
recommend applicants complete courses in these areas at a local university near
them prior to submitting their application.(本科专业非CS的申请者,建议提交申请之前,具有充足的计算机编程、数据结构和算法、计算机功能结构、及计算理论知识背景)UCSD对CSE的申请要求为:
A bachelor's degree in computer
science, computer engineering, electrical engineering, or mathematics is preferred, but not required.
Applicants with a degree in another discipline will be considered for admission
if they have completed the minimum required CSE courses or their equivalent. The
minimum required CSE courses are:(本科专业CS/CE/EE/Math的申请者更受欢迎,但不要求必须具有这些专业背景。具有其它专业背景的申请者,只要完成最低要求的CSE课程,其申请就会被审核,这些课程是:)Basic Programming基础编程
Discrete Math离散数学
Data Structures and Algorithms数据结构与算法
Hardware and Architecture硬件与结构
Systems and Software系统与软件
Theory of Computabiligy计算理论
UT-Austin对非CS专业的学生也表现出友好姿态:
Our Masters program is intended as
a terminal degree. It is designed for two types of students:Those who have a bachelor's degree
in CS or a related field and want to broaden and deepen their knowledge of
computer science, typically to enhance their careers in industry.
Those who
have a degree in a field other than CS and want to prepare themselves for
computing careers.(明确指出该Master项目针对两类学生:第一类,本科CS或相关专业的学生,用以提升CS知识宽度和深度,以提升未来的就业竞争力;第二类,非CS本科背景但有志于投身计算机职业的学生。)
A Bachelor’s degree in Computer
Science is beneficial though not required. Work experience is considered. The
following UTCS undergraduate courses, or equivalent, are required as background
which can be satisfied after admission to the program. They are not prerequisites for admission.(本科CS学位有利于申请但不做强制要求,相关工作经验会予以考虑。跨专业学生将需要完成以下本校CS本科课程,以满足研究生课程背景。这些课程并不是申请的先决课程要求,可以在录取之后完成)Discrete Math for Computer Science用于计算机科学的离散数学
Introduction to Programming编程导论
Data Structures数据结构
Algorithms and Complexity算法与复杂性
Computer Organization and
Architecture计算机组织与结构Principles of Computer Systems计算机系统原理
看到这里,大家应该明白了吧。这些CS牛校,都没有将非CS专业的申请者拒之门外,何况实力稍逊的其它学校呢?给大家总结一下,想转美国CS,最高频的先决课程是下面这几门:
高等数学(微积分)
离散数学
计算机基础
计算方法
计算机算法
数据结构
编程基础
C语言&C++
操作系统基础
知道了哪些课程最重要,要如何补修呢?-
辅修CS专业。不过国内大部分学校,修双学位都有一定的限制,能够通过辅修CS专业,来满足将来申请美国CS硕士要求的同学,比例不大;
-
如果本校设置有CS专业,想尽一切办法尽可能多选修CS课程,即使在成绩单上,这些课程被标注为选修课,也没关系。美硕申请审核过程中,教授们最看重的是所修课程的内容,而不是看课程性质是选修还是必修。只要修到CS核心重要课程,而且拿到好成绩,在将来的申请中一定大有帮助;
-
如果本校非CS专业,选CS课程有很大限制,还可以借助高质量的暑期学校,如国内的ONPS,或再次之,网上课程平台Coursera等,补习转专业所需的课程。ONPS这种暑期课程平台,能够提供教育部认可的,CDGDC认证的成绩单;而Coursera网课平台,只能提供课程证书,不能显示成绩,相对来说,证明的力度弱一些,但优势在于网课平台的课程资源很丰富,课程时间也相对灵活,不局限于暑期,长期坚持积累,还是能够掌握可观的CS知识量的;
-
只要本校开设CS专业,即使学校不允许非CS专业的学生去选课,也应该积极去旁听核心CS课程,没有成绩单不要紧,要紧的是肚子里有没有货。系统地跟着学CS相关专业课程,非常有助于建立完整的CS知识体系,这种经历虽然没有成绩单做证明,将来写文书的时候,也能够体现出来,所谓“行家一出手,就知有没有”。研究生申请阶段,审核文书的都是专业相关的教授们,有没有真才实学,不是吹的,教授们随便看一眼,就能分辨出高低。
以上这些方案,都是围绕着如何补习CS所需核心课程的,同学们可能会有疑问了,那这些补习的课程要达到什么程度,才能够被认可呢?答案又是那句话:It depends!能够拿到成绩的课程,自然是成绩越高越好,但这也跟课程量和课程的难度有关,不能一概而论。比如你一学期除了本专业以外,额外补习了两门CS的基础课,计算机基础和C语言,两门课GPA是3.6;相比同一时间段,补习三四门CS课程,不仅有基础课,还有稍微高阶点的数据结构等课程,GPA是3.3,那么必然是第二种情况更受AO的认可。这里面有个学习能力的问题,所有AO都是在考核申请者此前成就的基础上,预测TA将来入读之后的学习情况,大家都喜欢既有充足学习动力,又表现出很大学习能力的学生。毕竟,喜欢一个专业,跟学好一个专业,是有很大区别的。
当然,要成功跨专业转CS,只是补习点课程,是远远不够的。
除了课程之外,要转CS,还有哪些事情可以做。和申请其它理工类专业一样,成绩和专业课程度只不过是申请的一个方面,不足以证明你的申请动机。Why CS?是跨专业申请者在文书中一定要阐明的一点。这其中的技巧,还是那句话:Show, don’t tell。
课程是硬实力,软实力的提升,靠课外的积累,跟CS相关的实习/科研/竞赛等。这是一个循序渐进的过程,一开始就追求质量不是很现实,当然,如果本人有资源优势就另说了。大部分同学可能没有那么好的资源,那就要调整心态,做好打持久战的准备。首先,突破从零到有的过程。比如说,刚开始掌握的语言不多,找不到相关性很高的实习,只要能够接触到有一定相关性的工作,也是不错的。至少可以提供一些新的视角,并且为后续的实习做铺垫。第二次再找实习的时候,有了更多知识的积累,就可以更进一步了。
找科研也是同样的道理,刚开始加入到计算机相关的科研项目,肯定是很基础的工作,可能多半时间就是打打杂。但打杂的过程中,可以积累人脉,可以找机会多实验室的前辈们交流,能够有效地沟通,必然能够学到一些实践的知识。根据师兄师姐和教授的建议,有针对性地提升自己,往往事半功倍。只是实质性掌握一些科研流程和研究方法,并且理论知识跟得上,也就顺理成章可以做一些更加核心的工作了。自己背景不够的时候,教授当然不放心给你一些重要工作。但只要你用实际行动证明了自己的能力,免费的劳动力,真能分担一些工作的话,一般教授还是比较乐于接受的。
再往前发展,如果距离申请,时间还比较充裕,就可以考虑深入参与科研,争取发表可见的科研成果。计算机类专业,不像其它理工专业,国内国际的计算机相关学术会议非常多。会议论文发表周期很短,从投稿到会议接受,顺利的话,前后可能1个月时间就搞定了。只要确实有成果,不担心发不出来。如果有论文在手,CV就更加能够吸引眼球了。即使最终没有可发表的成果,能拿到CS教授的强推,对申请也是很有帮助的。同样的内容,从推荐老师的口吻讲出来,就远比自己苦口婆心写在PS里,可信度要高得多了。自己说,偏向于tell,而换成教授的推荐里来说,就是合理地show肌肉了。
科研机会,可以不仅限于本校资源。现在市面上有一些专门为有本科科研需求的学生,匹配各高校、科研院校科研机会的公司,都可以尝试争取。积累了一定的科研经历之后,还可以将眼光放得更开阔,寻求海外暑期科研机会。如果能参与到海外牛项目,并且拿到海外教授的牛推,对于自己的软件竞争力,有极大的提升,甚至是质的飞跃。
总而言之,要软硬件同时抓,才有可能申请到好学校。毕竟,CS申请的持续热度,导致竞争一年比一年白热化。同样的申请条件,换成其它理工类专业,普遍比申CS更容易拿到顶校offer。
这里要情调一点,同学们不要误以为,反正是要转专业的,本科专业课对将来也没多大用,就不用好好学了。这可就大错特错了。GPA 3.0是美国top 100学校研究生院的普遍要求,不管是不是跨专业申请,最低成绩是必须要保住的。Overall GPA就算失手没搞定,至少大三大四的advanced
courses GPA(实际上应届生申请时,成绩单上大四的课程基本没有,或比较少,这里可以默认为大三的成绩)得保住最低要求3.0吧。确实,当前所学的东西,对于将来的CS学习和职业发展,可能用处都不大。但AO们看的不只是你学的课有没有用,而是要通过你的GPA判定你的学习能力。如果你说我为了转专业,很多精力花在补习CS课程和做CS相关科研上了,所以把本专业的课搞得一塌糊涂,那么不仅你的智商水平,乃至你的抗压能力,将来的学习潜力,都将遭到质疑,甚至有被秒拒的可能。教授们是通过你申请之前的学习经历,来判断你将来入读美国学校之后,能不能survive,能不能make success,乃至能不能为他们学校、他们的项目做贡献。高昂学费的贡献是其次,教授们还关心通过他们master项目的培养,你能不能进入知名企业,或者牛校PhD项目等等。毕竟,毕业生的良好就业前景,对于该项目未来的招生,是有很大帮助的。所有的学校,都希望吸引到更加优秀的申请者。
至于GT需要多少分,前面已经讲到,CS的申请竞争可以说是理工类专业申请中,竞争最惨烈的。而且,竞争的激烈程度,到目前为止,还在逐年攀升。320+100的组合,只能说是不给自己拖后腿,要想申请个好点的学校,刷分目标应该定在330+110比较合适。目标越高远,动力越强大嘛!
综合来看,CE、EE等工科专业,以及数学、物理等科学类专业,相对其它专业,转CS难度更低。如果你的专业和CS相差较远,强申是不太可能有好学校的,早起的鸟儿有虫吃。为了转CS的终极目标,从现在开始行动吧!
如果你现在已经是大四了,火烧眉毛,马上就要申请,以上这些对你而言都不可行,那么还有可能转CS吗?答案依然是:Yes you
如果这个时候才下定决心想转CS,加拿大本科第二学位是个绝佳的选择,尤其适合本专业绩点不高,或者来不及准备GRE,强申根本就希望很渺茫的,或者经济情况不是非常优越的学生(考虑留学性价比的话,加拿大一方面是花费比美国低,本科奖学金机会也不少;另一方面即使本科CS毕业,当地也是有很多工作机会的,尤其是co-op,如UBC的CS项目,或者带学分internship的项目,毕业找工作基本不用愁,学费回本有希望)。选择这条路,曲线救国,将来杀回美国读研/读博,也或许,从此喜欢上了加拿大,留在加拿大也不错。毕竟,加拿大的留学移民政策,比美国要宽松多了。工作许可work
permit(加拿大的工签)不用像H1B那样去抽签,各省的省提名计划也很友好。加拿大虽然属于英联邦国家,但它的留学政策,绝对可以说是英联邦国家中的一朵奇葩。整个教育体制介于美国和英国之间,由于和美国毗邻,两个国家之间的学生互转,也是很常见的。加拿大的几所顶校的学历,多大、UBC、滑铁卢等,在美国的工业界和教育界也是广受认可的。美国高校里也会聘用加拿大顶校的毕业生当tenure
professor。一句话,加拿大的顶校学历,并不水。首先,什么是第二学位。加拿大学校有第二本科学位,第二硕士学位,第二博士学位。拥有同等学历的学生,可以选择再读一个和自己第一专业不同的专业,获得同等级别的学位。学校官网上有叫after-degree,也有叫second degree的。比如说,你在国内读了一个商科毕业,申请加拿大第二本科学位的话,只要不再申请商科专业,其它什么专业,都允许申请。对,第二学位就是为跨专业的学生准备的,而且你必须跨专业,第二学位如果和第一学位比较相近,是不能申请的。零CS基础,零CS背景,都可以申请CS第二学位。
不要惊慌,第二学位虽然拿到的是Bachelor学位,但不是让你重新读四年大学。第二学位项目一般两年就够了。国内那些基础公共课,尤其大一大二时修读的课程,都可以直接转学分,用来抵扣第二学位本科毕业所要求的学分。也就是说,从操作原理上,第二学位的申请,类似于转学申请。和转学一样,要涉及到transfer你的大学学分的过程。
如果自己够勤奋,每学期都勤勤恳恳修课,不到两年就毕业,也是可以的(不过如果考虑想换工签的话,还是按部就班两年毕业比较合适,加拿大工签规定是,大于8个月,少于2年的学习项目,只能换取跟学习时间同等长度的工签;而如果学习项目达到2年,可以换3年的工签。重要的事情再说一遍,加拿大换工签不需要抽签,也不需要已经找到雇主,毕业前直接申请即可)。只要学分够,就OK,这点和美本是一样的。
第二学位毕业后的学位和毕业证,和那些在这个学校读四年毕业的第一学位者,完全一样,不会有任何差异。在未来申请研究生方面,也和正常的加拿大Bachelor完全相同,不会有任何区别对待。是不是有种抛离过去,完美重新起步的赶脚?
除了零CS基础,零CS背景的福利外,GPA要求也不高;如果英语来不及刷高分,也不用GAP一年,加拿大名校语言项目比美国要丰富得多,像顶校UBC,也会针对国际生开设语言项目,完全可以提前入读,暑期搞定语言,秋季正常入读。
相比前两期的跨专业申请master来说,踏踏实实读个CS第二学位,知识结构上必定更加有优势。而软件背景方面,加拿大本科的科研机会,比国内高校也是完胜。对比第二学位和GAP一年,专心准备跨专业申master的软硬件背景,第二学位虽然耗时多了一年,花费也比国内GAP一年要高,但从知识的获取层面和这个学历的含金量上来讲,前者都比后者更加有利于长期的职业发展。毕竟,归根结底,留学的最本质目的是学到自己想要的东西,提升自己在社会上的竞争力。从这点出发,客观对比各种途径,相信大家会找到最合适自己的那条路
跨专业申请CS,大家往往把目光集中在北美国家,其实英国也是个弯道超车的去处。首先来认识下这类项目。打消疑虑第一弹:这类项目不野鸡,知名大学也开设。
英国不少学校针对非CS背景的学生,专门设置conversion的MSc项目,也就是说,这类MSc,只对非CS本科专业的学生开放,针对“students from a variety of academic background who have little or no previous academic computing experience”。帝国理工的项目,官方描述是这样的:
“This course provides intensive training in computer science, and is suitable for graduates of disciplines other than computing who are who are keen to acquire core computing skills or deepen their existing knowledge of computing.”
对,没错,连帝国理工这种级别的学校,都有这种项目,同在G5之列的UCL也开设有这样的项目。伯明翰大学更是在自豪地表示“Established in 1969, it is now the longest-running conversion programme to computing in the UK.”可见,英国大学开设这类项目由来已久,并不是这几年趁着CS的热度才新开设的。
打消疑虑第二弹:学位和课程货真价实,非预科类低级项目。
虽然属于conversion项目,但是从毕业学位上,并不会显示出任何贬低意味。不只是IC的项目名称设置成MSc Computing Science,UCL的项目设置成MSc Computer Science,这两所G5院校的项目名称设置都与美国MS项目名称一致,其它非G5院校,如Bristol、Birmingham、Newcastle和Liverpool等,也都是MSc Computer Science;Sheffield项目虽然命名为MSc Software Systems and Internet Technology,但也明显是CS相关高辨识度的学位设置。
为了以示区分,这些设置有conversion项目的学校,针对CS本科背景的学生所开设的CS项目,一般会称为Advanced Computing;也有部分学校,即使不设置conversion项目,也会直接将自己的CS general(英国部分学校的CS项目设置,会比较细致,除了general的CS外,还会针对各CS分支方向来开设项目,比如MSc Web Intelligence,MSc Machine Learning,MSc Data Science,MSc Information Security,MSc Artificial Intelligence等)项目命名为MSc Advanced Computing,比如KCL。
同样,也有些不开设conversion项目的学校,如Edinburgh、Glasgow、Warwick、Southampton等,CS general项目也都会用MSc Computer Science来命名。
也就是说,单纯从conversion项目的学位设置上,并不容易让人一眼辩识其与常规CS项目的区别。这点对希望跨专业拿CS学位回国就业的学生来说,是一大优势。
在项目内的具体课程设置上,英国CS conversion的MSc项目,与常规课程型硕士一样,是1年制12个月的项目,前两个学期修课,第三个学期,也就是summer学期,完成毕业要求的project和dissertation。CS conversion项目的课程设置,均与CS相关度极高。
举例来看下UCL的MSc Computer Science项目课程设置。
该项目的必修课程要求:
Algorithmics
Architecture and Hardware
Design
Introductory Programming
Systems Infrastructure
选修课程的选课范围:Database and Information Management Systems
Entrepreneurship: Theory and Practice
Functional Programming
Interaction Design
Software Engineering
Affective Interaction
Artificial Intelligence and Neural Computing
Project Management
Birmingham的MSc Computer Science项目核心课程要求:Fundamentals Data Structures
Fundamentals Databases
Fundamentals Intro to Computer Science
Introduction to Human Computer Interaction
Introduction to Artificial Intelligence
Operating Systems and Networks
选修课程的选课范围:Fundamentals Software Engineering
Software Engineering 1
Software Engineering 2
Cryptography
Evaluation Methods and Statistics
Intelligent Data Analysis (Extended)
Introduction to Neural Computation
Machine Learning (Extended)
Nature Inspired Search and Optimisation打消疑虑第三弹:申请门槛并不低。
众所周知,英国学校对GPA的要求,向来比美国学校卡得更死。要申请英国任何一所学校的CS conversion项目,GPA及标化考试要求,都与常规项目无异。IC的conversion项目MSc Computer Science与常规CS项目MSc Advanced Computing一样,要求211院校平均分80%以上,双非学校85%以上才有可能申请;且必须要提供GRE成绩(绝大部分英国课程型硕士不需要GRE,IC是G5学校,要求更高);语言要求雅思6.5(6.0)或托福92(20)以上。
PS:这里需要提醒的一点是,拿托福成绩一样是可以申请英国学校的。英国研究生项目申请,普遍同时接受雅思和托福成绩。只是对于英语基础薄弱,没有把握考到学校要求分数的学生,考雅思的必要性更大。因为英国大部分学校会设置语言条件录取,即低于学校语言要求但学术背景符合申请要求的学生,准许入学,但前提是入学后首先完成一定课时的ESL课程。而用ESL课程的条件录取来申请英国学签的话,必须提供UKVI雅思成绩,而不接受除此以外的其它任何语言类考试成绩。在申请阶段,所有英国项目都同时接受雅思和托福成绩,如果托福成绩达标,将会用研究生项目的无条件录取来办理学签,这就不需要UKVI雅思了,托福成绩也同样可办理。
UCL的所有CS相关项目都不需要GRE,但本科成绩也建议在85%以上,而且申请CS conversion项目,还需要本科学过1-3门programming相关课程或具有1-2年programming相关工作经验。非G5院校,申请门槛相对低一些,但总体申请要求,并不会低于同所学校的常规CS项目。
拿CS conversion学位能干嘛?
笔者此前已经介绍过其它跨专业申请CS的途径,相比之下,英国课程型硕士毕竟时间短,大部分项目只能修8门课左右,修课之后的暑期project或dissertation,整体上在学术层面也不够深入,但其优势在于,允许不相关专业背景的本科毕业生入学,对于来不及充分准备软硬件背景申请美硕的学生来说,英国的这类CS项目,至少提供了一条迅速打入CS领域的捷径。也完全有可能,拿这个学位回国就业。
由于项目整体学术强度不如美国MS,英国的课程型硕士,用来当跳板申请美国PhD不是很有优势。不过好在英国课程型硕士是可以累积叠加学习的,也就是说,有志于在CS这条路上走得更远的学生,可以在读完1年的CS Conversion之外,继续修读英国的常规CS项目。这样整体读下来,也是2年的时间。经过2年的积累,课程知识的储备,应该来说是没有问题的。那么科研/实习等软实力的提升,当然还是看个人,至少为将来的就业或者PhD申请,赢得了一定的缓冲时间。有了时间,就有更多的可能性,只要吸取教训,提前规划就好。
-