tl/dr advice to kids and parents aiming for admission to a good undergraduate CS program in 2022-2023:
- Research what your target schools are looking for.
- Calculate the cost/benefit ratio.
- Have a back-up plan.
Having just helped my three kids get into undergraduate CS programs at, respectively a top-10, a top-25, and a top-35 school, I want to share my family’s experience.
A Natural Experiment
A natural experiment is an unplanned experiment that happens by accident, due to natural factors. I have three kids that are spaced closely together in age. They have roughly the same abilities, schooling and so on. They all applied to US-based undergraduate CS departments in the 2020-2022 period.
Looking at their varying results, I can draw some conclusions. In my opinion, the biggest factors affecting which schools they got accepted to were, in order of most important to least important:
- What year they applied. (2022 was rougher than 2020)
- High School GPA.
- Quality of application essay.
- Extra-curricular activities.
One confounding factor was the decision by many colleges to stop considering SAT scores. My oldest child was able to compensate for a poorer GPA by showing excellent SAT scores. This wasn’t possible for my younger kids.
The application process
Advice in context
We were lucky that our family is well-enough-off that:
- We could afford to apply to as many schools as we wanted.
- My kids had time to complete as many applications as they wanted.
- We could afford to consider attending out-of-state schools.
If your situation is different, keep that in mind. (But also note that many schools offer financial assistance.)
Things we did that were helpful
- Develop a list of target schools.
- Apply to a variety (academic quality and location) of schools.
- Have safety schools.
- Use school-specific subreddits to learn about schools.
- Reach out to friends and relatives to get tips for applying.
Things we did that were not helpful
- Advice from earlier, easier application cycles.
- Reading old advice left us under-prepared for the difficulty of this application cycle.
- We were shocked at the schools that rejected us.
- Wait until the last moment to submit applications.
- Three or four times this year were spent franticly editing applications at the last minute.
- One frustrating event was missing an application deadline due to an East Coast school’s definition of “midnight” being different than our local time zone. Luckily, it turned out that the school hadn’t intended to cut off applications that early, and so we were able to submit the next day when applications were reopened.
Things we should have done, but didn’t
- Apply to all the UC schools, not just the most desirable ones.
- The UC system lets you apply to multiple schools with the same application.
- There is no drawback to applying to all of them.
Start the admissions process early.
Spend a lot of time on essays. Think of your essay writing time as paying $10K per hour, because it probably has that much of an effect on your potential future earnings.
- Brag like crazy on your essay. Our family culture encourages being humble, and this did not serve us well in writing essays. Your essay is competing against people who are straight-up exaggerating their accomplishments. Do not give them any advantage by being modest.
Things we didn’t do, because they didn’t matter
- Visit campuses. Our goal was to go to the best school that would accept us, so we didn’t spend any time considering which school had the nicest amenities or campus until after we had acceptance letters.
Deciding among several admission offers
Each of my kids was accepted at several schools. In deciding which school to attend, they considered the following, from most important to least important:
- Whether they were directly admitted to the CS department, and if not, what were the realistic chances of being admitted in the future.
- The school’s CS department ranking.
- The school’s over-all academic ranking.
- Location relative to US tech hubs.
- Cost, including travel and housing.
- Quality of life.
One child chose to attend the second-best school that accepted them because the higher-ranked school:
- did not curve grades.
- Attending that school would have likely resulted in a lower GPA which could have made transferring to a different school, getting an internship, job, or attending graduate school more difficult.
- was further from home.
- was further from tech hubs.
- was in a rural area.
CS vs. CS-adjacent degrees
Two of my kids had to decide between a CS degree at a less desirable school vs. a non-CS degree at a more desirable school.
Many schools with over-subscribed CS departments offer a variety of CS-adjacent degrees, such as Math, Electrical Engineering, Human Computer Interaction, and Data Science. Some of these CS-adjacent degrees allow you to take beginning CS department courses, providing you with a basic CS education.
We spent a lot of time considering the pros and cons.
Arguments in favor of choosing to pursue a CS degree at a less desirable school:
- Get to study CS full time.
- More likely to hear about CS internship and job opportunities.
- Easier to get into CS classes.
- Simpler story when applying for CS jobs and internships.
Arguments in favor of choosing a CS-adjacent degree at a more desirable school:
- Many employers care more about the school name than the degree name.
- You can potentially take CS courses as electives.
- Don’t have to take the higher level academic-oriented CS classes.
- You might get a better education over-all.
- If you decide you don’t like CS, you’re in a better position.
In the end, my kids who were presented with this choice chose the CS degree program at the less desirable school, because it seemed like the safer, less-stressful course.
Final words of advice
CS admissions is becoming increasingly competitive. While this will eventually change, it’s likely that the 2023 and 2024 admission cycles will be even more difficult than 2022. Plan ahead and put in as much time and effort as you can. Good luck to you!