Book Image

Applied Computational Thinking with Python

By : Sofía De Jesús, Dayrene Martinez
Book Image

Applied Computational Thinking with Python

By: Sofía De Jesús, Dayrene Martinez

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.
Table of Contents (21 chapters)
1
Section 1: Introduction to Computational Thinking
9
Section 2:Applying Python and Computational Thinking
14
Section 3:Data Processing, Analysis, and Applications Using Computational Thinking and Python
20
Other Books You May Enjoy

What this book covers

Chapter 1, Fundamentals of Computer Science, helps you learn about the fundamental elements of computer science, including theory, design, computational processes and systems, and computers. The focus of this chapter will be on the software elements of computer science.

Chapter 2, Elements of Computational Thinking, explains each of the elements of computational thinking—decomposition, pattern recognition, pattern generalization and abstraction, and algorithm design—and how the process of computational thinking is not linear. Rather, a developer can go back through some of these elements at all stages of the algorithm design process until a solution for a particular problem is reached. This chapter will include some short, relevant problems that are used to demonstrate the use of the elements of computational thinking to arrive at the algorithm.

Chapter 3, Understanding Algorithms and Algorithmic Thinking, provides you with an introduction to algorithms and their definition. You will also review some algorithms to help you develop the analysis skills necessary when assessing algorithms.

Chapter 4, Understanding Logical Reasoning, explores logical reasoning processes such as conditional statements, algorithmic reasoning, and Boolean logic. Throughout the chapter, you will learn basic and intermediate logic processing skills through real and relevant problem analysis.

Chapter 5, Exploring Problem Analysis, explores topics in problem analysis, focusing on problem definition, decomposition, and analysis. In order to practice and further understand the first element of computational thinking, decomposition, you will be presented with real and relevant problems. You will then be able to define and decompose the problem into parts, such as identifying input and output, and additional relevant information needed to begin planning solutions for the problems presented.

Chapter 6, Designing Solutions and Solution Processes, gives you an opportunity to design solutions to multiple problems using previously learned content in the computational thinking process and begin to incorporate logical processing to create a visual representation of the decision process for the solution. Visual representations include diagrams, flow charts, and other helpful processes.

Chapter 7, Identifying Challenges within Solutions, provides the opportunity to practice identifying some of the common errors and/or better possible solutions for an existing problem. While most problems can be solved with a multitude of algorithms that address the needs of the problem, some solutions are best suited for that particular problem. The goal of this chapter is to introduce you to the identification of some pitfalls in the solution design process.

Chapter 8, Introduction to Python, introduces you to basic Python commands and functionalities while applying them to problems. Using the elements of computational thinking, you will be able to design solutions by incorporating the concepts learned earlier.

Chapter 9, Understanding Input and Output to Design a Solution Algorithm, helps you to assess problems to identify the input and output needed in order to design and implement a solution algorithm for the problems.

Chapter 10, Control Flow, helps you to learn more about conditional statements and how to work with for and while loops when solving problems using computational thinking and the Python programming language. You will apply the logical processing learned previously to create Python algorithms when solving problems.

Chapter 11, Using Computational Thinking and Python in Simple Challenges, helps you apply the knowledge acquired previously to complete the computational thinking process when solving challenges in multiple disciplines, using examples that are real and relevant, in order to design the best possible algorithms for each scenario.

Chapter 12, Using Python in Experimental and Data Analysis Problems, explains how to utilize Python capabilities to solve problems that involve experimental data and data processing. The computational thinking elements will be used to solve real and relevant problems using advanced functionalities.

Chapter 13, Using Classification and Clusters, covers classification and clusters. You will use Pandas, Scikit-Learn, and other packages to create training and testing models, and learn some basic definitions for use in large data analysis, such as machine learning and neural network models.

Chapter 14, Using Computational Thinking and Python in Statistical Analysis, dives into further topics relating to statistical analysis, such as importing data, indexing, and preprocessing data. You will then use data visualizations to make decisions on what variables to explore for further analysis.

Chapter 15, Applied Computational Thinking Problems, helps you to work through multiple problems that combine topics from each of the previous chapters in order to solve a problem and design an algorithm in Python. You will use the computational thinking elements to determine what functionalities are necessary in order to design models and create solutions for problems in linguistics, cryptography, and more.

Chapter 16, Advanced Applied Computational Thinking Problems, works through additional applied problems in a variety of areas, including geometric tessellations, creating models of housing data, creating electric fields, analyzing genetic data, analyzing stocks, creating a convolutional neural network (CNN), and more. You will use the computational thinking elements to solve problems and create different figures and visual representations for your problems and datasets.