Tullio Facchinetti

Programming competitions

by Tullio Facchinetti

Categories: article lang_en article_en


One of the teams that participated to the 2018 edition of the IEEExtreme Programming competition.

Participation to the IEEExtreme Programming competition

In the past years, I supervised the participation of several teams to the programming competition organized by the IEEE association, i.e., the IEEExtreme Programming competition.

We participated to the editions from 2011 to 2019 with a variable number of teams, ranging between 3 to 9 teams depending on the year.

Despite the students do not attend any course that is specific for programming competitions, we were able to achieve satisfactory results every year, always ranking in the first hundreds of teams. The best result was entering in the top 100 teams. Considering that there are usually more than 3000 teams participating to each edition, our ranking was pretty satisfactory.

An interesting aspect is that, for many years, we were the only Italian university that participated to the event. I suppose that the organization of the competition (24 hours long), and the fact that it takes place during the weekend - in Italy we start on Saturday at 2 AM - can be quite discouraging for the colleagues that have to provide their support as “proctors” during the whole duration of the event.

Finding the place to stay for the competition has not been always easy. For a couple of editions we could stay at the Univeristy. Some editions were held in the venue of the ComPVter association, while one year we have been hosted in the headquarter of the 7Pixel company. In 2013 we could not find a place to stay, so I hosted all the teams in the basement of my house for the whole duration of the competition.

The teams that participated to the 2013 edition. I hosted all the teams in the basement of my house since we could not find a suitable place to stay.

Resources for programming competitions

I recently received several requests from students who are willing to participate to some programming competitions.

I report some resources that are useful - if not necessary - to train in view of the participation to such kind of competitions.

Online training

There are several competitions every year. Since I do not want to repeat good lists that are already available on the web, you can check this article for a list of the most important events. You may also consider the IEEExtreme Programming competition, which is not included in the list.

The implementation of a program for solving the problems in the competitions pays attention to aspect that are rather different w.r.t. the implementation of “traditional” software. Yes, the language may be the same, but it is used in a different way, explicitly addressing aspects such as algorithmic complexity and conciseness in the code, which allow to solve the problem faster.

For this reason, it is important to practice with the types of problems that are typically presented during a competition. There are several websites that host many problems and allow to train against the proposed problems.

The two online resources that I have some experience are LeetCode and HackerRank. A good list of alternative and similar resources can be found here.

A book that is worth to read

While training is fundamental for getting the grip to the type of problems and solutions, the approach to programming competitions require some theoretical background that is specific for this domain. A very good book that explains several caveats and tricks for programming competitions is Competitive Programming.

I warmly suggest to read the book, even to persons that may not be specifically interested to competitive programming: there are many useful and interesting hints related to programming in general, in the book.


Highlights

  • Students and theses
  • Publications
  • Thesis topics
  • Curated awesome list of CLI apps
  • Last updates (English)

  • Speed up the compilation of LaTex Beamer presentations ()
  • Students and theses ()
  • Students and theses - English ()
  • Learn enough C to survive ()
  • Workflow for writing theses collaboratively ()
  • Guidelines for theses and presentations ()
  • Projects ()
  • Last updates (Italian)

  • Risultati FdI 8 e 11 aprile 2024 ()
  • Risultati FdI 20 Febbraio 2024 ()
  • Risultati FdI 02 Febbraio 2024 ()
  • Risultati FdI 20-27 Novembre 2023 ()
  • Risultati FdI 28 Settembre 2023 ()
  • Risultati FdI 01 Settembre 2023 ()
  • Risultati FdI 27 Luglio 2023 ()
  • List of categories

    Article Article_en Article_it C Courses Fdi Lang_en Lang_it Latex Programming Project Research Results Robotics Software Teaching Thesis Tips