Algorithmic Thinking
Algorithmic thinking is a structured, methodical approach to solving problems, particularly in the realm of software scripting. It involves breaking down complex tasks into smaller, manageable steps and applying logical reasoning to achieve efficient solutions. The exercises presented in this section are practices in algorithmic thinking. The objective for each is to determine an algorithm which produces the desired results. An algorithm is a series of steps, one after the other. In layman's terms, a software algorithm can be thought of as a "how-to" script written for a software interpreter (or compiler.)
While software programming has long been held as a pseudo-mystical science, only for the highly-intelligent, it is a firmly held belief by the author that the earliest stages of software scripting, determining the algorithm, is easily accessible by most thinking minds. The next step of translating the algorithm to valid software is the part which may take time, patience, and practice to master.
While each of the exercise statements may be written in any general-purpose language, the author of Ruby Book recommends Ruby as the language for implementation. Further, working solutions are given in Ruby, are available on the pages following the exercise. The reader is urged to first written both a purely algorithmic, non-code solution and have attempted a Ruby implementation before reviewing the solution.