Zouhair Ghazi
IEEE ENSIAS Student Branch
3 min readAug 24, 2020

--

Competitive Programming : An introduction to the latest evolution of modern day mind sport

“In this line of business, all one might actually need is a smart machine, and an even smarter mind to create the extraordinary.” - Unknown.

Programming has always been a pillar of humans daily lives, because at it’s core, it all came down to problem solving: thinking logically and breaking down a problem into steps to find a solution. And within the balance of the currently primitive hardware and the somewhat decent software, rose the need for training individuals to complete puzzles all while respecting the limitations of the machine they had available : these talented engineers will then compete against each other in an agreed upon timing and set of problems, giving birth to the modern day competitive programming as we know it : an internationally recognized and supported mind sport that involves millions of contestants every year, locally and online.

Contestants are asked to solve several problems, varying in genre and difficulty, in a period of time that can last from several hours, to several days. A problem solving is a process that usually requires 2 steps : Constructing an algorithm that can complete the task within the set limitations provided by the host of the contest, then the contestants must implement the said algorithm in a suitable programming language, depending on the nature of the problem, these include : C++; known for its simpler syntax compared to C and its impressing speed and implemented data structures, which is why it is the most used language, Python; known for being the easiest language to use, but is the slowest, so its a situational pick for contestants. Other languages may be permitted to use such as : Java, JavaScript… The answers the contestants provide are then judged by applying their logic to multiple test cases that they must pass to consider them valid. The scoring system may consider other factors such as quality of output produced, execution time, program size, partial answers, etc… Many online platforms hold daily and weekly contests for participants to prepare for upcoming events or climb up the ranks to become masters in this practice.

Worldwide multinational software and Internet companies such as Google & Facebook, host several competitive programming contests all year long, thought the Association for Computing Machinery , a US-based international learned society for computing, is the host for the biggest yearly collegiate programming competition known as the ICPC; a contest that involves so many students in so many regional qualifiers that just reaching the world finals is a lifetime achievement and an almost certain job offer from a Tech giant such as Google.

The ICPC World Finals 2018

The Institute of Electrical and Electronics Engineers (IEEE) organize a 24 hours long yearly contest involving over 4000 teams from universities worldwide, and awards the Top 100 teams. It is a perfect test of problem solving and endurance in a contest, and merely participating is an amazing addition to the list of achievements of any computer scientist. Our student branch will host this year’s contest in Rabat like it did for the past years, we invite you to assemble a team of 3 and attempt your luck in this highly prestigious competition by completing registration and preparing for the battle !

This introduction is the first in a series of articles that will revolve around competitive programming, in a humble attempt to attract more young audience to this amazing modern day mind sport.

--

--