Chapter Overview

Learn what we'll be covering in the chapter.

“If I had an hour to solve a problem, I’d spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.”     \space\space\space\space

Albert Einstein- Albert \space Einstein

In this chapter, we’ll discover and learn a few of the finest computational thinking techniques in computer science. We’ll pose a few analytical and computational problems that will allow us to discover and appreciate some effective techniques like binary and tertiary searching, sequences and series and their connection with algorithm designing and analysis, a cryptographic technique for message passing, and the main theme of distributed and parallel computing. These agile techniques are foundational blocks in solving many challenging problems related to computer science.

We’ve selected various real-life problems to solve in this chapter. We’ll understand each problem and then step-by-step come up with all the possible solutions. While working on our logic-building skills, we’ll keep asking ourselves one fundamental question: How to solve a computational problem efficiently? So, let’s begin!