Programming Challenges
”Beware of bugs in the above code; I have only proved it correct, not tried it.”
– Donald Knuth
In this chapter, we are going to deviate from professional programming and discuss the world of competitive programming and programming challenges.
Programming challenges are problems that can be solved with a relatively short program. There are several websites that offer great collections of challenges. Most of them categorize challenges based on difficulty and other factors, such as:
- The type of algorithm needed to solve the challenges.
- The type of abstract data structures the challenges are about, like trees, linked lists, n-dimensional vectors, and so on.
- The type of concrete data structures the challenges are about. For example, for Python, they could be lists, tuples, dictionaries, and so on.
- The type of approach needed to solve the challenges, such as dynamic programming, recursion...