最近群里很多同学正在申请CS留学项目或者申请CS二硕,我打算开个坑聊一聊这个话题。8 h( g" w: g7 ?: G7 R
/ T5 ]1 ` T! L, R5 l* {1 C: U
1 R# w. I0 Z' R( b4 |关于我们的群聊:群里也有很多CS干货分享,我们群里的很多同学,即便是在Hiring Freeze的去年和大裁员的今年,也有不少拿到了心仪的Offer。大家可以加管理员Andy的微信进群:MSBZ1019
3 G3 J9 l1 ]0 X) r! Q$ V; ]; H: f) o$ e0 u' }$ g8 `$ P4 [
当然如何零基础入门和转码+润美的意义我相信之前我们在群里已经聊了很多,大家可以去翻翻我们之前的这里不再赘述:; i! S) v% M9 G% A0 K. ^) [/ t4 ^
在开始申请前,我建议先仔细研究各所大学的CS本科课程大纲,当然我这里也给大家写了这一片以我校的CS本科的学习路径。当然我之前也写过一篇关于大多数学校的要求包括:
" Y& K- _ p Z0 b1 `1 Y d" A- W* S0 w0 @
概括来说:+ }1 _) I2 |+ w: o$ K
第一部分:数学基础% ^4 H& O( E3 ~1 m: [
' _- v4 ^- n+ ^% d+ C/ X8 `
+ Y; q' S) N' i. Q' U+ C7 v基本就是微积分+线性代数+概率学,当然其实学校教的会略比业界偏理论一些,求职向来说至少学会:链式法则+矩阵求导+熟练掌握条件概率的计算
' ?. y) U' B+ z6 L* ^第二部分:工程基础0 s0 c1 l& o' G- n3 F4 l
9 F/ L- D* C; n$ q1 {2 k
! U6 Y6 ^/ q4 G1 a6 q& y这部分基本是在介绍一些编程语言(如C++)的入门,会讲一些指针的概念,但是如果不是对DevOp特别感兴趣,以及非微软不进的话,这部分知识用到的概率很小。编程语言课程的主要目的还是让同学会学写循环、递归、OOP之类的东西,最后结课大作业是写一个游戏出来。
3 ~$ f2 _$ G1 T: E2 y另外就是需要学的一些Linux系统的指令,以及计算机的File System是什么原理,什么是Memory,什么是IO Bus等等关于计算机的工作机制。5 e# Z; G2 p# e2 _: R# S2 e" o
第三部分:计算机专业核心课程
; p+ P; G6 L& U7 d. U
2 x- s8 t2 |0 |+ y4 y0 S' j
- m* O2 U7 Q2 I ?
/ s! y# G6 S' b: ]. _
' S- u( b$ K9 d5 H( c6 h& W这里就有很重要的编程语言+编译原理等知识,以及最最重要的数据结构和算法,当然课程里面的随机算法和贪心算法(并不一定保证最优解)属于不太会在求职面试中出现的类型,但是已经算是对转码最有帮助的一门课程了。
, [' [+ O' L' Y) i+ q. i* {当然更多的课程设计的细节就请大家自己到原帖去看吧。) b& H) M7 x g, v
那么在这里,我也首创给计算机基础的掌握水平做一个Scale:
2 h$ |( `, L& `5 {& L2 c8 ]( o/ E: \; Q$ `) z+ I
- 0基础:连一门计算机科学课都没上过,只知道计算机科学这个词。
! m4 S4 i& b- B3 D7 m1 a* o* v - 0.3基础:掌握某一种编程语言(比如C++或Java),大部分科班的同学在大一的第一个学期就可以达到7 q2 M! t/ ?: a# g+ |
- 0.5基础:有第一部分的数学基础+第二部分的工程基础+上过至少一门第三部分的课程
! f0 r# V0 ~0 O( B' f5 k7 Y - 1.0基础:有第一部分的数学基础+第二部分的工程基础+上过至少三门第三部分的课程
- K9 r* L! P. Y9 ?0 d1 z
) h# |3 S0 w& l7 z2 e, w
* b6 @& N( M. Q9 g% F0 r如果你是0.3~1.0基础,如何写一份升学的出色的PS?
5 {6 ]& |0 v4 ~2 |! k& R1 {- O0 ?
3 }0 V. {, f* N- s* k, y$ {如果你的基础介于这个范围之内,表明你有一定的计算机科学基础,至少上过一学期的编程课程,但却缺乏详细描述的项目经验。对于这种情况,我建议以下写作方法:
& B! |- k7 Q l& V: G( E- u' O% u. r7 c! k2 q" r
3 W- @4 p0 g4 `8 v" O
开头段: 描述计算机科学或与之相关的领域如何吸引了你。
9 s; H$ F) b/ Q$ w) D! e" u) K7 n. D$ n. `
- 例(1):如果你本科专业是统计学,参加过数据挑战赛,你可以写:在这次数据挑战赛中,我对计算机科学产生了浓厚的兴趣...6 E- V# X5 ]( X4 z1 r9 I
- 例(2):如果你曾从事需要编程能力的研究项目、数据项目或实习,你可以描述其中如何遇到了计算机科学方面的技能需求,以及你对这些技能的渴望。 这里的例子只是供参考,关键是要传达你为什么对计算机科学感兴趣。3 Z M) `9 f4 I* ]1 h' n
本科阶段数学或计算机相关课程和成就的描述:7 e! o9 e2 g* ~/ y v7 u
$ y3 H/ ~9 x$ A) T( W. R1 p
2 D J) ]& ]1 } C: j' C1 h/ O6 M
- P1 A6 J' x( I J1 X( _3 a1 u
# h t! i, |, T1 p6 x
- 如果你的本科专业是数学,请尽量突出你在理论数学方面的成绩。如果是其他专业,请简要介绍你的专业成绩和成就。如果你的成绩单上没有专业GPA,请提供专业GPA。7 N; Z) T1 l( Y* E+ w9 ?/ F
- 特别强调与计算机科学相关的数学课程和成就。你可以指出你的数学背景将成为你在该校进行数学计算或计算金融研究的强大支持。
}) A* [& ^5 b2 v 至少一段描述你参与的与计算机科学相关项目:& ` L. r6 A6 }) x" I
V' H* \" Z. `) c( Z) S0 t- 这些项目可以是在课堂上完成的,也可以是在研究中遇到的。避免描述太难理解的项目,但也不要写得太过低级。
6 q9 X; A; T: H" _- Z: F' d( q: m7 I 一段描述你学习新专业知识的过程:" U* C0 ~; o, V
% D# U0 [/ v Z7 W" [2 J( d
- 举例来说明,即使你的本科专业与计算机科学无关,你也能够克服困难学习新知识。这有助于让招生委员会了解你学习新领域的潜力。2 o3 [6 Z2 D2 Z0 @1 ^2 f
' _. H% e/ R( x- n; J
! R, a! V4 V3 D5 f两段分别描述你对申请的计算机科学项目的热爱和结尾:) k1 Z1 z% p. I0 f' ?
: q& E/ |7 e. A& K1 i6 Y5 e- W
( ]( u7 t. e7 `5 s& n) {) `- 第一段可以描述你为什么热爱这个项目,展示你对该领域的兴趣和动机。
# |1 |9 Q, E- {+ P# m$ d! l1 G+ b. T0 _ - 最后一段用来总结整篇文章。8 N" l! V d& P6 Q/ q' I9 d
总结一下,写个人陈述时要注意以下几点:
4 r2 }& c$ I) q) q( [9 E" a8 @, R9 e$ k3 S L
- 避免过多列出课程名称,因为招生委员会会查看你的成绩单。6 j! I% S- ]+ o+ f8 m
- 用一个完整的故事来深刻展示你的学习能力,包括目标、遇到的困难、解决过程和结果。
: z; g% P7 y6 u$ N3 U; b 推荐的转专业计算机科学项目( G7 w$ r& K* C
. Z- N _( P5 t, B以下是一些大学,排名不分先后,它们都在2016年提供了转专业的计算机科学硕士项目。虽然我本来想按难度排列它们,但是录取结果似乎相当随机,所以我不想误导大家。我只提到了一些知名的学校,以下是其中一些:9 { u; w9 e9 |% o6 c
( M4 D, H( q: H+ W+ m8 S
7 z; w. a [0 K! N7 Z
& S# }; M3 r% C2 q9 {) _- Emory University: Emory的计算机科学项目虽然没有排名,但是它的计算科学硕士项目值得一提。特别是最近备受欢迎的数据科学方向。如果你的数学背景强,但没有计算机科学基础,可以考虑申请这个项目。
2 ^3 s5 ~ u0 S& c" |: ?" d \ - University of Chicago: 芝加哥大学提供两个MPCS项目(12门课程和9门课程),以及与政治学合作的计算分析与公共政策项目。这些项目都对转专业的申请者开放,而CAPP项目对录取要求较高。
7 K) o. C3 _5 k( N- T+ X - Northwestern University: 诺斯西比大学的项目较为特殊,计算机工程、计算机科学和电子工程合并在一个学院内,互相可以选择课程。录取要求取决于你申请的方向,但他们基本上不录取零基础的本科生。# z \7 V2 N4 l2 J \' X
- USC, Brandeis, NYU Tandon: 这三所学校被认为是转专业的备选之一,可以作为保底校。无论你的基础是0,0.3,0.5还是1.0,都可以考虑申请这些学校。
' _% |* {: M$ v$ _ - NYU-Courant: 纽约大学Courant计算机科学硕士项目非常适合零基础的申请者。如果你的基础较差,他们会自动为你提供一年的计算机科学基础课程。# g- \0 S9 }1 q8 r
- Columbia: 哥伦比亚大学的计算机科学项目要求申请者修完《计算机导论》、《高级编程》、《数据结构与算法》等课程。每年录取的人数超过150人,但相对于申请人数,录取难度较高。( p) N2 }2 U* C+ t9 X; W
- Brown University: 布朗大学的计算机科学项目要求申请者修完一门编程课程、一门算法和数据结构课程、计算机系统或软件工程课程、离散数学和基本概率课程、以及线性代数课程。虽然排名不高,但每年在地里都会有成功的转专业申请案例。7 R$ V6 `1 ^, s8 f- a4 O
- University of Pennsylvania (MCIT): 宾夕法尼亚大学的MCIT项目是转专业申请者的首选之一,虽然录取难度也较大。# I! d1 G- {: F
- University of Pennsylvania (Engineering): 宾夕法尼亚大学内部的双专业制度允许你在工程学院内选择MCIT或CIS双专业,这提供了一个替代路径。你可以先进入宾夕法尼亚大学工程学院,然后在第一个学期选修一些计算机科学课程,最后转入或双重专业。% ^: y. @$ v, K+ @1 K
5 F+ Z2 X& o Y. x3 y- [8 ~: f
; O1 @# M. l+ k& N6 I
最后,当然就是大CMU了。但是由于该学校有太多项目,也几乎是转码的最热门的学校,我就不进行介绍了。希望这些建议和推荐能帮助大家更好地理解如何申请计算机科学硕士项目。这个帖子也欢迎大家前来投稿,如果有其他学校很适合同学转码,我会继续更新。 |