Applied Computational Thinking with Python: Design algorithmic solutions for complex and challenging real-world problems
- Authors: Sofía de Jesús, Dayrene Martinez
- ISBN: 9781839219436
- Publisher: Packt Publishing
- Publication Date: November 27, 2020
- Format: Paperback – 420 pages
- Language: English
Out of stock
Description
Use the computational thinking philosophy to solve complex problems by designing appropriate algorithms to produce optimal results across various domains
Key Features
- Develop logical reasoning and problem-solving skills that will help you tackle complex problems
- Explore core computer science concepts and important computational thinking elements using practical examples
- Find out how to identify the best-suited algorithmic solution for your problem
Book Description
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.
What you will learn
- Find out how to use decomposition to solve problems through visual representation
- Employ pattern generalization and abstraction to design solutions
- Build analytical skills required to assess algorithmic solutions
- Use computational thinking with Python for statistical analysis
- Understand the input and output needs for designing algorithmic solutions
- Use computational thinking to solve data processing problems
- Identify errors in logical processing to refine your solution design
- Apply computational thinking in various domains, such as cryptography, economics, and machine learning
Who this book is for
This book is for students, developers, and professionals looking to develop problem-solving skills and tactics involved in writing or debugging software programs and applications. Familiarity with Python programming is required.
Table of Contents
- Applied Computational Thinking with Python
- Why subscribe?
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Section 1: Introduction to Computational Thinking
- Chapter 1: Fundamentals of Computer Science
- Technical requirements
- Introduction to computer science
- Learning about computers and the binary system
- Converting from binary to base-10
- Converting from base-10 to binary
- Understanding theoretical computer science
- Algorithms
- Coding theory
- Data compression
- Error correction
- Cryptography
- Computational biology
- Data structures
- Information theory
- Automata theory
- Formal language theory
- Symbolic computation
- Computational geometry
- Computational number theory
- Learning about a system’s software
- Operating systems
- Application software
- Understanding computing
- Architecture
- Instruction Set Architecture (ISA)
- Programming languages
- Learning about data types and structures
- Data types
- Data structures
- Summary
- Chapter 2: Elements of Computational Thinking
- Technical requirements
- Understanding computational thinking
- Problem 1 – Conditions
- Decomposing problems
- Recognizing patterns
- Problem 2 – Mathematical algorithms and generalization
- Generalizing patterns
- Designing algorithms
- Additional problems
- Problem 2 – Children’s soccer party
- Problem 3 – Savings and interest
- Summary
- Chapter 3: Understanding Algorithms and Algorithmic Thinking
- Technical requirements
- Defining algorithms in depth
- Algorithms should be clear and unambiguous
- Algorithms should have inputs and outputs that are well defined
- Algorithms should have finiteness
- Algorithms have to be feasible
- Algorithms are language-independent
- Designing algorithms
- Problem 1 – An office lunch
- Office lunch mathematical algorithm
- Office lunch Python algorithm
- Problem 2 – A catering company
- Analyzing algorithms
- Algorithm analysis 1 – States and capitals
- Algorithm analysis 2 – Terminating or not terminating?
- Summary
- Chapter 4: Understanding Logical Reasoning
- Technical requirements
- Understanding the importance of logical reasoning
- Applying inductive reasoning
- Solving an inductive reasoning sample problem
- Applying deductive reasoning
- Learning about conditional statements
- Understanding nested statements
- Using Boolean logic and operators
- The and operator
- The or operator
- The not operator
- Identifying logic errors
- Summary
- Chapter 5: Exploring Problem Analysis
- Technical requirements
- Understanding the problem definitions
- Problem 5A – Building an online store
- Making assumptions
- Things to consider
- Building a dictionary
- Learning to decompose problems
- Converting the flowchart into an algorithm
- Building a dictionary and giving inputs
- Making changes to the cost
- Adding personalization
- Analyzing problems
- Problem 5B – Analyzing a simple game problem
- Summary
- Chapter 6: Designing Solutions and Solution Processes
- Technical requirements
- Designing solutions
- Problem 1 – A marketing survey
- Diagramming solutions
- Creating solutions
- Problem 2 – Pizza order
- Problem 3 – Delays and Python
- Summary
- Chapter 7: Identifying Challenges within Solutions
- Technical requirements
- Identifying errors in algorithm design
- Syntax errors
- Using colons
- Using nested parentheses and brackets
- Other syntax errors
- Errors in logic
- Debugging algorithms
- Comparing solutions
- Problem 1 – Printing even numbers
- Algorithm solution 1 – Printing even numbers
- Algorithm solution 2 – Printing even numbers
- Refining and redefining solutions
- Summary
- Chapter 1: Fundamentals of Computer Science
- Section 2:Applying Python and Computational Thinking
- Chapter 8: Introduction to Python
- Technical requirements
- Introducing Python
- Mathematical built-in functions
- Working with dictionaries and lists
- Defining and using dictionaries
- Defining and using lists
- Using variables and functions
- Variables in Python
- Combining variables
- Working with functions
- Learning about files, data, and iteration
- Handling files in Python
- Data in Python
- Using iteration in algorithms
- Using object-oriented programming
- Problem 1 – Creating a book library
- Problem 2 – Organizing information
- Problem 3 – Loops and math
- Using inheritance
- Summary
- Chapter 9: Understanding Input and Output to Design a Solution Algorithm
- Technical requirements
- Defining input and output
- Understanding input and output in computational thinking
- Problem 1 – Building a Caesar cipher
- Problem 2 – Finding maximums
- Problem 3 – Building a guessing game
- Summary
- Chapter 10: Control Flow
- Technical requirements
- Defining control flow and its tools
- Using if, for, and range() and other control flow statements
- Using nested if statements
- Using for loops and range
- Using other loops and conditionals
- Revisiting functions
- Summary
- Chapter 11: Using Computational Thinking and Python in Simple Challenges
- Technical requirements
- Defining the problem and Python
- Decomposing the problem and using Python functionalities
- Generalizing the problem and planning Python algorithms
- Designing and testing the algorithm
- Summary
- Chapter 8: Introduction to Python
- Section 3:Data Processing, Analysis, and Applications Using Computational Thinking and Python
- Chapter 12: Using Python in Experimental and Data Analysis Problems
- Technical requirements
- Defining experimental data
- Using data libraries in Python
- Installing libraries
- Using NumPy and pandas
- Using Matplotlib
- Understanding data analysis with Python
- Using additional libraries for plotting and analysis
- Using the Seaborn library
- Using the SciPy library
- Using the Scikit-Learn library
- Summary
- Chapter 13: Using Classification and Clusters
- Technical requirements
- Data training and testing
- Classifying data example
- Using the Scikit-Learn library
- Defining optimization models
- The binary cross-entropy model
- The Adam optimization algorithm
- The gradient descent model
- The confusion matrix model
- Implementing data clustering
- Using the BIRCH algorithm
- Using the K-means clustering algorithm
- [Summary
- Chapter 14: Using Computational Thinking and Python in Statistical Analysis
- Technical requirements
- Defining the problem and Python data selection
- Defining pandas
- Determining when to use pandas
- Working with pandas series
- Working with pandas DataFrames
- Preprocessing data
- Data cleaning
- Working with missing data
- Working with noisy data
- Transforming data
- Reducing data
- Processing, analyzing, and summarizing data using visualizations
- Processing data
- Analyzing and summarizing data
- Using data visualization
- Summary
- Chapter 15: Applied Computational Thinking Problems
- Technical requirements
- Problem 1 – Using Python to analyze historical speeches
- Problem 2 – Using Python to write stories
- Defining, decomposing, and planning a story
- Problem 3 – Using Python to calculate text readability
- Problem 4 – Using Python to find most efficient route
- Defining the problem (TSP)
- Recognizing the pattern (TSP)
- Generalizing (TSP)
- Designing the algorithm (TSP)
- Problem 5 – Using Python for cryptography
- Defining the problem (cryptography)
- Recognizing the pattern (cryptography)
- Generalizing (cryptography)
- Designing the algorithm (cryptography)
- Problem 6 – Using Python in cybersecurity
- Problem 7 – Using Python to create a chatbot
- Summary
- Chapter 16: Advanced Applied Computational Thinking Problems
- Technical requirements
- Problem 1 – Using Python to create tessellations
- Problem 2 – Using Python in biological data analysis
- Problem 3 – Using Python to analyze data for specific populations
- Defining the specific problem to analyze and identify the population
- Problem 4 – Using Python to create models of housing data
- Defining the problem
- Algorithm and visual representations of data
- Problem 5 – Using Python to create electric field lines
- Problem 6 – Using Python to analyze genetic data
- Problem 7 – Using Python to analyze stocks
- Problem 8 – Using Python to create a convolutional neural network (CNN)
- Summary
- Chapter 12: Using Python in Experimental and Data Analysis Problems
Authors Biography
Sofia De Jesus is a computational thinking teacher with a degree from the University of Puerto Rico with a focus on math. She has a master’s degree from the University of Dayton. Her experience in education and development spans two decades. She has worked with clients to develop solutions in multiple programming languages. As a teacher, Sofia helps students incorporate the philosophy of computational thinking in courses like game design, circuits, Python, web design, and robotics. She likes to play video games and spend time with her 11 year old Yorkie, King Kong. Sofia also enjoys creating materials, small furniture, and jewelry using CNC machines and laser cutters. She enjoys spending as much time in Puerto Rico as work and life permits.
Dayrene Martinez is a Systems Engineer in the Defense Industry where she develops neural networks embedded in real-time software to aid in decision making for aerospace vehicles. She received a B.S. in Electrical Engineering from the New Jersey Institute of Technology (NJIT). Dayrene is passionate about STEM education and volunteers her free time to inspire the next generation of engineers. She is an active supporter and keynote speaker for the non-profit organization Latinas in STEM. She teaches middle and high school students circuitry, robotics design and software engineering.
Additional information
| Weight | 0.721 kg |
|---|
Only logged in customers who have purchased this product may leave a review.
Related Products









Reviews
There are no reviews yet.