Competitive programming and its importance
Around the 1980s, competitive programming events, also known as programming marathons, began as a form of competition between computing courses from higher education institutions. In these events, teams - usually formed by three students representing higher education institutions - try to solve as many problems as possible. At the beginning of the competition, teams receive a set of problems that must be solved. The team that solves the most problems is declared the winner.
The evaluation of submissions made by teams is usually done by automated judgment systems (AJ). An AJ receives the source code written by a team to solve a problem, compiles it, and tests it against a set of different inputs for the problem, indicating at the end of this process whether the solution proposed by the team is accepted or not.
This process adopted by competitive programming events, with the use of AJ, goes beyond the competition itself and can be used by:
- Students: to improve their computer programming and problem-solving skills through pages like Codeforces, beecrowd, and Topcoder.
- Companies: to test computer programming and problem-solving skills of candidates in hiring processes, such as Google, Facebook, and Amazon.
- For fun, where one looks for an excuse to program!
The SBC Programming Marathon
The SBC Programming Marathon is a competitive programming event organized by the Brazilian Computer Society (SBC), which has existed since 1996, originating from the regional qualifying competitions for the World Finals of the International Collegiate Programming Contest (ICPC). Currently, the SBC Programming Marathon is part of the South American regional qualifier for the ICPC.
The SBC Programming Marathon is intended for undergraduate and early graduate students in computer science and related fields, promoting creativity, teamwork skills, the search for new software solutions, and the ability to solve problems under pressure in these students.
Several higher education institutions in Brazil compete in the SBC Programming Marathon, from which the best teams are selected to participate in the ICPC World Finals. In 2019, more than 50,000 students from over 3,000 institutions in over 100 countries competed in regionals worldwide. That same year, nine Brazilian teams, out of almost 800 participants, qualified for the world finals, which took place in Moscow (Russia). In 2021, five Brazilian teams qualified for the world finals held between November 6th and 11th, 2022, in Dhaka (Bangladesh). In each edition of the competition, several institutions and, mainly, large companies in the area have valued students who participate in the Marathon.
For more information about the SBC Programming Marathon, such as the history of past competitions and their rules, access the official event page through the URL https://maratona.sbc.org.br/.
The CEFET++ team and its participation in events
The first participation of undergraduate students from CEFET-MG (Divin贸polis Campus) in a competitive programming event took place in 2022, in which two teams - each team consisting of three students from the BSc Computer Engineering course - participated in the IX Maratona Mineira de Programa莽茫o held in Tim贸teo, MG, Brazil. In their first event, one of the teams stood out as the best rookie team. The teams were under the coordination of Prof. Willyan Michel Ferreira.
After participating in their first competitive programming event, these students organized and formalized the first competitive programming team at CEFET-MG (Divin贸polis Campus). They invited Prof. Andr茅 L. Maravilha, who, together with Prof. Willyan Michel Ferreira, created the Competitive Programming Team CEFET++, officially accredited by the institution.
Since then, the members of the CEFET++ team (students and coordinators) have been regularly meeting to study and practice problem-solving techniques and programming to prepare themselves for competitive programming events.