Journey From ICPC World Finalist & Grand Master At Codeforces to Stanford

Journey From ICPC World Finalist & Grand Master At Codeforces to Stanford
Journey From ICPC World Finalist & Grand Master At Codeforces to Stanford

Introduction

Many students dream about being able to study at the best universities in the world. These universities not only provide world-class education but are also known for their world-class research infrastructure. The students get exposure to the best opportunities. This is why there has been a great scramble among students to apply for studies abroad over the past few years.

Shubham Jain is a graduate from the Indian Institute of Technology Bombay who will be proceeding to the US for his Master’s studies at Stanford University. Stanford is considered one of the top universities globally across various disciplines.

Specifically, when it comes to computer science, the expertise of Stanford and its faculty is known worldwide, which is why hundreds of students apply to its graduate program every year. The school is also extremely selective and chooses only high achievers for this program.

Let’s learn more about the ICPC World Finalist.

Eligibility Criteria

The criteria to apply and be considered for a position in the computer science department at the graduate school of Stanford University is very similar to that of most other schools. You need to have an undergraduate degree in computer science or a similar discipline.

Your GPA must be high since this is one of the primary elimination methods used by schools that receive a high number of applications. Alongside great academics, you must also have experience in the topic you are interested in, be it through competitive programming, research projects, internships, and so forth.

Acing the ICPC

Among the many factors that helped Shubham secure a place in Stanford graduate school was being a finalist in the ACM International Collegiate Programming Contest, or ICPC. The ICPC is a global contest in which coders from across the world compete. Several coders from India also compete at the ICPC and get to represent their colleges on a global stage. The ACM ICPC is only one among several different competitions that you can aim for.

The key to acing the ACM ICPC is consistency. You need to have a constant commitment to competitive programming and participate in competitions regularly. The ACM ICPC also has monthly competitions that you can participate in to keep your rating up.

Additionally, make it a point to go through the archive of the ACM ICPC to be able to grasp the kind of questions that you are likely to face. There are several online competitive programming portals where you can practice your programming skills before sitting for the main competition.

Format of the ICPC

The ICPC starts like any other global contest – at the regional level. The ICPC regions are geographically divided, with slots allocated to each region in the global finals. Generally, all slots are allocated by December 31 according to teams’ performance in the regional finals.

To be able to participate as a team, you must not have appeared in more than five regional and two global finals prior to the current one. You must be enrolled in a programming degree at an institution that can sponsor you.

Each team has a total of four members, out of which one is a reserve. The team head is a coach, who must be a staff or faculty member of the college or university. The same coach may head multiple teams, but a student can only be a part of one team. Questions are generally algorithmic, and teams need to answer between eight and 10 questions. 

Previous Questions

1. You are playing a game called the Reduction Game. This game is played on an array a with n integers. You also have another integer k with you. The following operation will be made repeatedly on this array:

Choose any two elements ai,aj such that i≠j, and min(ai,aj)>k. Decrease both ai and aj by one.

This operation should be applied to the array if it’s possible to apply it. But if there are multiple valid choices of ai and aj, you can choose which ones to do first and so on. The aim is to apply the operations in such a way as to maximise the sum of the elements in the array at the end. Your task is to find the maximum possible sum of the final array.

2. You are given a set of n words, each of length 4. All characters are uppercase English alphabets. You have to construct a 4×4 grid of letters such that each of the n words appears at least once.

A word is said to appear in a grid if the word appears in a row or column in any of the two directions (i.e., if it is a column, it can either be top to bottom or bottom to top. And if it is a row, it can either be left to right or right to left).

If there are many such grids, return the lexicographically smallest grid.

A grid A is said to be lexicographically smaller than grid B if A has the smaller letter in the first unequal square (in row-major order from top to bottom, left to right). That is, you first check if there is any inequality in the first row, and if not in the second row, etc. And in each row, you check from left to right.

If there are no such grids, print the word “grid’s not possible” in the form of a 4×4 grid without the punctuations or spaces.

Programming Languages

To participate in the ICPC, you primarily need to be adept in one programming language. This language may be Java, Kotlin, Python, or C/C++. In general, C/C++ and Java are preferred since these are the languages that the judges are provided answers in.

How To Register?

To register for the ICPC regionals, register your team and coach on Baylor University’s website. The team is created by the coach, who also chooses the region that the team signs up for. The coach registers using his email ID and invites the team members and the reserve. Once the team members and reserve complete their profiles on the Baylor site, the team is good to go.

Frequently Asked Questions

What are the subjects for coding?

Database management systems, Data structures and algorithms, Network principles, Principles of electronics, Operating systems, and computer architecture are some important concepts in programming.

How do I start coding?

Start with understanding keywords and the language in which you want to code. Move on to simple codes such as addition and subtraction. Create simple calculators and progress from there!

What programs do you need to code?

All you need to code is an IDE and a compiler that works with the language you wish to code in.

Do you need a powerful computer for coding?

While a powerful computer was formerly needed to run complex code, this requirement has diminished now since programs can be run on the cloud, in several instances for free.

Do you need a good PC for coding?

A significant volume of coding can now be done on the cloud, and hence if you have a good internet connection, everything else should work out!

Key Takeaways

While preparing for the ICPC, it is important to keep your eye on the ball. Keep on pursuing competitive programming, sit for competitions, and solve previous year’s questions from the ICPC archive.