Skip to: History | List of my problems
I have a strong
connection with all kinds of programming contests. I feel that they
can be a huge motivation factor for students, helping in the promotion
of computer science and the desire for always knowing more.
For a more complete list of the prizes I got in the contests I participated see my awards section. For a more textual description of my involvment in contests or for a list of my problems, continue in this page.
It all started when I was 15 years old and still in high
school, influenced by my brother. While still on 9th grade I
participated in the National
Olympiads in Informatics (ONI) and I was the youngest
contestant. I was
2nd in the national finals and obtained the right to
represent Portugal in
the International Olympiads in
Informatics (IOI) in the Netherlands. I also got the
opportunity to participate in a training campus organized by
Prof. Pedro Guerreiro which proved to be very influential on good
programming techniques.
From there it all started to be part of my life. While I was still
at high school, I entered three more editions of ONI and got the 1st
place in all of the national finals. With that, I represented
Portugal in three more IOI's, held at Hungary, South Africa and
Portugal.
Nowadays I cannot participate but I'm still actively involved in the community. I'm one of the main organizers of the National Olympiads, being responsible for part of the logistics (the finals are in my department) and the web site. I'm also active on the scientific side (I'm a problemsetter), I organize the training campus for the students and I am currently the portuguese team leader at the IOI (from 2005 to 2008 I was the deputy leader and since 2009 I'm the team leader).
In 2012 and 2013 I was responsible for organizing the Ibero-American Informatics Contest (CIIC), a programming contest for the secondary students of the Iberian Pensinsula and South America.
When I entered the university, I promoted programming
competitions and basically helped in the first experiences in my
faculty on that field in
the ACM-ICPC International
Collegiate Programming Contest, which is a team contest (up to
three students), in opposition to the Olympiads, which are
individual.
In 1999 I entered my first Southwestern Europe Regional Contest (SWERC) obtaining the 11th place among teams from 4 different countries.
In 2000 the University of Porto Programming Contest (CPUP) was started, with teams from several departments, and I won that first edition. In SWERC'2000 I was now 2nd and failed the qualification for the world finals by a single place (only one team passed at that time - the next edition saw 2 teams advancing but also more countries participating: Switzerland, Austria and Germany.).
I then proceeded to won all editions of CPUP I participated in (2000 to 2003), gaining the right to represent my university at SWERC level, where I was always part of the best portuguese team. During those years I helped in founding the National ACM-ICPC Portuguese Contest (MIUP), with teams from all over the country. I won three editions of that contest, from 2001 to 2003.
While training, among several other sites, I dedicated some time to the UVA Online Problem Archive, in which I solved more than 600 programming problems.
Nowadays I cannot participate as a contestant but I'm an active problemsetter and organizer. I am part of the organization of CPUP and MIUP, and I coach the department teams. Since 2005 I also run the problems discussion session of MIUP, talking about the solutions of all the problems. In 2012 and 2015 I was the director of MIUP and I hosted it at DCC/FCUP<./p>
I was part of the scientific committee of the IEEEXtreme Programming Contest in 2008 and 2009, authoring several problems.
All the afore mentioned contests use imperative programming (I
mainly use C/C++). In 2003 I decided to experiment another programming
paradigm in contests and I participated for the first time in the National Logic
Programming Contest (CENPL), working in Prolog. The contest
had an open division, in which post-graduate students could participate
and I got the global first place.
I repeated the experience in 2004 and 2005 (where the contest gained a functionl arm, with Haskell being permitted) and in both years I repeated the global first place.
In 2002, during my final Bsc project, I decided to enter a
different competition, dedicated to artificial intelligence. I
participated in the Cyber-Mouse
virtual robot contest, in which a software agent has to be very
fast in solving a maze. I got the first place among teams from several
institutions. In 2003 I won again and continued to participate until
2006 (albeith spending less and less time developing the agent),
obtaining the 2nd place in 2005.
This is a list of some of my online available problems that were used on real programming competitions. I also contributed to many other contest problems (either on ideas, problem statement or solutions) and I have authored dozens of other problems used in several types of courses.
All these problems are in portuguese.