Home arrow C++ arrow Preparing For Programming Contests

Preparing For Programming Contests

A programming contest is a special kind of challenge -- one in which the most important fact is the knowledge with which you come to the contest and the intuition you will have during it. What really counts is not your level of physical fitness, but the state of your mind. To prepare for something like this requires a different approach. You will found out exactly what it takes if you read further.

Author Info:
By: Gabor Bernat
Rating: 5 stars5 stars5 stars5 stars5 stars / 9
June 30, 2009
  1. · Preparing For Programming Contests
  2. · Before the programming contest
  3. · During the contest
  4. · After the contest and closing thoughts

print this article

Preparing For Programming Contests
(Page 1 of 4 )

This is the second part of the four-part series article I began here on Dev Articles. The first one also appeared here, and tried to elucidate the mystery of why we should bother even to participate in something like this. If you failed to catch it when it originally appeared, you are free to search for it in my profile or by its title: Programming Contests: Why Bother?

As I told you at the end of the previous article, today we are going to focus on how you should prepare and act when participating in a programming contest: before, during and after it. For a start, let us speak about what to do before.

We can divide the "training camp" that you should go through before the contest in the following parts: theory, mentality, global, simulation, experience sharing and at the place. These sections will make sure that you've put in 90 percent of the effort and investment that is required to be successful at this. The remaining 10 percent is composed of your intuitiveness and (why not recognize it?) pure luck.

Remember that as important as it is to prepare for a contest, it is just as important to not overload your brain. It is advisable to totally relax for about a week before a greater challenge; just enjoy life and recharge your batteries.

You'll need to understand high level theories for the contest; that's the theory element I mentioned above. Most of the time, if you rely only on what your teachers teach you in high school or even at the college/university level, you will easily find yourself facing issues that you cannot solve. This will be mainly because you don't know a special technique, which seemed extreme and useless within the material for an average student...and therefore, it was not included.

In order to be entirely ready for a contest, you need to read a couple of books that endeavor to cover the algorithms of a field in detail. These are written most of the time by ex-Olympians, people who themselves faced these issues and are explaining and elaborating their own experience.

There are dozens of these kinds of books; nevertheless, there are a couple of them that have earned the title of classics. One that has earned the title of "The Bible of Algorithms" for its value is the appropriately titled Introduction to Algorithms by the trio of Cormen, Leiserson, and Rivest.

The other is Donald E. Knuth's The Art of Computer Programming; it is highly polished and quite heavy. Other interesting books include The Algorithm Design Manual by Steven Skiena, Programming Challenges: The Programming Contest Training Manual by Steven Skiena and Miguel Revilla, Algorithms by Robert Sedgewick and Computational Geometry: An Introduction by Michael Ian Shamos and Franco P. Preparata (from which you can read an excerpt here ).

Of course there are more books, which may be worth your attention; however, these are the most popular of them. Then again, the Internet can serve as the most elaborate way to obtain information; sites like the USACO Training Gate and the ACM's site also have a large database with problems and their solutions. Now let us move forward by focusing on the mentality required.

blog comments powered by Disqus

- Intel Threading Building Blocks
- Threading Building Blocks with C++
- Video Memory Programming in Text Mode
- More Tricks to Gain Speed in Programming Con...
- Easy and Efficient Programming for Contests
- Preparing For Programming Contests
- Programming Contests: Why Bother?
- Polymorphism in C++
- Overview of Virtual Functions
- Inheritance in C++
- Extending the Basic Streams in C++
- Using Stringstreams in C++
- Custom Stream Manipulation in C++
- General Stream Manipulation in C++
- Serialize Your Class into Streams in C++

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2019 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials