The essence of computing science is in solving problems by computation. It may take anywhere from several minutes to several years for getting a working program from the time you learned the problem specification. We are interested in problems that can be solved within at most several hours by well prepared people.
Such problems are used in programming contests so popular in the Internet (googleprogramming contest). Some practice on contest problems will hone your skills for tackling bigger, real-life challenges.
An example: You probably know how to find a minimum spanning tree in a graph. Write a program for finding the weight of the second smallest spanning tree.
- Be prepared to solve problems of contest caliber
- Know how to read problem specifications and pick out possible ambiguities
- Be able to choose an algorithm most appropriate for a problem
- Be able to choose a programming language best suited for the problem
- Have experience with efficiently representing data
- Be able to write compact and efficient code
- Be able to test thoroughly