-
-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathdemystify.typ
More file actions
3275 lines (2037 loc) · 311 KB
/
demystify.typ
File metadata and controls
3275 lines (2037 loc) · 311 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#set page(numbering: "1", number-align: center)
#set heading(numbering: "1.")
#set par(justify: true)
#set text(
//font: "Noto Serif",
//font: "New Computer Modern",
//font: "TeX Gyre Pagella",
size: 12pt
)
#set list(indent: 1em)
#set enum(indent: 1em)
#show heading: set block(below: 1.5em, above: 1.5em)
#show ref: set text(fill:blue)
#show link: set text(fill:blue)
#show link: underline
#show figure.caption: set text(size: 10pt)
// Inline code
#show raw.where(block: false): it => box(fill: rgb("#f0f0f0"), inset: (x: 2pt), radius: 2pt, it)
// Code blocks
#show raw.where(block: true): it => block(
fill: gray.lighten(80%),
inset: 10pt,
radius: 5pt,
width: 100%,
text(size: 0.85em, it)
)
// #set heading(numbering: (..nums) => {
// let vals = nums.pos()
// if vals.len() == 1 {
// // Level 1: roman numerals
// numbering("I.", vals.first())
// } else {
// // Level 2+: regular numbers
// numbering("I.1.", ..vals)
// }
// })
#set par(first-line-indent: (amount: 1.5em, all: false))
#let mytitle = "Demystifying PhD Admissions in Computer Science"
#let mysubtitle = "A Handbook for Navigating CS PhD Admissions in the U.S."
#let me = "ThanhVu (Vu) Nguyen"
#let institute = "George Mason University"
#let mybookgithub = "https://code.roars.dev/phd-cs-us"
#let alert(txt) = {highlight(fill:red.lighten(30%))[#txt]}
#let paragraph(title, body) = {
v(0.5em)
text(weight: "bold", style: "italic")[#highlight(fill:gray.lighten(70%))[#title] ]
body
}
#let simpsons(s) = quote(
attribution: [#text(size:0.85em)[*The Simpsons* 😱]],
block:true
)[
#text(style:"italic", size:0.85em)[#s]
]
#let cb(who: none, fill:gray, icon, msg) = block(
width: 100%,
fill: fill,
radius: (right: 5pt),
stroke: (left: 3pt + fill.darken(10%)),
inset: (left: 10pt, right: 10pt, y: 10pt),
)[
#icon
#if who != none [
#text(weight: "bold", size: 0.9em)[#who] \
]
#text(size: 0.85em)[#msg]
]
#let commentbox(who: none, msg) = cb(who: who, fill: gray.lighten(80%), [💬], msg)
#let keybox(msg) = cb(fill: yellow.lighten(90%), [🔑],msg)
#let examplebox(msg) = cb(fill: green.lighten(95%), [💡], msg)
#let warningbox(msg) = cb(fill:red.lighten(80%), [🚨️], msg)
#let redact(text, fill: black, height: 1em) = {
box(rect(fill: fill, height: height)[#hide(text)])
}
#show figure.where(kind: image): set figure(supplement: [Fig.])
#show figure.where(kind: table): set figure(supplement: [Tab.])
#show math.equation: set math.equation(supplement: [Eq.])
#show heading: set heading(supplement: [Sec.])
// Title Page
#align(center)[
#box(
stroke: (x: 3pt + olive, y: 3pt + olive),
inset: 1in
)[
#v(0.5fr)
#text(size: 22pt, weight: "bold")[#mytitle]
#v(1em)
#text(size: 16pt, weight: "bold")[#mysubtitle]
#v(1fr)
#image("files/usamap.png", width: 100%)
#v(1fr)
#text(size: 18pt, weight: "bold")[#me]
#v(0.2fr)
#text(size: 14pt)[#institute]
]
]
#pagebreak()
#v(1fr)
#commentbox[
This #link(mybookgithub)[work] © #datetime.today().year() by #me is licensed under CC BY-NC-ND 4.0. To view a copy of this license, visit #link("https://creativecommons.org/licenses/by-nc-nd/4.0/")[creativecommons.org].
]
#pagebreak()
#outline(title: "Contents and Summary")
#pagebreak()
#heading(numbering: none)[Preface]
Having been involved in PhD admission committees for many years, I've observed that students---especially those in smaller countries, less well-known universities, or 1st generation college students---often lack a clear understanding of the Computer Science (CS) PhD admission process at US universities. This confusion not only discourages them from applying but also creates the perception that getting admitted to a CS PhD program in the US is unrealistically difficult.
// % though \emph{very} top schools could be very selective, e.g., see the \href{https://da-data.blogspot.com/2015/03/reflecting-on-cs-graduate-admissions.html}{admission process} at CMU
So I want to share some details about the admission process and advice for those who are interested in applying for a *PhD in CS in the US*.
Originally, this book was written for international students, but has been expanded to generalize and include specific tips for *US domestic students* (@chap:domestic-students), e.g., applying for the NSF GRFP (@sec:nsf-grfp) and DoD NDSEG (@sec:dod-ndseg) fellowships.
Moreover, while this book aims at students interested in CS, it might be relevant to students from various STEM disciplines (@sec:fields-and-areas).
Furthermore, although many examples are specifics for schools that I and other contributors of this book know about, the information should be generalizable to other good R1 institutions in the US.
This book can help *US faculty and admission committee* gain a better understanding of international students and their cultural differences (@chap:cultural). By recognizing and leveraging these differences, CS programs in the US can attract larger and more competitive application pools from international students.
I hope this book will help you understand the CS PhD admission process in the US and make informed decisions.
Additional information about the book can be found in @chap:about.
#pagebreak()
// \mainmatter
= Introduction <part:intro>
== Should You Apply? <chap:should>
//Definitely, yes. CS PhD study in the US is often *fully funded* and admission into good universities in the US is *not* any harder than in other countries.
#simpsons[
Don't make fun of graduate students. They just made a terrible life choice.
]
Many students, especially those from less well-known universities and smaller countries, often wonder if they should apply to a CS PhD program in the US. Common concerns include (i) the *difficulty of getting admitted* and (ii) the *cost of graduate study* in the US.
Much of these uncertainties stem from the lack of information and guidance on the admission process in the US. Social platforms like Facebook and Reddit are full of confusion and contradictory information.
This book aims to address these concerns.
#figure(
image("files/imposter.jpeg", width: 50%),
caption: [Stress caused by imposter syndrome is real. Don't let it stop you from applying to CS PhD programs in the US!]
) <fig:imposter>
#paragraph([Not any harder than other countries])[Applying to a good US university *should not* be any harder than at schools in other countries. It might even be more flexible since CS PhD in the US *do not* require having an MS or a research topic, proposal, or adviser in advance (@sec:non-us-differences compares CS PhD study in the US to other countries). It doesn't even require having a CS background (@sec:non-stem).
If you believe you have a chance in other countries, e.g., Australia, Canada, Japan, Germany, UK, South Korea, and Singapore, then you will surely have a chance in the US as well.]
#commentbox([The most selective US schools, e.g., top 10 in CS (@chap:rankings), are extremely competitive for everyone, regardless of background. Don't be discouraged if you don't get into a "household name" university as there are many excellent CS programs (@sec:selecting-ranking-schools) in the US that are not as well-known internationally but still offer great research opportunities and training. In fact, many top CS researchers and faculty members in the US did not graduate from Ivy League or top 10 schools.
Many students, especially those from smaller countries or schools, feel *imposter syndrome*---worrying they're "not good enough", or get discouraged when competing with others with "stronger" profiles (@sec:profile-not-strong). Remember (@chap:evalapps): adcom looks for potential and evidence you'll thrive in research environment and fit well at their institution---in other words, things that usually have nothing to do with your GPA or GRE scores.
])
#paragraph([Funding Is Not An Issue])[In most cases CS PhD students _do not_ need to worry about funding, especially at good R1 universities in the US.
If you are admitted, you will almost certainly receive _full funding_ (@chap:funding) to support your study.
Your funding includes tuition, health insurance, and stipend /*TODO @glossary[stipend]*/ (in STEM field in CS you get paid for your study!).
Moreover, you often receive additional benefits such as summer pay (@sec:summer-funding), laptops (@sec:buying-equipment), and traveling to conferences and workshops.
Full funding for CS PhD students is the norm in the US, and I'd go as far as to say that if you are not admitted with full funding, you might want to not accept the offer. The reason is that CS is in high demand and you're actively contributing to improving the reputation of the university and more generally advancing CS.
#warningbox([While full funding is standard for CS PhD as mentioned above, always double-check the details of your offer (@sec:offer-letters) before accepting, especially for programs outside STEM or at smaller/private universities.]
)
]
// % \paragraph{Discrimination is not tolerated} Not only is discrimination illegal, diversity and inclusion are highly valued in US universities. Many universities take great pride in their diverse student body and faculty.
// % In fact, many resources are available to encourage and support students from minority and diverse groups to pursue higher education and research, e.g., specific scholarships and fellowships. Faculty in CS are also familiar with and are encouraged to support such students in their group. There are also incentives, such as dedicated funding and awards, to motivate faculty to recruit and mentor minority students (\autoref{sec:urm}).
== What's a PhD in CS? <sec:phd-in-cs>
//\sectioninfo{A PhD in CS is a \textbf{research} degree that transforms you into a researcher in a specific area of CS.
// You will become an expert in a particular topic and know more about it than anyone else in the world (in many cases even your advisor).}
A PhD in CS is a #highlight[research degree]. Unlike undergraduate or even Master's programs (@chap:ms), which focus on breadth of knowledge through coursework, a PhD is about depth and pushing the boundary of a specific area within a CS fields, such as software verification within the field of Programming Languages or Formal Methods (@sec:fields-and-areas). You will become an expert in your area of research and contribute something new to the field that has never been done before.
#commentbox([This #link("https://matt.might.net/articles/phd-school-in-pictures/")[series of pictures] from #link("https://matt.might.net")[Matt Might] illustrates what a PhD means.])
Career-wise, a CS PhD prepares you for jobs that require deep technical expertise and the ability to do independent research. Many graduates become professors or academic researchers while others pursue positions in industry research labs, advanced engineering teams, or technical leadership positions. The degree also opens doors to national labs, government agencies, and startups, where the ability to solve unknown and complex problems is necessary.
#commentbox([A PhD is not just a degree, it is a *journey* that transforms you into a researcher. You will learn how to think critically, solve problems, deal with adversity, and work independently. You will also learn how to write and "sell" your work, collaborate with others, and effectively communicate your ideas. In the end, you will have a deep understanding of your chosen field and become an expert in your area of research. In fact, you will know about your research topic more than *anyone* else in the world, including, in many cases, your adviser! This is a scary thought, but it is also exciting and rewarding.]
)
=== CS Fields and Areas <sec:fields-and-areas>
CS is a broad academic discipline with many specialized areas of research. Understanding the structure of CS can help you communicate your research interests and goals more effectively, e.g., in your SOP (@chap:sop), and also assist you in finding suitable advisers and research topics (@sec:finding-adviser).
#paragraph([Disciplines])[At the highest level, academic _disciplines_ are broad domains of scholarly study, such as CS, Mathematics, Physics, Biology, Economics, Law, Social Sciences, and the Humanities. Universities typically have entire departments and degree programs centered on these disciplines (e.g., a Dept. of Computer Science or of Economics).]
#commentbox([_STEM fields_ collectively refer to the disciplines in the domains of:
- *Science:* Physics, Chemistry, Biology, Geology
- *Technology:* Computer Science, Cybersecurity, Data Science, Information Technology
- *Engineering:* Electrical, Mechanical, Civil, Chemical, and Bioengineering
- *Mathematics:* Pure and Applied Math, Statistics, Operations Research
])
#paragraph([Fields])[Within a discipline such as CS, we have _fields_---major branches that often correspond to faculty groups, conference communities, and sometimes even degree tracks. Common fields in CS include:
- Artificial Intelligence (AI),
- Machine Learning (ML),
- Software Engineering (SE),
- Programming Languages (PL),
- Theory of Computation (TCS),
- Computer Architecture,
- Operating Systems,
- Security and Privacy,
- Computer Vision (CV),
- Natural Language Processing (NLP),
- Human-Computer Interaction (HCI),
- Databases,
- Networking,
- Graphics and Visualization,
- Computational Biology
Most faculty have a _home_ field with which they are primarily associated, but may also publish in related fields. For example, SE researchers often work in PL and Formal Methods; Security researchers may also work in Systems and Theory.
]
#paragraph([Areas])[Within a field, we have _areas_---narrower subfields where people specialize. For example, PL includes Type Systems, Formal Verification, Program Synthesis; SE includes Testing, Program Repair, Empirical SE, and AI4SE (a new and fast-growing area); and
ML includes Supervised/Unsupervised Learning, Reinforcement Learning, and ML Theory, and
AI traditionally includes Planning, Reasoning, and Robotics (though many of these are now distinct fields).
Some areas are growing so large that they are becoming fields in their own right. ML, for instance, originated within AI but is now widely regarded as a standalone field.]
#paragraph([Topics and Projects])[Finally, we have _research topics_, which refer to concrete problems or techniques within an area. For instance,
Model Checking, Theorem Proving in Formal Verification, and Mutation Testing, Test Prioritization, and Symbolic Execution in Software Testing.
At the finest granularity, a research _project_ or dissertation focuses on a specific question within a topic (or cross-topics and even cross-areas). For example: "How can symbolic execution be applied to generate high-coverage test cases for deep neural networks?"
#commentbox([
For example, my own #link("https://roars.dev")[research profile] can be structured as:
- *Discipline:* Computer Science
- *Fields:* Software Engineering and Formal Methods
- *Areas:* Software Verification, Testing, and Analysis
- *Topics:* Theorem Proving, Symbolic Execution, Test Generation
- *Projects:* Applying automated theorem proving to verify the correctness of deep neural networks, and using dynamic analysis to synthesize program invariants
])
]
=== How long to complete the CS PhD program? <sec:time>
// \sectioninfo{About 5--7 years in the US.}
Typically it takes 5--7 years for a CS PhD in the US. This is usually longer compared to other countries (@sec:non-us-differences), which might require having an MS (@sec:phd-vs-ms).
#figure(
image("files/c4a.png", width: 50%),
caption: [The "ambition" level of a PhD student over their years of study (they miss the 6--7th year when the ambition is _"Just let me graduate"_).],
)
The first two years are typically spent taking coursework (somewhat equivalent to MS study), finding an adviser, and learning how to do research. The next 2--3 years focus on research, forming a dissertation topic, and getting results published. The last 1--2 years are usually spent continuing to publish, writing and defending the dissertation, and looking for a job.
Within these 5--7 years, CS PhD students sometimes take a "leave of absence" for 1--2 semesters or for a summer to do internships at companies and research labs.
#commentbox[
I started my PhD with an MS, and it took me 7 years (Fall '07--Fall '14). I spent half a year doing an internship at the #link("https://www.nrl.navy.mil")[Naval Research Lab]. My PhD did take a bit longer than usual, but it allowed me to explore new research areas and topics.
]
=== Undergrad Not in CS or Related Disciplines <sec:non-stem>
// \sectioninfo{You can successfully apply to CS PhD even if you have non-CS background.}
Even if your undergraduate degree is not in CS or a related discipline, you still can apply to a PhD in CS _as long as_ you can demonstrate that you are ready for it through your background, research experience, LoRs, statements, etc. You might even be able to leverage this to make your profile stand out, as mentioned in @sec:stand-out.
A main concern for a non-CS or non-STEM student is whether you have sufficient technical background from core CS courses. So you need to demonstrate that you have this knowledge through your coursework, projects, or research.
For example, if you have taken a class on algorithms, even an online course from Coursera, you can talk about it in your SOP. If you have done a project that requires knowledge of operating systems or have a professional certification (e.g., A+) through work, you can talk about it. If you have done research that requires knowledge of discrete math, you can talk about it. You can also ask your LoR writers to discuss your technical background.
#paragraph([Core CS topics])[Common CS knowledge that you should know includes:
- *Programming foundation:* programming concepts in modern languages such as C++ or Java.
- *Discrete math:* logic, set theory, proof techniques.
- *Data structures and algorithms:* linked lists, trees, sorting, searching.
- *Computer OS or systems:* memory management, file systems, processes.
]
In short, you _do not need_ to formally take CS courses. You just need to show that you have this essential knowledge, for example through the ways mentioned above. Many universities are well aware that incoming graduate students might not have all the technical background, so they often have _“bridge”_ courses to help students catch up. For example, GMU has four bridge courses corresponding to the four core areas above that incoming students can take to catch up on their CS knowledge.
#commentbox[
I would advocate for a non-STEM student who shows they have a strong drive for CS by studying core CS knowledge through various channels (e.g., self-study through online courses, projects, etc.). I have seen many students with non-CS backgrounds who are very successful in CS PhD. I have also seen many students with CS backgrounds who are not successful in a CS PhD. So it is not about your background; it is about your drive and passion for CS research.
]
=== Is MS Required for CS PhD Admission? <sec:msrequirement>
// \sectioninfo{You do not need an MS to do PhD in CS.}
No, while other countries often encourage or even require an MS for PhD students in CS (@sec:non-us-differences), it is common in the US to directly apply for a PhD program after a 4-year undergraduate program (e.g., after getting a BS degree). In addition, most CS PhD programs are designed so that students can get an MS degree "along the way" to the PhD, for example after finishing the 2-year coursework. This is one of the reasons why a CS PhD in the US takes longer (5--7 years, @sec:time) than in other countries.
However, an MS _can help_ admission if it gives research experience or is from a more well-known school than your undergraduate institution (@chap:your-school).
Some professors prefer students with an MS since they have more experience and are more mature. But this is not a requirement, and many professors are happy to take students without an MS.
Moreover, if you have an MS, then some coursework _might_ be transferred for course credit, which _might_ save some time. But in general, don't count on finishing earlier just because you have an MS.
#commentbox[
I started my PhD with an MS in CS from a US university. The MS helped me gain research experience, but I still had to retake courses because I did my MS at a different university. So in the end, I did not save any time because of the MS.
In general, don't worry if you don't have an MS. But also don't feel that you wasted your time if you have an MS, as it can help you in research.
]
=== Can I apply for PhD in CS for the Spring or Summer? <sec:apply-spring-summer>
Most students apply to start their PhD in the Fall. This means they submit their application around December, receive admission decisions sometime in the Spring, and officially begin their PhD in the Fall (August or September).
Fall---the start of the academic year---is the most common start time for PhD programs in the US, and many universities only accept new PhD students in the Fall. Importantly, applying for the Fall also gives you access to funding opportunities (@chap:funding) that are available only for Fall admits, such as TAships (@sec:ta) and some fellowships.
However, many universities also accept PhD students in the Spring or Summer, especially when you have a specific adviser who can fund you through an RAship (@sec:ra). This is less common, and you may lose funding opportunities that are available only for Fall admits.
#commentbox[
GMU allows PhD students to start in the Spring, but it is usually not recommended. Two of my PhD students started in the Spring because I had funding to support them right away. In general, a student can start in the Spring or even Summer only if an adviser already has RA funding for them. Students who do not start in the Fall may also lose benefits reserved for Fall admits, such as a first-summer stipend. So in short, it is possible, but I do not recommend it in general.
]
=== PhD in the US vs. Other Countries <sec:non-us-differences>
// \sectioninfo{Among several differences, CS PhD in the US does not require an MS degree but has a longer PhD study time.}
#figure(caption: [Comparison of the CS PhD program in the US and other countries],
text(size:11pt)[
#table(
columns: 3, align: left, stroke: none,
table.header(
[*Aspect*], [*US PhD Programs*], [*Other Countries*],
),
table.hline(),
[Duration], [5--7 years], [3--5 years],
[MS Required], [Not required], [Often required],
[Coursework Required], [Yes (first 2 years)], [No],
[Research Proposal Required], [No], [Yes (in some countries)],
[Academic (Faculty) Job], [Direct], [Postdoc],
[Work-Life Balance], [Less], [More],
)
]
)<tab:us-vs-other>
@tab:us-vs-other summarizes the main differences between CS PhD in the US and other countries. Note that these differences can vary by institution and country. Some countries might have a PhD program that is similar to the US. The following are some common differences:
- *MS requirement and PhD duration*: CS PhD programs in the US do not require an MS degree (@sec:time, @sec:msrequirement). In contrast, many other countries require having an MS degree before joining a PhD program. This means that US PhD programs are longer (5--7 years, 2 of which are coursework) than other countries (3--4 years, no coursework).
- *Project proposal*: In many countries, you have to choose a project and adviser *during* the application process (e.g., you write a proposal to a potential adviser). But this allows you to start your research right from the beginning. In the US, you often start your PhD without an adviser or project and find them later. Usually you have two initial years to take classes, explore and find an adviser and research topic.
- *Coursework*: In the US you will spend the first couple of years taking classes and exploring potential adviser and research topics. After that, you have to pass a series of exams during your PhD---qualifying exam, comprehensive exam, thesis proposal defense#footnote[ABD (all but dissertation) refers to a PhD candidate who has finished all course work and exams and only needs to write and defend their dissertation.]. In other countries, you often start your research right away and work on the research project you proposed with the adviser you chose. Moreover, you might not have exams like those in the US or only have to do a few of them.
- *Funding*: In many countries, funding comes from the university or the government. This funding often has a fixed duration, e.g., 3 or 4 years. In the US (@chap:funding), funding such as RA comes directly from your adviser (no fixed duration). There are also fewer TA opportunities in European universities compared to the US.
- *Academic Position after PhD*: In other countries, PhD graduates interested in academia typically apply for additional research appointments, i.e., postdocs in the US, and then consider faculty positions. In the US, PhD graduates often apply directly for faculty positions. Postdoc for US graduates is no longer a popular option as it was before. The reason is that US PhD programs are longer, so you already have enough research experience (e.g., papers) to apply for faculty positions. In contrast, in other countries, PhD students often finish their PhD earlier and need more time to gain research experience before applying for faculty positions.
- *Work-life Balance*: PhD students in the US are often said to be overworked compared to other countries, e.g., in Europe. This is partly due to the longer PhD program and that US PhD students are often paid through TA, which requires them to do TA in addition to their own research. In contrast, PhD students in other countries are often paid through fellowships, which might not require doing TA.
#commentbox[
Work-life balance is more of a personal and cultural issue than a regulatory one. US academia is known for its intense work culture, because students themselves are fiercely competitive (after reading this book you would see how competitive it is to get into a good PhD program in the US), and faculty are expected to publish frequently.
The system strongly favors those that work hard and produce results, which can create a culture of long hours and high stress.
]
// % One of the reasons I created this document is that my colleagues at GMU are interested in recruiting Vietnamese students and are surprised when seeing very few applications in Vietnam (see \autoref{chap:ack}). Each year our CS PhD program receives 500+ PhD applications, most of which are international but only 5--6 are from Vietnam.
// % \end{commentbox}
// % \section{Timeline}
// % \begin{table}[h!]
// % \centering
// % \begin{tabular}{l|l}
// % \toprule
// % \textbf{Month} & \textbf{Task} \\
// % \midrule
// % January-March & Research programs and prepare for tests \\
// % April-June & Take standardized tests (GRE, TOEFL, etc.) \\
// % July-September & Prepare application materials (SOP, LORs, etc.) \\
// % October-December & Submit applications \\
// % January-March & Interviews and follow-ups \\
// % April & Admission decisions \\
// % \bottomrule
// % \end{tabular}
// % \caption{Application Timeline}
// % \end{table}
// % \section{Why the US and not other countries?}
// % TODO
== How is Your Application Evaluated? <chap:evalapps>
// \chapterinfo{Applications are evaluated by the PhD Admission (\acrshort{adcom}) committee and each application is typically reviewed by three \glslink{adcom-members}{faculty members}.}
After you submit your PhD application, it will be checked for general requirements---whether you submit your transcripts and standard scores? Usually, this screening process is done through a central university system, i.e., not by CS faculty.
After screening, your application is complete and forwarded to the CS department for further evaluation. If you don't pass screening, the system will tell you what is missing and what you need to do. So pay attention to your email and check your application status regularly.
#commentbox(who:"Hakan", [At GMU, for full consideration, students should make sure to submit _ALL_ required documents by the application deadline, and should never assume that some required documents (such as official TOEFL scores or official diplomas/transcripts) will be waived by the admissions office. If something is listed and not marked as optional, it is mandatory and they should plan for submitting all those.])
=== Admission Committee <sec:adcom>
// \sectioninfo{Adcom members are faculty who evaluate your application. They consider various factors, e.g., research experience, LoRs, SOP}
Your applications are reviewed by a PhD admission committee or #highlight[adcom] /*\acrfull{adcom}*/, which consists of CS faculty with diverse expertise (e.g., AI, Systems, Theory, SE, HCI). Some committees may include affiliated faculty from other disciplines.
The size and workload of the adcom depend on the department. At GMU, the PhD adcom has about 15--20 faculty, each reviewing ~30 applications. Large schools often have separate adcoms for MS programs (@chap:ms).
PhD adcoms typically include assistant professors (@sec:faculty-types), giving junior faculty opportunities to recruit students. The adcom chair /*\gls{adcom-chair}*/ is usually a senior faculty who assigns applications to reviewers based on research interests or faculty mentioned by applicants (e.g., I review SE applicants).
Each application is assigned to about three adcom members, who independently evaluate your profile and then reach a consensus. They consider factors such as LoRs, SOP, research experience, GPA, test scores, and interviews. (see @part:application).
#commentbox([
At GMU, we usually admit full-time PhD candidates with funding (@chap:funding) or reject them. In rare cases, we admit without funding if you have external support (e.g., government or fellowship). We justify our decision (@sec:ievaluate) with a summary of your application, listing strengths (e.g., well-known school) and weaknesses (e.g., generic LoRs).
])
=== How Applications are Assigned to Adcom Members? <sec:applications-assigned>
// \sectioninfo{Adcom members only review applications assigned to them (typically matching their expertise) and rarely get involved in other applications}
Adcom members typically can view any submitted applications. However, we only review those that are assigned to us, which are already too many. Adcom chair will assign applications to reviewers based on their expertise, e.g., if a student says they want to do SE or interested in working with me, and reviewers will only evaluate those applications. Occasionally we might look at other applications, e.g., if the student contacted me, I know that student, or they are from a school in Vietnam I am familiar with. However, even if we look at them, we usually do not get involved in their evaluation directly.
Note that the assigned reviewers are the main ones deciding your application, but at many schools other faculty in the department can also have access to your application and provide inputs and opinions on your profile. Thus, it helps to contact faculty (@sec:contact) and mention faculty you're interested in in your SOP (@chap:sop).
=== How are Decisions Made? <sec:how-decisions>
// \sectioninfo{Even if all adcom reviewers recommend acceptance, the application can still be rejected. Vice versa, if all reviewers think the application is weak, the student might still be admitted.}
After reviewers have evaluated an application, _adcom-chair_ will review all evaluations, look at entered notes, and ask reviewers to discuss and resolve discrepancies to reach a consensus (e.g., a reviewer wants to accept but the other wants to reject). Typically, the decision is made entirely by the reviewers. There is _no involvement_ from the adcom chair, department chair, or others. In most cases _adcom-members_, even those reviewing the same application, make decisions independently and do not talk to each other (just a common practice to avoid biasing). In some rare cases we might
(@sec:adcom-discuss).
Even if all reviewers recommend acceptance, the application is not automatically accepted—especially if no faculty is willing to advise the student. For example, if the applicant is interested in a research area with no available faculty (e.g., AI/ML where faculty may already have many students), then the student will not be admitted (see more rejection reasons in @sec:why-rejected). This is increasingly common as the number of applicants grows faster than available faculty. Note that not every CS faculty can formally advise and graduate CS PhD students (@sec:faculty-types).
However, if a faculty member is interested in the student and makes this known to the adcom, the student is likely to be admitted—even if the faculty does not have funding. This shows the benefit of contacting faculty (@sec:contact).
If the student mentions a faculty in their SOP, adcom may ask that faculty to review the application. Even if the student has a weak profile (but still passes the university's minimum requirements), they might be admitted if a faculty is willing to advise them. Adcom members, especially in the US, are very reluctant to go against a faculty's decision to admit a student.
=== Do Adcom Members Talk to Each Other? <sec:adcom-discuss>
// \sectioninfo{Sometimes adcom members discuss applicants, but in most cases they make independent decisions.}
We typically review applications independently and do not talk to each other. This is to avoid biasing, e.g., if one reviewer says they want to accept, the other might feel pressured to accept as well.
However, when there are discrepancies in evaluations, the adcom-chair will ask reviewers to discuss the application to reach a consensus. We might also talk to each other for interesting or strong applications, e.g., how to recruit this student or who should be the adviser.
If the student mentioned a faculty member in their SOP, we might ask that faculty if they are interested in the student.
Note that other disciplines might have different practices. For example, adcom might select a top list of applicants and then discuss them in a meeting to determine who to interview. @fig:adcom-discuss-physics shows an example of how a PhD admission committee in Physics evaluates applications.
In CS, both the reviews and interviews are often done independently (@sec:interviews).
#figure(
align(left)[
#commentbox(who:[From a prof. in Physics at an R1 university],[
We have a pretty well fleshed out grading rubric for applications that has categories like grades, research, writing ability, etc. I would say our rubric is weighted about 1/2 on academics (research, LORs, grades) and 1/2 on the idea of "grit" or "resilience" (engagement, leadership, working through obstacles).
The rubric helps a lot to standardize how committee members grade, and speeds things up a bit because you know what to look for. We spent what seemed like forever on the details of the grading system (e.g., what does a a score of "3" vs a "2" in writing look like?) but now it's very helpful.
We also do roughly three rounds of selection: a first "triage" round to determine the top ~100 applications, a second round to determine about 25 people to interview, and then a third round to decide the actual offers. That also helps to speed things up a bit, since in the first round with all the applications you can move fairly quickly since you just need to sort into "good" and "bad". By the time we're getting into the details and reading everything more closely in rounds 2 and 3 most of the applications have been removed from consideration. So for this method I do maybe 5 minutes per app in round 1, but closer to 20 minutes per app in round 2, and usually round 3 is long discussions about specific people.
,])],
caption:[An example of how a PhD admission committee in Physics evaluates applications. Note that this is not common in CS, where we typically do not have a grading rubric and do not discuss applications in a meeting.]
) <fig:adcom-discuss-physics>
//
//\end{figure}
=== How Long To Evaluate An Application? <sec:ievaluate>
// \sectioninfo{It takes me about 10--15 minutes to review an application.}
#commentbox[In the schools I've been at, the application deadline is in Dec, and adcom meets when school starts in mid or end of Jan. The adcom chair sends out review assignments to adcom members, about 30-ish per faculty (@sec:adcom). We usually have about 2 weeks to review all applications. As mentioned in @sec:adcom-discuss, adcom members review applications individually and independently. We only discuss when there are disagreements (the adcom chair determines which applications to discuss).
I typically reserve a whole day (or two days) to review all applications.
On average, I spend about 10--15 minutes reviewing each application (less for clear rejections and more for potential acceptances). While this seems short, it is not that difficult to tell if an application is good or bad. In fact, this is twice what other faculty spend on average; for example, Philip Guo spent #link("https://pg.ucsd.edu/PhD-application-tips.htm")[3--5 minutes] per application.
For each application, our system compiles a single PDF file, which consists of a summary (degrees, GPAs, etc.), transcripts, test scores, LoRs, a CV, SOP, and writing samples (@sec:writing-sample). I usually read in this order. I start with the _summary_, checking for low GPAs or test scores below the university minimum (@chap:standard-tests). I then skim the _transcripts_ for low grades in relevant courses, noting issues like "many low grades in main courses" or "unknown international school with good GPA." These are not as important as LoRs or SOP, but I read them first because the review system has questions about them (e.g., "is GPA good?" "is IELTS sufficient?").
I read _strong LoRs_ carefully and skim weaker ones, noting either strong letters from well-known professors/researchers that discuss research experience, or weak letters with generic content (e.g., "student was in my class"). I skim the _CV_ and look for publications, research experiences, and notable achievements. I take notes of things like "published papers in top venues" or "gold medal in an international competition."
I skim weak _SOPs_ but read strong ones carefully. I note whether the SOP is exciting, research-oriented, stands out, and is tailored to our program (e.g., if they are familiar with the work of some faculty or have talked to them). These notes are entered into the evaluation system.
Finally, I enter my decision, which is usually either a rejection or an offer of admission with full funding (e.g., TA). I also recommend very strong candidates for the University Presidential Fellowship, which is a fellowship from GMU that provides funding similar to an RA (@chap:funding).
Note that while the system has other decision options, e.g., admit without funding, provisional admission (e.g., if they need to take some courses), I do not use them, simply because we either reject or admit with funding.
Note that I _do not_ need to interview a student to make a decision. I can tell from the application if they are strong or not. However, if I want to recruit a student, I will ask them to chat with me.
This is quite different from other disciplines, where reviews, interviews, and selection are done in multiple rounds (see @sec:adcom-discuss for an example in Physics).
Of course, my recommendation is just one of the three or four faculty reviews of the application. The adcom chair compiles all recommendations and makes a decision based on them (@sec:adcom-discuss).
If there are disagreements, the adcom chair asks the reviewers to discuss the application.
Unfortunately, even if all reviewers recommend a student, they might not be admitted (@sec:why-rejected) if there are too many students or they are not a good fit for the program (e.g., no one is willing to advise them).
]
=== Waiving Application Fee <sec:fee-waive>
Some universities do waive application fees---for example, Rice and TTIC do not charge a fee for PhD applications, and many universities waive fees for domestic students (@chap:domestic-students).
Some programs also waive the fee if applicants attend their open house or information sessions. Others may waive the fee if the applicant provides proof of financial hardship, such as a statement from a financial adviser or a bank statement.
However, most universities do not waive the application fee, as it is typically set by the university and not the department. Individual departments and programs usually do not have the authority to waive the application fee, even if they want to.
#commentbox([
Requiring an application fee helps ensure that applicants are serious, as it discourages non-serious candidates. Most CS programs already receive too many applications and would be overwhelmed if the process were free—"hey, it's free, so I can just apply to as many schools as I want to increase my chances." Even with an application fee, competition is already very tough; imagine if the application were free and the number of applications tripled or quadrupled.
If you have financial difficulties, you can ask the department for a waiver, but this is typically only granted in exceptional cases.
])
#pagebreak()
= Application Materials <part:application>
// %\partinfo{.}
#simpsons[Son, if you really want something in this life, you have to work for it. Now quiet! They're about to announce the lottery numbers.]
The goal of adcom is to evaluate your research experience, potential, and interest to see if you _fit into their PhD program_! The emphasis here is _fitting_, which varies from school to school, faculty to faculty, and even from year to year.
The committee will look at various factors, but the most important ones are letters of recommendation (LORs), statements of purpose (SOP), and research background and experience, e.g., publications.
== Letters of Recommendation (LoR) <chap:lor>
// \chapterinfo{LORs are very important, but only if they are \textbf{personalized} and \textbf{research focused}.}
#simpsons[To whom it may concern… D'oh!]
#align(center)[
#image("files/c6.png", width: 60%)
]
Letters of Recommendation (LoRs) are crucial for PhD because (i) they paint a picture of your research ability and potential from someone who has worked closely with you, and (ii) adcom trust the opinions of your LoR writers, who are usually faculty members or researchers who have the expertise and reputation to evaluate your research ability (@sec:lor-writers). Most PhD programs require at least _two_ LORs.
#commentbox[
When reviewing applications (@sec:ievaluate), I usually read LoRs first, then the SOP (@chap:sop). If these make a strong impression, I skim through the rest of the materials; if not, I pay closer attention to other aspects before making a decision.
]
=== LoR Writers <sec:lor-writers>
// \sectioninfo{LoR writers should be someone who (i) can talk in depth about your research experience and potential and (ii) have the credibility to evaluate your research ability.}
Choose your LoR writers carefully, as they can make or break your application. LoR writers are often your research advisers and professors who have mentored you in research. A *strong* LoR is from people who meet the following two criteria:
- *Personal knowledge:* They should know you well and have worked closely with you through research projects (much preferred) or coursework. This allows them to write a letter that is *personalized* and *specific* to you.
- *Credibility:* They should have sufficient expertise and reputation to effectively assess and vouch for your research capabilities and potential. Ideally, your recommender should be an active researcher with a PhD or extensive research experience.
=== LoR from Well-Known People <sec:famous-lor>
Having a strong letter from well-recognized researcher (@chap:research-achievements) can _significantly boost_ your application. Such letters can outweigh other weaknesses such as limited publications or low GPA. Adcom members trust people they know or have heard about and respect. A well-known researcher is unlikely to recommend someone who is not good because it would damage their reputation.
However, don't worry if you haven't worked directly with well-known researchers. A strong, personalized recommendation from someone who knows you well, even if less famous, is far more valuable than a generic letter from a prominent figure who barely knows you. So again, the emphasis is on _personalized_ and _research-focused_ letters---the fame is a bonus, not a requirement.
#commentbox[
It is fine to get letters from a postdoc or even a senior PhD student who has worked closely with you and can write a strong letter. An enthusiast letter from a postdoc who has mentored you in research for the past six months is much better than a generic letter (@sec:generic-letters) from a well-known person.
]
#commentbox(who: "Didier", [
_Should letter writers have PhDs?_ In Rwanda, a lot of students interact more with teaching faculty who might not have PhD.
*Vu:* This is an interesting detail that US faculty might not be aware of. Students should mention this in their SOPs (@chap:sop). In general, someone with a PhD has been through the research process and therefore can better evaluate your research ability. But if you do not have such writer, then someone who can properly evaluate your research ability is OK (and still better than someone who has a PhD but does not know you well).
])
==== Generic Letters are Bad <sec:generic-letters>
When the writers do not know much about the applicants (e.g., just taking some course with them or not making any impression to write about), they might write a _generic_ and short letter, which is not useful and also considered weak.
_This does not mean the ref writer is not good or does not care about you_, but they just do not know you well enough to write a strong letter.
So it might be a good idea to directly ask if the prof. is willing to write a _strong_ letter for you. If not, then you should ask someone else. For example, if a student I don't know well asks me to write a letter for them, I will explicitly tell them I don't know them that well to write much about them, and such a short, generic, and weak letter will not help their case (@sec:lor-writing).
#warningbox([
Several international students mentioned that some professors are unwilling to write letters or write weak ones because they do not want (good) students to go abroad or only go to places where they want the students to go to. If you are in this situation, you should find someone else to write for you.
Sometimes students would go to great lengths just to get letters from "top" professors in their school---like department head or dean (@sec:admin-letters). But as mentioned, if these professors do not know you, their letters would likely be generic and carry little value (sometimes #alert[red flag]. Moreover, a top professor at your university might not be well-known to US faculty (see more details in @sec:admin-letters and @chap:your-school). So save the trouble and get letters from _any_ professors/supervisors who know you well and can write a good letter about _your_ research ability (@sec:famous-lor). It's better to have a good personalized letter about your own research ability from someone who is less well-known than a generic/weak letter from a well-known person.
])
==== LoRs from Dept Chair, Dean, or Supervisor at Work <sec:admin-letters>
Many students, especially international applicants, try to get LoRs from high-ranking administrators in their universities such as department chair/head, dean, or director. The students never worked with these people (they might take a class or so with these profs), but mistakenly believe that these LoRs are valuable due to the writer's high position in the university.
However, as mentioned in @sec:generic-letters such a generic LoR has little value because the writer does not know you well and can talk in depth about your research ability.
Moreover, while being well-known and respected in your local university, these writers might not be very active in research, e.g., haven't published in recent years (@chap:research-achievements). Thus they might not be well-known and recognized by adcom members.
#warningbox[
In my experience in reviewing applications from international students, letters from admin people are often generic and do not provide much value.
In many case, the letter reads like it was written by a student (@sec:self-letters), and thus is a red flag. So if you are in this situation, you should find someone else to write for you as mentioned in this section.
]
Many students get letters from supervisors from companies where they did internships or are working. It is OK as long as it is a research-based personalized letter. Again, the emphasis here is #highlight[research], i.e., the letters should describe your research experiences and potential. Letters focusing on non-research projects at a company won't carry much weight.
Finally, despite best intentions, the writers might not have the experience to write a strong LoR or lack the ability to evaluate your research ability.
This is unfortunate but common, and if you are in this situation, you should find someone else to write for you (see @sec:lor-writers and @sec:famous-lor).
#commentbox(who: "Hung", [
A sad reality is that most professors in Vietnam *DO NOT* know how to write a good letter, or are lazy in writing letters hence delegate the writing to the students. Unfortunately, there is no easy solution to this problem.
])
==== Self-written Letters are Bad <sec:self-letters>
Many letter writers ask students to write their own letters---a common practice in many countries. Unfortunately, such letters have _little value_ and are considered weak by reviewers---why can you not even find someone who cares or knows enough about you to write a candid personal reference letter? Instead of the ref. writer talking about you, in it is you who write about yourself (and they just sign the letter).
Self-written letters are _easy to spot_ because an experienced professor would write differently compared to an undergraduate student.
For example, they can provide convincing and concrete examples based on their experience and compare you to their own students, and of course the writing style is different---imagine the difference between a letter written by a professors who has been writing letters for decades and a letter written by an undergraduate student who has never written a letter before, even if the student has subscribed to ChatGPT+ (@sec:using-ai). Worse yet, if we suspect that the student wrote the letter, it is a #alert[red flag] as we will question both the student's integrity and the letter writer's credibility (because they allow this to happen).
#commentbox[
Well-known and well-respected profs would _not_ ask you to write your own letter (in fact, even not well-known ones wouldn't do this to students they care about). This might be a common practice at specific universities and the students do not have a choice as they need the letter. However, think about this: if a prof. does this often, then they either don't know how to write a LOR (more common than you would think) or simply do not know or care enough about you. In any case, such LoRs are not useful and might even hurt your application. So if you are in this situation, you should find someone else to write for you.
]
// % \subsection{Not having LoRs from Research Advisors or Mentors <sec:no-research-lor}
// % Sometimes students do not want to ask their research advisors or mentors for LoRs, e.g., they didn't have a good relationship with them, they think that the advisors might not write a strong letter, or they do not want to reveal their intention to go abroad. So the question is would adcom raise a concern if the student does not have a LoR from their research advisors or mentors?
// % The short answer is that, yes, we would raise a concern, e.g., th
=== Asking for LoRs <sec:asking-lor>
// \sectioninfo{Ask for LoRs at least a month before the deadline. Waive your right to see the letter. Help your writers by providing details about your research experience and potential.}
As mentioned in @sec:lor-writers, LoR writers should be someone who knows you well and has the credibility to evaluate your research ability. In the US, it's common for students to explicitly ask if the writer would be willing to provide a strong letter, and the writer can also be very direct in their response. If they are not willing, then you should ask someone else (you should also be thankful that they are honest with you).
#figure(
image("files/no-bandwidth.jpeg", width: 60%),
caption: [#link("https://www.reddit.com/r/gradadmissions/comments/1oibrgy/i_feel_lost_my_prof_i_worked_with_for_a_year_and/")[Reddit]!],
) <fig:no-bandwidth>
Many students get stress asking for LoRs because they worry that the writers might refuse to write for them (@fig:no-bandwidth is meant to be a joke but reflects a common concern). However, in my experience, most writers are willing to write for students who have worked with them and done well. Below are some tips to approach your LoR writers:
- *Ask in advance*: You should ask for LoRs _at least a month_ before the deadline. People have commitments and writing a strong LoR takes time (@sec:lor-writing), so give them enough time to write a strong letter for you.
- *Waive your right* (@sec:waive-right): You should always waive your right to see the letter. This shows that you trust your writers and that you are not trying to twist their words.
- *Help your writers* (@sec:help-your-LOR-writers): You should tell your writers the programs you are applying to, their deadlines, etc. You can also share your SOP with them and other details about your research experience and potential.
- *Ask for feedback*: If the writer is very close to you and willing to, you can ask them for feedback on your SOP (@chap:sop) and other application materials. If the writer is a professor, they might have served in adcom committees, seen many SOPs, and can provide valuable feedback.
- *Follow up and Stay in touch*: Follow up with your writers to make sure they have submitted the letters on time. Note that their letters might have a different due date than your application (@sec:remind-writers).
After your writers have submitted all of their letters, _thank them_ (@sec:thank-writers). Let them know the outcome of your applications and stay in touch with them. This will help you build a relationship with them and you might need them to write for you again in the future.
=== Waiving Your Right <sec:waive-right>
When you ask someone to write a letter for you, *you should always waive your right*, which is a standard practice in both school and job applications. Waiving your right shows trust in your referees and that you're not trying to influence their words. It encourages honest feedback and keeps things confidential.
If you do not waive your right, the letter writer may refuse or write a generic letter. Reviewers may question a letter that is not waived—if you don't trust your writers, find someone else. In short, waiving your right is standard and respectful.
#warningbox([
If you ask me to write a letter and do not waive your right, I will refuse. I will explain why you should waive your right, but if you insist, I *will not* write for you.
])
=== Helping Your LOR Writer <sec:help-your-LOR-writers>
As mentioned in @sec:generic-letters and @sec:self-letters, you should not write your own letter and generic letters do not provide much value. Thus, to help your writer produce a strong customized LoR, you can provide them details or unique things about yourself. For example, let them know about your GPA, research and work experience, papers (if any), or anything you want them to mention. If the GPA in your program is highly competitive (@sec:gpa) and they know that, remind them to talk about it in the LoR.
You can also provide them with a draft of your SOP so that they can see what you are saying about yourself and complement that with their own perspective.
Sometimes your writer will explicitly ask you for such information, but if not, you should provide it anyway (especially if you have not interacted with them much or have not done much research with them).
#commentbox[
If your grading system is not US standard, or you are from a good school but is unknown outside your country, you can ask your reference writers to explain that in their letters. For example, _Bach Khoa's_ are the top universities in Vietnam for STEM studies but few people outside Vietnam know about them. So if you are from there, you should ask your reference writers to mention that.
]
=== Reminding Your Writers <sec:remind-writers>
After entering your writers' information in the application system, you should tell your writers about that and let them know they will soon receive an email from the university to submit their letters. You should also tell them when you submit your application and remind them to submit their letters on time if they haven't done so.
Note that most places only have deadlines for the applicant, but are very flexible with the letter writers. In many cases your LoR writers _are not given any deadline_. @fig:lor-invitations lists several LoR invitation emails I received from various universities in the past few years.
#figure(
caption: [Examples of LoR invitation emails],
align(left)[
#commentbox[
*Sample 1 (No deadline):*
.. is applying for admission into the Computer Science (Ph.D.) program in the Graduate School at the University of Massachusetts Amherst and has listed you as a reference.
_They have waived their right of access to see your reference._
You may submit your reference online via the Graduate Reference Center, which is located at .. Please use the email address and code shown below to log in to submit this reference.
A timely response is important for this applicant to be favorably considered. Please be aware that the applicant's admission could be contingent on your prompt response.
*Sample 2 (No deadline):*
Dear ..
.. has requested that you write a letter of recommendation for their Illinois graduate application. We greatly appreciate your feedback on X's ability to succeed in their graduate studies at Illinois.
In an effort to make this process as easy as possible for you, we offer the ability to upload your recommendation letter online through our secure website. To submit your recommendation, please use the link below. This link is unique to this recommendation and should not be shared or forwarded.
Thank you!
*Sample 3 (No deadline):*
.. is applying to the University of Nebraska-Lincoln and has named you as a recommender. _This applicant has waived the right to view your recommendation._
Please complete our brief recommendation form (or if necessary, decline to recommend).
Should you experience any technical difficulties or require assistance with your account, please contact CollegeNET Support.
Thank you.
*Sample 4 (With deadline):*
Dear Dr ..
.. has listed you as a reference in an application to the EECS graduate program at MIT. If you are not .., please ask .. for the correct letter submission information. Please submit your letter here: ..
The deadline for the applicant is *Dec 15*; we start the admissions process immediately after that date, so we would appreciate receiving your recommendation by then. The applicant can see if you have submitted a letter, and may remind you.
Even though the applicant knows the link for submitting a letter, the applicant is unable to read your submitted letter. The https URL ensures that you connect to MIT's graduate admissions server. That server accepts letter submissions, but will not reveal a submitted letter.
Thank you!
*Sample 5 (With deadline):*
Dear Recommender,
The applicant listed below has applied to a graduate program in the School of Computer Science at Carnegie Mellon University and has requested a letter of recommendation from you.
Applicant: ..
Click Here if your mail system provides html content or use the URL below to enter your letter of recommendation in PDF form only.
Your letter of recommendation is due by *12 p.m. (Noon) EST on December 10, 20XX*. Thank you for taking the time to respond.
]]
) <fig:lor-invitations>
Also, many places do not begin the admission review process right after the deadline and work on application reviews in the next semester (mid-January).
Thus you do want to send reminders because professors can be quite busy (@sec:busy) and might forget to submit their letters, especially when there is no explicit deadline. However, do not send too many reminders as that can be annoying to the writers.
=== Thanking and Updating Your Writers <sec:thank-writers>
After your application is submitted and your writers have submitted their letters---i.e., the wait begins (@part:after-apply)---you should send quick thank you notes to your writers. This serves both as an acknowledgement that you know they have submitted the letters and as an appreciation for their help.
You should also update them with the outcome of your application, regardless of whether you are admitted or not. In addition to being a common courtesy, this can also help maintain a good relationship with your writers (@sec:maintaining-relationships), which can be useful in the future (e.g., if you need another letter for another round of applications or for a job reference).
More generally, you should do the same for anyone who has helped you during the application process, such as profs. who provided advice, mentors who guided you, and friends and family who supported you.
=== My Perspective <sec:my-lor-perspective>
#commentbox[
In this #link("https://www.reddit.com/r/gradadmissions/comments/1p0lkim/perspective_on_lors_after_sending_a_big_batch/")[Reddit post], I provide my perspective about LoRs and what I expect from my students when they ask me to write for them. You can share this with your writers if you think it is useful.
]
==== How Do I Write a LoR? <sec:lor-writing>
#commentbox[
If a student asks me to write letter for them, I will generally agree as I believe it is my responsibility. I will ask them to waive their right to see the letter (@sec:waive-right), and will not write if they do not do so.
I will also let the student know if I cannot write a strong letter for them (e.g., I don't know them that well), and suggest they find someone else. If they insist, then I will write for them. While I try to say something positive, e.g., the student is hardworking and receive good grades, the letter will still be short and weak (@sec:generic-letters). Usually it takes me about *5–10* minutes to write such a "weak" letter.
Strong letters will require a lot more time and effort as it will be personalized. While I have a general template for LoR, it still can take me *half an hour or more* to write it. I often ask the students to provide information (@sec:help-your-LOR-writers) and what they think I should highlight in the letter. They can also provide me their SOP (if they already have written one) so I can complement what they say with my own perspective. I often do not share what I write with the students, just to keep it more genuine and honest.
My letter always has the university letterhead and my signature. While having a letterhead or signing the letter is *not required* (I never paid much attention to these when reading LoRs), it makes the letter more official and professional.
This website has the template of the letter with letterhead and signature: #link("https://www.overleaf.com/read/xzyrxkdjfxsp#2a1f9e")[Overleaf template].
I (and most profs.) often do not write a new letter or customize the letter for each application or school. Instead, I write you a LoR, which is customized for _you_, but can be used to apply for multiple schools (e.g., "Dear Admissions Committee", instead of "Dear _MIT_ Admissions Committee").
Finally, I usually submit a letter for a student in *batch*—submit to all universities that student is applying to at the same time). Typically, each submission takes about 1–5 mins, depending on the application system. I will also let the student know when I have submitted the letter, and ask if I miss any.
]
==== Will It Be Annoying If You Ask For Many Letters? <sec:many-letters>
#commentbox[
As mentioned in @sec:my-lor-perspective I personally do not mind writing many letters for my students *once I have agreed to write for them* (@sec:lor-writing). Profs. in general are used to writing many letters, especially during the application season. Moreover, once a letter is written, it can be reused for multiple applications, so it does not take much time to submit the letter to different universities (no more than 5 minutes per submission).
However, some cases might raise some eyebrows, e.g., if you only aim at very top schools that the writers believe are not a good fit for you, or if you apply to too many schools (30+?) then the writers might question your seriousness or your ability to get into these schools. In short, don't overdo it, but applying to 10–15 schools is perfectly fine and common.
]
// % \begin{commentbox}
// % For Vietnamese students, it's worth mentioning the \href{https://vef2.org/}{VEF2.0 program}, which has helped many students gain admission to top CS PhD programs in the US. VEF2.0 invites US faculty members from leading institutions to conduct rigorous interviews with VEF students and subsequently provide reference letters on their behalf. Despite the limited interaction between the interviewer and the interviewee (primarily just the interview), these reference letters are generally effective and have helped many students get into good PhD programs.
// % \end{commentbox}
#pagebreak()
== Research Experience (e.g., Publications)<chap:research-experience>
// \chapterinfo{Publications are not \textbf{required} but can \textbf{greatly help}. Papers in good venues are concrete evidence that you have successfully engaged in research.}
#simpsons[I've got to study harder and publish faster!]
Here we look at publications and other research experiences that can strengthen your application.
@chap:research-opportunities provides more information on how to find research opportunities, e.g., during your undergrad study.
=== Publications <sec:publications>
#figure(
image("files/wu.jpeg", width: 50%),
caption: [Applicants to top CS programs have multiple first-authored papers at top places.]
) <fig:wu>
The most concrete evidence of research ability is having *papers in reputable international conferences or journals*.
Having published papers, especially at top venues, is a sign that you have been successfully involved in research.
Publications are #highlight[never required] for PhD application. However, given the competitiveness of CS admission, they can significantly strengthen your application and #highlight[are becoming the norm] for top places. Applicants admitted to top schools, especially in popular fields such as ML and NLP, often have multiple first-authored papers at top places. @fig:wu shows examples of applicants to Stanford CS PhD.
#paragraph([Not the First Author])[Being the first author typically means you own the work and therefore know the research well. However, it's *perfectly OK to be second or third or even last*. Adcom members know it is difficult to publish a good paper, and so being a co-author is still a good sign about your research experience. In any case, especially when you're not the first author, you should explain the work and your contribution. Better yet, have your LoR writers (@sec:help-your-LOR-writers) talk about your work and contributions in their letters.]
#paragraph([Publications Not Relevant To CS or Your Research Interest])[
If you have published papers in other fields, e.g., physics, math, or even CS but not in your research interest, you should still talk about them in your SOP (@chap:sop) and upload them as writing samples (@sec:writing-sample). Also, have your LoR writers (@sec:help-your-LOR-writers) talk about them in their letters.
While not as strong as CS publications, they still show your research ability and experience, which is what adcom members care about.]
=== What If You Don't Have Any Publications?
Many students do not have the opportunity to publish papers. Thus, other writings, even those under submission or even rejected, would still help.
Be sure to upload these with your application (@sec:writing-sample) and mention them in your SOP (@chap:sop). Adcom members can quickly skim over the paper and determine its quality (@sec:ievaluate).
Note that local conferences and non-English journals or conferences do not carry as much weight since their quality is often unknown. However, if you have published in such places, you should still upload them, mention them in your statement, and explain why they are good.
#commentbox(who: "Craig", [
GMU and many other universities allow you to upload your published papers and other writing samples (@sec:writing-sample). In many cases, even if the papers were not published at top places, we can still determine their quality by simply skimming over the paper.
])
#commentbox[
Many international students mention Scopus Q1, which consists of various journals from IEEE, Elsevier, and many other publishers. I don't know/recognize many of the journals listed in Scopus Q1. This might be something to be mindful of, as *CS* faculty might not be too familiar with Scopus or journals listed there, so devote some part in your statement to discuss the significance of your papers.
]
#commentbox(who: "Thanh", [
Due to academic culture, professors in Vietnam usually aim for (international) journals instead of conferences. Could you give some tips on how to know whether a journal is good (CSRankings, unfortunately, only considers conferences)?
])
=== Work Experience
Research experience at _well-known research laboratories_, such as Microsoft Research, can strengthen your application. The emphasis here is _research_ work, not software development or non-research work. For example, working at a FAANG (Facebook, Amazon, Apple, Netflix, Google) company as a software engineer does not count as research experience. While it can be helpful for MS applications (@chap:ms), software development, even at a top company, does not demonstrate your research ability and potential for a PhD program.
Similarly, a LoR from your supervisor for non-research experience might not count much (@sec:admin-letters). So do not spend much time talking about development job in your SOP.
Note that adcom reviewers might not be familiar with all research labs, especially those outside the US. For example, while VinAI is well-known in Vietnam and potentially in Asia, it might not be well-known in the US. So you or your LoR writers should explicitly say something about them in your statement or letter. In general, if you did some good research work, then you should mention that in your SOP and ask your supervisor to write about it in their LOR (@chap:lor).
=== Competitions <sec:competitions>
Winning _internationally recognized competitions_ can demonstrate your research potential.
For example, participating in Math Olympiads if you want to do theory or winning ACM programming contests if you want to "build" systems (e.g., research prototypes).
So do talk about them in your SOP (@chap:sop) and have your writers mention them in their LoRs (@sec:help-your-LOR-writers).
#pagebreak()
== Statement of Purpose (SOP) <chap:sop>
// \chapterinfo{SOP is important. Write it in such a way that makes you \textbf{stand out}.}
#simpsons[All my life I've had one dream: to achieve my many goals.]
#align(center)[
#image("files/c2.png", width: 70%)
]
While you might not have control over LoRs (@chap:lor) or where you go to school (@chap:your-school), you do have control over your statement of purpose (SOP) or personal statement#footnote[Few schools separate these documents and ask you to write both: SOP, which focuses on research experiences, and personal statement, which covers more personal aspects, e.g., why PhD, challenges, etc.]. A well-written SOP also demonstrates that you can communicate effectively, which is crucial in research and important for TA funding (@chap:funding). Many SOP samples for CS are #link("https://cs-sop.org/")[available here].
In your SOP, focus on research potential (@chap:research-experience) and convince reviewers through your experience, e.g., published papers (@sec:publications). Back up your claims with *concrete evidence*. For example, if you say you have teaching experience, show what you did, e.g., undergraduate TA or mentoring someone. If you say you worked on a research project, show some results, e.g., paper submitted (or even rejected), achieved certain performance improvement over the state of the art.
You should talk about things that adcom members might not know about and that can help make you *stand out* in the application pool of thousands of applicants, e.g., your personal GitHub project with hundreds or thousands of stars or your regular contributions to well-known open-source projects (see @sec:stand-out for increasing your admission chance).
This is a simple but often overlooked task: *tailor your SOP to the institution you're applying for*, e.g., why apply *here*? Who do you want to work with? Provide names of professors you're interested in (if they are not already in the adcom, your application might get forwarded to them for evaluation; and they might be interested in interviewing and recruiting you). This shows that you're serious and have done homework on places you're applying to. Adcom will look for this part (@sec:why-rejected).
Finally, have your SOP reviewed by your LoR writers (@sec:help-your-LOR-writers) and professors, especially those who have served in adcom, or even postdocs or PhD students as they have been through this process.
#commentbox(who: [Jeff Erickson (UIUC) through a #link("https://www.reddit.com/r/gradadmissions/comments/1owtfgl/comment/nosxvdm/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1")[Reddit post]], [
The main thing that I (and other CS faculty) look for in application statements is concrete evidence of research potential. I don't want you to *tell* me that you're excited/motivated/passionate about computer science research. I want you to *show* me your specific interests and your investment/commitment. I want your statement to *demonstrate* your technical background, self-awareness, clarity of thought, intellectual (and ideally emotional) maturity, independence, creativity, discipline, attention to detail, willingness to take risks, and understanding of what research actually is. (Hint: Not just more homework.) I want you to show enough investment in your specific research interests to describe them in credible technical detail.
In particular, I do not want to read about how many programming languages you know, or stories about how you've been coding since the womb, or starry-eyed platitudes about how artificial intelligence is the best thing since sliced bread, or about your goal to be the next Geoffrey Hinton or Terry Tao. Nothing about your first trembling steps.
You are applying for a job. I want evidence that you are likely to do that job well. I don't want to be entertained. I want to be *informed*.
])
#commentbox[
I often read LoRs and SOP first (@sec:ievaluate). If I am persuaded by them, I would skim over other factors and advocate for admission (unless I see red flags elsewhere). However, if I am not convinced, then I will likely recommend rejection (unless I see something stand out in other parts).
Do careful research on professors; don't mention *emeritus* or adjunct faculty (@sec:faculty-types). Also, be careful not to send statements to the wrong schools or provide wrong information (e.g., talking about school X but mentioning working with professors at school Y; and do not talk about George Washington when applying to George Mason). I have seen such statements more times than I should.
]
=== Kiss of Death in SOP <sec:kiss-of-death-sop>
#figure(
image("files/is-this-sop-enough.jpeg", width: 70%),
caption: [Is this SOP enough (#link("https://www.reddit.com/r/gradadmissions/comments/1p2ggxu/is_this_sop_enough/")[Reddit])? No, a broken heart emoji looks desperate. You need to stand out!],
) <fig:is-this-sop-enough>
- *Too personal:* Don't talk about your personal issues, e.g., family, health, relationship, etc. This can raise concerns about your ability to handle the PhD. Also, don't talk about religious or political beliefs (@chap:cultural).
- *Criticizing* your current or previous institution or professors. Just like in a job interview, don't badmouth your current or previous employer because it raises concerns about your ability to work with others.
- *No concrete evidence to back up claims:* For example, saying you are passionate about a research topic without showing any experience. This is where specific names (work submitted at conf. X), numbers (outperformed SOTA by Y %), and examples (worked on project Z) can help. These names, numbers, and stats are harder to fake and concretely show your experience and potential.
- *Use flowery and AI-like language.* Don't use AI to write your SOP (@sec:using-ai). Not that hard to raise suspicion. Though you can ask AI to check your grammar and spelling.
- *Not customized to the program:* If your SOP can be sent to multiple programs with few changes, it is too generic. Do some research and mention why you want to spend the next 5–7 years there.
- *Mentioning wrong professors:* Do not mention emeritus professors or those who have left. Teaching and adjunct faculty are often not active in mentoring PhD students (@sec:faculty-types). Do your homework and mention profs who are still active in research.
- *Too Long and Fancy Format:* Keep it under 2 pages#footnote[May vary but this is my personal preference.]. Don't use too much coloring or fancy fonts (like those in Word). Don't use left alignment (seems to be default in Word) as it is hard to read.
CS academics like using LaTeX (common way to write our papers and other documents), so write your SOP using LaTeX (with Times or default font, 11pt, and 1-inch margin as described in @chap:writing-latex).
=== Using AI <sec:using-ai>
As AI and LLMs become more popular, many students wonder if they could use AI chatbots such as ChatGPT and Claude to help with their statements and, especially, if the university or adcom reviewers would check and penalize them for doing so.
Personally I _do not_ check your statements for AI contents. First, I do not have the time to do that. It is much easier for me to just read the statement and see if it makes sense and stands out (@sec:ievaluate). Hint: AI-generated content reads very strangely and faculty is just too experienced in reading essays and SOPs from students to not notice it.
Second, AI-checking technology is very unreliable and inconsistent. For example, a checker might claim that 80% of an essay is AI-generated while another says it is 0%.
I also think it is _fine_ to use AI to help your writing, e.g., the _"proofread"_ feature in Apple's `Writing Tools` is quite useful for fixing writing issues or finding better terminologies or phrases. This can help international students who might struggle with writing English and are not familiar with the academic writing style (you see how many "thus" used in this book?). Thus, it's OK to use AI to help you but you should be the main part of the writing loop, i.e., you should be the one who writes the content and use AI to help you improve and refine it.
=== Diversity Statement <sec:diversity-statement>
Some universities require a *diversity statement*---an essay about Diversity, Equity, and Inclusion (DEI)---as part of the application. While the topic of DEI has become politically contested in the U.S., you should be prepared to address it when asked.
Many students, especially international ones, find this statement confusing because they are unsure what it is about (truth is, even people in the U.S. struggle with this topic).
At a high level, a diversity statement is _not_ an ideological endorsement, but rather a way to assess your _awareness_ of DEI issues, _understanding_ of challenges faced by minority groups, and potential _contributions_ you can make.
- *You don't have to be from a specific DEI/minority group.* You just need to understand what DEI is, e.g., be aware of challenges faced by minority groups in studying CS, STEM fields, academia, and the workplace. Show that you are aware of DEI issues and how they impact your chosen field and society.
- *Show your awareness, customized to your own experiences.* If you come from a different culture or country, talk about DEI (or lack thereof) there. You have a unique perspective that adcom might not know about and would be interested in hearing.
- *Highlight your contributions.* You do not need to be in any group or organization specific to DEI. You can talk about your contributions to your community, e.g., mentoring students, organizing events, or even just helping people in need. If you don't believe you have done anything much, then talk about what you plan to do.
- *Customize it to your application.* Think about your research or teaching: could it indirectly support or create collaboration across under-represented groups? Could you mentor students from underrepresented groups? Could you help improve access to technology or education in underserved communities? These are all valid and meaningful contributions.
#commentbox[
One common pitfall is to write about how you are from a poor family, a small town, or a developing country. These are not related to DEI and show that you do not understand the topic. I have seen people consider themselves as minority because they are Asian or international students studying in the US (have you seen how many Asian or international students are in CS programs?).
Moreover, _do not_ make up stories or exaggerate your experiences. Just show your awareness and understanding of the topic and what you did or how you plan to contribute. A good diversity statement I've read starts by the acknowledgement that the applicant is not a minority, but a white male in a STEM field (i.e., they are the majority), and that they do not have much experience in DEI, but show that they are aware of the challenges faced by minority groups and how they can contribute.
]
#pagebreak()
== Your School and Grades <chap:your-school>
// \chapterinfo{Your schools might not as well-known as you think. High grades probably won't help much, but bad ones likely will raise concerns.}
#simpsons[Woohoo! I'm a college man! I won't need my high school diploma anymore]
=== School
Graduating from top universities _that adcom members recognize_ helps quite a bit.
The emphasis here is _"that adcom members recognize"_. The reason is similar to LoRs from well-known researchers (@sec:famous-lor): if we know your school has a good reputation, we can trust its education and grades. Otherwise, we are uncertain about the quality of the school and the grades you received.
For example, if you are an international student and your school is well-known, then it is considered _"top foreign"_, which is a plus. However, if we do not know much about schools in your country, then we are uncertain about the quality of your school and likely treat your school as _"unknown foreign"_, which can be a minus point.
Many international students mistakenly assume that their school is well-known, but in fact, it is not (@sec:why-rejected). For example, although "Bach Khoa" is one of the best universities in Vietnam, it is not commonly recognized in the US---their confusing acronyms HUST and HCMUT only make it worse.
If you think your school has a strong reputation, mention it in your SOP with concrete evidence like rankings or awards. You can also ask your LOR writers to talk about your school (@sec:help-your-LOR-writers).
Of course, if you're interested in working with Vietnamese, consider #link("https://roars.dev/phd-cs-us/viet-cs-profs-us")[CS programs in the US that have Vietnamese professors].
#commentbox[
Sometimes PhD adcom in the US will share a document such as #link("https://github.com/dynaroars/dynaroars.github.io/wiki/Foreign-Top-Schools")[this one], which lists the top schools in several countries. We also ask other faculty and students if we think they know about the place. For example, when I was a postdoc at UMD, members of their CS PhD adcom asked me to evaluate applicants from Vietnam. During my time at UNL and now here at GMU, I have looked at Vietnamese applications (whether they are assigned to me or not) and provided input to their reviewers, e.g., X is the top tech school in Vietnam and so it should be \emph{top} instead of \emph{unknown} foreign, which makes a huge difference.
]
#commentbox(who: "Deepak", [
If an applicant is anxious about their school not being known outside their country, they can provide information about their school and department, with independent sources where such information can be verified.
])
=== Grades <sec:gpa>
Compared to other factors such as LoRs (@chap:lor) and research experiences (@chap:research-experience), grades generally do not matter much for CS PhD admission. In fact, many CS faculty members themselves have bad grades in undergrad courses (and some were proud of that!).
#commentbox[
#link("https://jeffe.cs.illinois.edu/")[Jeff Erickson] (UIUC) has an undergraduate GPA (2.4/4.0) and wrote a #link("https://jeffgerickson.substack.com/p/re-phd-with-low-gpa")[blog] about it.
]
=== Good Grades Won't Help Much <sec:good-grades>
PhD in CS is a research degree and doing well in courses does not necessarily mean you can do research---other factors such as research experiences, pubs, LoRs are more important. Thus, do not assume that having a high GPA (e.g., 3.8/4.0 or 9.0/10) will help much in your application.
That said, if you are from a well-known school (@chap:your-school), having good grades _might_ help a bit, e.g., adcom members often note details such as "good GPA from well-known school (@sec:ievaluate)". However if your school is not well-known, having top grades or rankings usually will not help because we cannot evaluate them (e.g., we don't know how hard it is to get a 4.0 or A's at your school). This can be an issue for students in many top international universities where the competition is so high that very good students can still have low rankings from these schools (and be overlooked by adcom).