新鲜资讯Latest News

Application Trends for CS Programs: Advice from a Stanford CS Senior – Be Prepared for the Grind

发布时间:Date: 2018-06-20

In recent years, competition for U.S. computer science (CS) programs has intensified dramatically, with admission standards soaring. Blindly following trends to switch majors or apply directly can easily lead to disappointment. CheersYou(清柚教育) reminds prospective families to rationally assess their situations before deciding to apply for CS, and not to rush into the major solely due to its popularity. Clear academic and career planning is essential. Drawing on the successful experience of a Stanford CS senior, applying for CS requires not only meeting minimum thresholds like GPA and language test scores, but also emphasizing the accumulation of practical skills through research, internships, open-source projects, and programming competitions. Students should identify their passion for the IT industry, understand the employment and salary advantages of the U.S. CS sector, and prepare mentally for the high-intensity learning and top-tier competition, so as to stand out in the fierce application process.

In recent years, transferring to CS (Computer Science) has resulted in application failures, and the situation for direct CS applications is not optimistic either.

CS has always been a highly popular major among study-abroad students. Many students only hear that CS is hot in the U.S. and relatively easy to find a job, so they blindly follow the trend and choose the CS major, even if their undergraduate major is unrelated or they cannot adapt to the coursework, they still try their best to squeeze in.

However, the admission standards for CS programs have risen at an astonishing rate:

A few years ago, CMU's Data Science related tracks grew slowly by about 100 students per year, but in 2018 it suddenly surged to 500 students.

UCLA's CS program received over 2,000 applications this cycle, while the admission office only plans to enroll 100 students. Behind every offer, there are 20 rejection letters sitting in the mailboxes of excellent applicants.

Yale CS Application Trend.png

(Figure: Application trend for Yale University's CS program)

 

Should you compete with the vast crowd on the narrow bridge? Is CS really right for you?

Before you decide to "jump into the pit," listen to what a Stanford CS senior with offers from three top schools has to say.

cs-avatar.png

Jerry Zhou

The most stylish trendsetter in the coding world with a pleasing hairline / Graduate of Tsinghua University Automation / Holds offers from Stanford, CMU, and UPenn / Currently working at Two Sigma

Jerry has always been a figure with a halo in his social circle. As a coding master who broke into the hedge fund sector, he will use his professional perspective to analyze the current state of CS in the U.S. and, more importantly, how he secured those impressive offers.

Q: Can you tell us why you "jumped into the pit" in the first place?

A:

Choosing the CS major absolutely requires a mindset of being prepared to "jump into the pit." You can't just impulsively apply because everyone thinks it's good, only to find out once you're on board that it doesn't suit you or you can't handle it, and then switching majors is not worth the loss. Early planning is crucial, and the key is to have your own ideas. I chose CS mainly based on these considerations.

First, the employment situation in the U.S. CS industry is far better than other majors (80% of job openings are available to CS students), especially in Silicon Valley and San Francisco, where opportunities are abundant and the demand for coders is high. As long as you prepare seriously for job hunting, you can generally get a decent offer.

Second, compared to other industries in the U.S. and domestic peers, the income level of U.S. coders is generally high (comparing CS industries at home and abroad). It's common for those with strong backgrounds to start with an annual salary of 110-120k.

Third, and I think the most attractive point for anyone passionate about the IT industry: you can interact with top professionals in the field, learn knowledge, and gain skills! Talented people are everywhere; be brave to strike up conversations and let the experts guide you to success.

Fourth, it's as simple as it gets: I just love coding.

Q: Can you share some points to note when applying for CS?

A:

First, GPA and language test scores are the entry tickets. High GPA and high language scores won't give you a huge advantage, but if they become a weakness, it will definitely hinder your application.

Second, pay attention to research, internships, open-source projects, and programming competitions. CS is ultimately a practical discipline; talking without practicing is useless. Excellent papers, impressive internship experiences, and contributions to open-source projects will all become highlights in your application.

Third, don't underestimate recommendation letters and "tao ci" (networking with professors). This is a very important part for PhD applications. The American academic circle actually places great importance on "connections." If you have a recommendation letter from a well-known expert in the field, it can be decisive. The process of "tao ci" is essentially about building good relationships with professors in advance, which plays a significant role during the final committee discussion for admission decisions.

Off-topic: The school doesn't determine everything. A good school doesn't guarantee you a good job, and a "lesser" school can still teach you amazing skills. Also, the school's location is very important; for example, CMU's Silicon Valley campus has a very high employment rate.

Q: Machine Learning is very hot right now. Do you have any advice for those who want to get started in this field?

A:

Indeed, it's a very hot direction with great practicality and commercial potential.

But for students without much foundational knowledge, the first thing is to learn the basic courses well during undergraduate studies, such as mathematical statistics, mathematical analysis, operations research, etc. Secondly, regarding the use of basic tools, don't overly pursue major breakthroughs; being proficient with a few basic tools is enough. I personally recommend Google TensorFlow, which is excellent. Many large companies abroad use it frequently. If you can use it proficiently, it's definitely an advantage when applying for jobs at major companies.

Q: Many students want to apply for CS but have no concept of their application background. Can you briefly explain the relationship between application direction and background?

A:

I want to remind everyone that choosing a direction depends not only on interest but also on your current studies and research, as well as your undergraduate major foundation.

Some students may ask: if my undergraduate major has no specific direction, I will naturally choose the direction I like within this broad field. Others may say that the direction for their graduate studies is not something they're interested in and they don't want to apply for that direction, considering it a waste of time. In fact, these thoughts are all correct.

I strongly support students who have their own ideas, for many reasons I won't list one by one. I just want to remind everyone that if you have no foundation or background in the direction you're interested in, or even if you have some but it's not very rich, the application result is very likely to be fruitless! This is a very realistic situation, and the main reason is the disconnect between your background and the applied direction.

Some students ask: can I adjust within a CS subfield rather than switching across disciplines? My answer is: there's nothing impossible.

It's just that our research focuses on the feasibility. Adjusting within a subfield is relatively more feasible, not like changing to a completely different field. However, everyone should know that since research directions are separated, they have their own independent characteristics. If you really want to switch, you need to put in much greater effort and more energy to delve into and research that direction. But we must recognize that even so, whether this can fundamentally change your background is still an unknown, so I still advise everyone to handle it with caution.

CS-BANNER-1.png

After listening to the senior's insights, the CS major can be both loved and hated. Only by truly understanding yourself and the major can you successfully choose the right field.

 

What is CS?

Computer Science (CS) is the discipline that systematically studies the theoretical foundations of information and computation and how they are implemented and applied in computer systems. It is often described as the systematic study of algorithmic processes that create, describe, and transform information. Computer science includes many subfields: some emphasize specific computational results, such as computer graphics; some explore the nature of computational problems, such as computational complexity theory; and some focus on how to achieve computation, such as programming language theory, which studies methods for describing computation, while programming applies specific programming languages to solve particular computational problems, and human-computer interaction focuses on how to make computers and computation useful, usable, and universally accessible.

There are ten major subfields of computer science in the U.S.:

Software Engineering, Database, Computer Networks, Artificial Intelligence, Computer Graphics and Multimedia, Architecture/Compiler and Parallel Computing, Human-Computer Interaction, Management Information Systems, Information Security, and Theory and Algorithms.

The world's first computer science department was established at Purdue University in 1962, and the first college of computer science was established at Northeastern University in 1980.

The highest honor in the field of computer science is the Turing Award, presented by the ACM, often regarded as the Nobel Prize of computing.

CS-HISTORY.png

 

Difference between CS and CE

CS and CE programs are very similar; both study the fundamentals of programming and software development. The most basic difference between the two boils down to the distinction between science and engineering. Science means knowledge or learning, from the Latin word "to know," while engineering comes from the Latin "to contrive." Therefore, from an operational perspective, the difference is that CE students possess deep knowledge of circuits, electronics, and VLSI design, which are crucial to the actual structure of modern computers; CS students study algebra, computation, and programming languages, which form the basis of high-level programming and computing. However, this description is still not entirely accurate because, for example, the Software Engineering (SE) branch is sometimes under CE and sometimes under CS, depending on the specific school and situation.

We can understand it this way: broadly, CE is applied computer-related, while CS is more theoretical. That's why SE (software engineering), which is about software, can be placed under CE: SE teaches how to use engineering thinking to develop a software project. On the other hand, in some narrower classifications, SE is placed under CS, where the division is based on software vs. hardware: CS is soft, CE is hard. But the core is still the computer. Since each school has its own classification, there is no uniform standard. Moreover, software and hardware are now intertwined. For example, a CPU has an instruction set; without it, the CPU cannot function. Advanced software is optimized for hardware; without sufficient optimization, compatibility issues that were common years ago would arise. This is the difference between the two.

CS cultivates students in the theory and design of computer systems and software, as well as in important application areas.

 

U.S. CS Subfields and Admission Overview

CS-MAJOR.png

 1. Artificial Intelligence (★HOT)

As the hottest and most promising research direction in computer science today, international students admitted to AI programs often have very strong academic backgrounds and are outstanding talents in this area. Not many Master's students are admitted; mainly PhD students are enrolled.

Since this direction emphasizes knowledge of data representation and algorithms, when targeting this area, you should review your background in these aspects and see if your understanding is deep enough. If not, timely related study is needed.

 2. Bioinformatics

This specialization sometimes requires students with a computer background and sometimes those with a biology background. Very few international students are admitted, and generally those admitted have excellent hard qualifications and strong research experience, making admission quite challenging. Graduates with a master's degree are relatively more likely to be admitted.

Unless you have very strong abilities in both areas, you might take a shot; otherwise, consider applying for a pure CS other major. Applying for this direction requires knowledge in mathematics, informatics, statistics, computer science, chemistry, and biochemistry, or comprehensive knowledge, which is generally hard for undergraduates to achieve.

 3. Computer Architectures/Hardware Systems and Design/VLSI

This direction mainly deals with computer hardware chips, such as the structural design of CPUs and the logic gates of internal structures. Those familiar with VLSI know the depth and difficulty of research in this area. Applicants must have a solid foundation in logic circuits.

Due to the impact of the job market, the application popularity for these three directions has dropped very quickly. Because they lean more toward theoretical research, the application difficulty is high, and scholarship opportunities are not optimistic.

 4. Human-Computer Interaction/Graphics/Visualization (★HOT)

You need to master the basic tools and principles of computer graphics and imaging, but this is often insufficient to meet admission requirements. Because this highly applied direction emphasizes experience more, whether you have been involved in related work is crucial. Undergraduate students should choose carefully!

The popularity of HCI has gradually increased along with industry attention, but this direction also has high background requirements for applicants, and most admitted students hold a graduate degree. Therefore, for undergraduate graduates, applying for this direction is also quite difficult.

 5. Computing

Computing is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application. The fundamental question in the Computing major is "what can be (efficiently) automated?"

 6. Multimedia/Networking

When choosing these two areas, what you need to pay attention to is not the professional foundation but the level of the schools you select, to avoid excessive competition.

These two research directions increasingly appear under EE, ECE programs, but students with a computer background still have quite good competitiveness when applying for these two directions. They are among the more internationally competitive directions.

 7. Information Science/Information Retrieval/Information Security

One of the popular directions in the U.S., it seems that Americans are more open to domestic students for disciplines related to information technology, and domestic students are also very enthusiastic about these directions. Besides this major, the competition among international students for information systems, information security technology, information retrieval, and database is very fierce. If you have expertise in these areas, you can give it a try.

 8. Software Engineering/Programming Language

For undergraduate students, this is the most popular direction among international students worldwide. There are many admission spots but few scholarships, and it was the direction most severely impacted by the bursting of the IT bubble. However, everyone should have confidence in this direction because, according to reliable sources, although funding at the start of the first year of graduate school may not be much, the money after the second year is quite decent. The key is to follow a competent advisor; basically, work diligently and you won't have to worry about anything else.

 9. Linguistics/Speech Recognition

Students in this major will learn:

Understand the fundamental questions driving modern linguistic research, including formal structure, universality, acquisition, historical change, variation, and social dimensions of use, as well as core knowledge in subfields of linguistic theory.

Be able to precisely identify and describe empirical patterns in language data sets, and construct sound linguistic analyses by formulating, testing, and refining hypotheses about these patterns.

Present their own research and/or review existing literature through written papers and oral presentations.

 10. Computer Engineering

Similar to Software Engineering, CE also has some directions not found in CS, such as embedded system design. Some also believe that any EE direction leaning toward software counts as CE, like Digital IC Design, which often uses software. According to Wikipedia's definition, circuit design is also included in CE.

 11. Management Information System

There are not many Master's programs in this direction, relatively fewer than PhD programs. When applying, be aware that because it involves management, many business schools also offer this direction, leaning more toward management. Under CS, this direction is still mainly technical. If someone from a MIS background under CS wants to switch to a business school's MIS, they also have a good advantage. There have been cases where someone received a half-tuition Master's admission to MIS under an MBA program.

 

What Prerequisite Courses Are Needed for CS?

For students who want to study CS, whether transferring or applying for graduate or doctoral programs, the first thing to consider is: which majors are eligible to apply for CS? In other words, which prerequisite courses are required for CS applications?

Generally, during the application process, admissions officers pay much attention to the courses students have taken. Therefore, if your prerequisite courses are all satisfied and your grades are good, you can choose to apply for CS even if your major is not computer science.

Common prerequisite courses for transferring into a Computer Science program

1. Calculus I, II, III

2. Differential Equations

3. Calculus-based Physics with lab

4. Chemistry with lab

5. Computer Programming, C++ preferred

 

For example, Cornell University's transfer prerequisite requirements for the undergraduate CS major:

Object-Oriented Programming and Data Structures

Data Structures and Functional Programming

Computer System Organization and Programming

Discrete Structures

Basic Calculus and Linear Algebra

 

Common prerequisite courses for applying to CS Master's programs

Many schools' Master's application pages clearly list the prerequisite courses for the program; you can check the official website yourself. For example, Boston University's CS Master's prerequisite requirements:

CS-requirement.png

 

If you look carefully, you'll find that their requirements are actually quite low, usually requesting one math course (e.g., "Advanced Mathematics"), one introductory computer course (e.g., "Introduction to Computer Science"), one programming language course (e.g., "C Language"), one algorithms course (e.g., "Data Structures and Algorithms"), and one advanced language course (e.g., "C++ Language").
But please think about it: if you only take these few courses, how can you compete with computer science majors? So, CheersYou(清柚教育)'s suggestion is: take as many as possible. Below are what we consider the more important prerequisite courses when applying for CS:

First-level importance:

Advanced Mathematics
Discrete Mathematics
Computational Methods
Introduction to Computer Science
Data Structures
Computer Algorithms
C Language
C++
Operating System Fundamentals

 

Second-level importance:

Linear Algebra
Probability and Statistics
Automata Theory
Computer Organization and Architecture
Computer Networks
Database

 

Third-level importance:

Java and other advanced languages
Software Engineering
Artificial Intelligence
Machine Learning
Computer Graphics
Information Security
Compiler Principles
Other advanced CS courses

 

What is the Difference between MS and PhD in CS?

CS-MAJOR-INTRO.png

After clarifying your application direction and goals, let's discuss the choice of degree, which is also strongly linked to the success of the application.

Differences in Training Orientation at U.S. Universities

Everyone knows that the MS program in the U.S. aims to train applied professionals. You can easily see this from the curriculum: more practical work, more applied projects, and research topics, all geared toward practical R&D work. Many popular CS subfields share this purpose and characteristic.

PhD programs, on the other hand, are more research-oriented, including applied research, but at a deeper level leaning toward fundamental principles. The fundamental training goal of a PhD is to cultivate research-oriented talents. U.S. universities do this very well; essentially, PhD graduates mostly enter research positions, whether in academia or research institutions, serving as core personnel in basic research and development.

 

Differences in Admission Difficulty

MS applications are relatively easier for undergraduates, because given the training orientation, applied-level training does not require applicants to have a very deep theoretical research foundation. Instead, it values the applicant's application ability. Therefore, even top-ranked comprehensive or specialized schools send out many MS admission offers. Likewise, because the job prospects after graduation in the U.S. are very good, MS programs attract great attention from many students. Many students liken the U.S. MS degree to a "technical school" – once you go, you learn how to do things, and after graduation you have many opportunities to find a job in society or enterprises. Hence, the competition is fierce, and the elimination rate is correspondingly high.
PhD applications, especially for certain research-oriented CS directions, are not so optimistic. Of course, this is just one perspective. Many undergraduate applicants received feedback from schools during the later stages suggesting they switch to an MS, mainly because PhD programs require relevant research experience and a solid foundation. They are more interested in applicants with work experience or a graduate degree. For undergraduate applicants, the requirements are relatively higher and the difficulty is greater.

 

Differences in Scholarship Availability

For many majors, PhD scholarships are more plentiful than MS ones. PhD programs take longer and can handle larger projects, so scholarships are indeed easier to obtain than for MS programs. However, from the analysis above, you can see that these PhD scholarships are not so easy to get; they require applicants to have strong competitiveness. Looking at the current application situation, the biggest change in the CS applicant pool is a decrease in the number of applicants, but an increase in elite ones, with more people having accumulated experience in the professional field. Therefore, the difficulty in getting a PhD scholarship lies not in the number of competitors, but in the overall level.

As for MS scholarships, they exist but are rare. Some applicants with strong backgrounds choose MS because they don't plan to pursue a research-oriented future. When supervisors with significant projects accept them, they may generously offer funding, but the number is relatively small. It is noteworthy that MS admission (without funding) remains robust. Except for the top 20 comprehensive schools and top 10 specialized schools, other schools' MS admission standards remain relatively low, providing more opportunities for students from families with certain financial means. Also note that even if the MS has no scholarship upon entry, the chance of getting a full or partial scholarship in the second year is very high!

 

In addition, the senior also helped us detail some renowned U.S. CS programs and their admission preferences:

Carnegie Mellon University

Overall Ranking: 25  Program Ranking: 1

When talking about computer science in the U.S., one cannot miss CMU. CMU's program is tied for first with MIT, Stanford, and UC Berkeley, and it is also the largest computer science school in the nation, with a very comprehensive set of CS subfields. Another thing worth mentioning is that CMU now has two campuses: the main campus in Pittsburgh, PA, and a new campus opened in Silicon Valley in 2002—CMU Silicon Valley. Compared to the main campus in the Northeast, the Silicon Valley campus boasts the geographical advantage of being near all the top internet companies, making internships and job searches very convenient.

CMU's School of Computer Science has seven departments: Computer Science Department, Institute for Software Research, Human-Computer Interaction Institute, The Robotics Institute, Computational Biology Department, Language Technologies Institute (LTI), and Machine Learning Department.

 

Massachusetts Institute of Technology (MIT)

Overall Ranking: 3  Program Ranking: 1

MIT has consistently ranked first in computer science for six consecutive years (also a world leader in the QS World University Rankings®), earning top marks for reputation this year.

Its Department of Electrical Engineering and Computer Science is the largest at the university, and like UCB, offers an EECS undergraduate program that combines both disciplines into one major, with flexible, practical, and intensive coursework providing students with a broad perspective.

 

Stanford University

Overall Ranking: 7  Program Ranking: 1

Stanford University ranks among the top in the U.S. and the world in computer science, achieving perfect scores on two research impact indicators.

Stanford's Computer Science department benefits from its location in the heart of Silicon Valley. Alumni of the department have founded or co-founded major companies like Netflix, Mozilla Firefox, YouTube, WhatsApp, and Google, and current faculty include Turing Award winners.

 

University of California, Berkeley (UCB)

Overall Ranking: 22  Program Ranking: 1

UCB maintains its position as number one in computer science world rankings and is also the fourth-ranked top university in the U.S. UCB's Electrical Engineering and Computer Sciences department offers two highly selective undergraduate programs, including the EECS Bachelor of Science, which combines the fundamentals of computer science and electrical engineering to provide students with a hands-on, interdisciplinary, and dynamic education.

 

Princeton University

Overall Ranking: 1  Program Ranking: 8

Princeton University remains 8th in the world for computer science, with nearly perfect citations per paper indicator. Since the presence of Alan Turing, Alonzo Church, and John von Neumann, the university has been at the forefront of computer science. Its computer science curriculum emphasizes independent work, a key aspect of the program, requiring students to complete at least one independent design or research project.

 

University of California, Los Angeles (UCLA)

Overall Ranking: 19  Program Ranking: 13

UCLA ranks 13th in this year's computer science rankings, with high scores on both research impact indicators. Computer Science is part of the Henry Samueli School of Engineering and Applied Science. Undergraduates can choose between a Bachelor of Science in Computer Science or Computer Science and Engineering; the latter targets students who want a solid foundation in computer science while also developing a strong interest in computer system hardware.