#### Overview of this book

Computational thinking helps you to develop logical processing and algorithmic thinking while solving real-world problems across a wide range of domains. It's an essential skill that you should possess to keep ahead of the curve in this modern era of information technology. Developers can apply their knowledge of computational thinking to solve problems in multiple areas, including economics, mathematics, and artificial intelligence. This book begins by helping you get to grips with decomposition, pattern recognition, pattern generalization and abstraction, and algorithm design, along with teaching you how to apply these elements practically while designing solutions for challenging problems. You’ll then learn about various techniques involved in problem analysis, logical reasoning, algorithm design, clusters and classification, data analysis, and modeling, and understand how computational thinking elements can be used together with these aspects to design solutions. Toward the end, you will discover how to identify pitfalls in the solution design process and how to choose the right functionalities to create the best possible algorithmic solutions. By the end of this algorithm book, you will have gained the confidence to successfully apply computational thinking techniques to software development.
Preface
Section 1: Introduction to Computational Thinking
Free Chapter
Chapter 1: Fundamentals of Computer Science
Chapter 2: Elements of Computational Thinking
Chapter 3: Understanding Algorithms and Algorithmic Thinking
Chapter 4: Understanding Logical Reasoning
Chapter 5: Exploring Problem Analysis
Chapter 6: Designing Solutions and Solution Processes
Chapter 7: Identifying Challenges within Solutions
Section 2:Applying Python and Computational Thinking
Chapter 8: Introduction to Python
Chapter 9: Understanding Input and Output to Design a Solution Algorithm
Chapter 10: Control Flow
Chapter 11: Using Computational Thinking and Python in Simple Challenges
Section 3:Data Processing, Analysis, and Applications Using Computational Thinking and Python
Chapter 12: Using Python in Experimental and Data Analysis Problems
Chapter 13: Using Classification and Clusters
Chapter 14: Using Computational Thinking and Python in Statistical Analysis
Chapter 15: Applied Computational Thinking Problems
Other Books You May Enjoy

# Problem 3 - Loops and math

For this problem, we have to create an algorithm that prints out the squares of all the numbers given a range of two numbers. Remember, we can print each individually, but if the range is large, it's best we have a list instead. We'll also need to iterate in the range, and we have to add 1 to the maximum if we want to include the endpoints.

Take a look at the following algorithm:

ch8_SquareLoops.py

```print("This program will print the squares of the numbers in a given range of numbers.")
a = int(input("What is the minimum of your range? "))
b = int(input("What is the maximum of your range? "))
Numbers = []
b = b + 1
for i in range(a, b):
j = i**2
Numbers.append(j)
i = i + 1
print(Numbers)```

Notice that we added a `j` variable to our algorithm. We didn't use `i = i**2` because that would change the value of `i`, which would affect our iteration...