0%

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

  1. Applied Computational Thinking with Python
  2. Why subscribe?
  3. Contributors
  4. About the authors
  5. About the reviewer
  6. Packt is searching for authors like you
  7. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Download the example code files
    5. Download the color images
    6. Conventions used
    7. Get in touch
    8. Reviews
  8. Section 1: Introduction to Computational Thinking
  9. Chapter 1: Fundamentals of Computer Science
    1. Technical requirements
    2. Introduction to computer science
    3. Learning about computers and the binary system
    4. Converting from binary to base-10
    5. Converting from base-10 to binary
    6. Understanding theoretical computer science
    7. Algorithms
    8. Coding theory
    9. Data compression
    10. Error correction
    11. Cryptography
    12. Computational biology
    13. Data structures
    14. Information theory
    15. Automata theory
    16. Formal language theory
    17. Symbolic computation
    18. Computational geometry
    19. Computational number theory
    20. Learning about a system's software
    21. Operating systems
    22. Application software
    23. Understanding computing
    24. Architecture
    25. Instruction Set Architecture (ISA)
    26. Programming languages
    27. Learning about data types and structures
    28. Data types
    29. Data structures
    30. Summary
  10. Chapter 2: Elements of Computational Thinking
    1. Technical requirements
    2. Understanding computational thinking
    3. Problem 1 - Conditions
    4. Decomposing problems
    5. Recognizing patterns
    6. Problem 2 - Mathematical algorithms and generalization
    7. Generalizing patterns
    8. Designing algorithms
    9. Additional problems
    10. Problem 2 - Children's soccer party
    11. Problem 3 - Savings and interest
    12. Summary
  11. Chapter 3: Understanding Algorithms and Algorithmic Thinking
    1. Technical requirements
    2. Defining algorithms in depth
    3. Algorithms should be clear and unambiguous
    4. Algorithms should have inputs and outputs that are well defined
    5. Algorithms should have finiteness
    6. Algorithms have to be feasible
    7. Algorithms are language-independent
    8. Designing algorithms
    9. Problem 1 – An office lunch
    10. Office lunch mathematical algorithm
    11. Office lunch Python algorithm
    12. Problem 2 – A catering company
    13. Analyzing algorithms
    14. Algorithm analysis 1 – States and capitals
    15. Algorithm analysis 2 – Terminating or not terminating?
    16. Summary
  12. Chapter 4: Understanding Logical Reasoning
    1. Technical requirements
    2. Understanding the importance of logical reasoning
    3. Applying inductive reasoning
    4. Solving an inductive reasoning sample problem
    5. Applying deductive reasoning
    6. Learning about conditional statements
    7. Understanding nested statements
    8. Using Boolean logic and operators
    9. The and operator
    10. The or operator
    11. The not operator
    12. Identifying logic errors
    13. Summary
  13. Chapter 5: Exploring Problem Analysis
    1. Technical requirements
    2. Understanding the problem definitions
    3. Problem 5A – Building an online store
    4. Making assumptions
    5. Things to consider
    6. Building a dictionary
    7. Learning to decompose problems
    8. Converting the flowchart into an algorithm
    9. Building a dictionary and giving inputs
    10. Making changes to the cost
    11. Adding personalization
    12. Analyzing problems
    13. Problem 5B – Analyzing a simple game problem
    14. Summary
  14. Chapter 6: Designing Solutions and Solution Processes
    1. Technical requirements
    2. Designing solutions
    3. Problem 1 - A marketing survey
    4. Diagramming solutions
    5. Creating solutions
    6. Problem 2 - Pizza order
    7. Problem 3 - Delays and Python
    8. Summary
  15. Chapter 7: Identifying Challenges within Solutions
    1. Technical requirements
    2. Identifying errors in algorithm design
    3. Syntax errors
    4. Using colons
    5. Using nested parentheses and brackets
    6. Other syntax errors
    7. Errors in logic
    8. Debugging algorithms
    9. Comparing solutions
    10. Problem 1 - Printing even numbers
    11. Algorithm solution 1 - Printing even numbers
    12. Algorithm solution 2 - Printing even numbers
    13. Refining and redefining solutions
    14. Summary
  16. Section 2:Applying Python and Computational Thinking
  17. Chapter 8: Introduction to Python
    1. Technical requirements
    2. Introducing Python
    3. Mathematical built-in functions
    4. Working with dictionaries and lists
    5. Defining and using dictionaries
    6. Defining and using lists
    7. Using variables and functions
    8. Variables in Python
    9. Combining variables
    10. Working with functions
    11. Learning about files, data, and iteration
    12. Handling files in Python
    13. Data in Python
    14. Using iteration in algorithms
    15. Using object-oriented programming
    16. Problem 1 - Creating a book library
    17. Problem 2 - Organizing information
    18. Problem 3 - Loops and math
    19. Using inheritance
    20. Summary
  18. Chapter 9: Understanding Input and Output to Design a Solution Algorithm
    1. Technical requirements
    2. Defining input and output
    3. Understanding input and output in computational thinking
    4. Problem 1 – Building a Caesar cipher
    5. Problem 2 – Finding maximums
    6. Problem 3 – Building a guessing game
    7. Summary
  19. Chapter 10: Control Flow
    1. Technical requirements
    2. Defining control flow and its tools
    3. Using if, for, and range() and other control flow statements
    4. Using nested if statements
    5. Using for loops and range
    6. Using other loops and conditionals
    7. Revisiting functions
    8. Summary
  20. Chapter 11: Using Computational Thinking and Python in Simple Challenges
    1. Technical requirements
    2. Defining the problem and Python
    3. Decomposing the problem and using Python functionalities
    4. Generalizing the problem and planning Python algorithms
    5. Designing and testing the algorithm
    6. Summary
  21. Section 3:Data Processing, Analysis, and Applications Using Computational Thinking and Python
  22. Chapter 12: Using Python in Experimental and Data Analysis Problems
    1. Technical requirements
    2. Defining experimental data
    3. Using data libraries in Python
    4. Installing libraries
    5. Using NumPy and pandas
    6. Using Matplotlib
    7. Understanding data analysis with Python
    8. Using additional libraries for plotting and analysis
    9. Using the Seaborn library
    10. Using the SciPy library
    11. Using the Scikit-Learn library
    12. Summary
  23. Chapter 13: Using Classification and Clusters
    1. Technical requirements
    2. Data training and testing
    3. Classifying data example
    4. Using the Scikit-Learn library
    5. Defining optimization models
    6. The binary cross-entropy model
    7. The Adam optimization algorithm
    8. The gradient descent model
    9. The confusion matrix model
    10. Implementing data clustering
    11. Using the BIRCH algorithm
    12. Using the K-means clustering algorithm
    13. Summary
  24. Chapter 14: Using Computational Thinking and Python in Statistical Analysis
    1. Technical requirements
    2. Defining the problem and Python data selection
    3. Defining pandas
    4. Determining when to use pandas
    5. Working with pandas series
    6. Working with pandas DataFrames
    7. Preprocessing data
    8. Data cleaning
    9. Working with missing data
    10. Working with noisy data
    11. Transforming data
    12. Reducing data
    13. Processing, analyzing, and summarizing data using visualizations
    14. Processing data
    15. Analyzing and summarizing data
    16. Using data visualization
    17. Summary
  25. Chapter 15: Applied Computational Thinking Problems
    1. Technical requirements
    2. Problem 1 – Using Python to analyze historical speeches
    3. Problem 2 – Using Python to write stories
    4. Defining, decomposing, and planning a story
    5. Problem 3 – Using Python to calculate text readability
    6. Problem 4 – Using Python to find most efficient route
    7. Defining the problem (TSP)
    8. Recognizing the pattern (TSP)
    9. Generalizing (TSP)
    10. Designing the algorithm (TSP)
    11. Problem 5 – Using Python for cryptography
    12. Defining the problem (cryptography)
    13. Recognizing the pattern (cryptography)
    14. Generalizing (cryptography)
    15. Designing the algorithm (cryptography)
    16. Problem 6 – Using Python in cybersecurity
    17. Problem 7 – Using Python to create a chatbot
    18. Summary
  26. Chapter 16: Advanced Applied Computational Thinking Problems
    1. Technical requirements
    2. Problem 1 – Using Python to create tessellations
    3. Problem 2 – Using Python in biological data analysis
    4. Problem 3 – Using Python to analyze data for specific populations
    5. Defining the specific problem to analyze and identify the population
    6. Problem 4 – Using Python to create models of housing data
    7. Defining the problem
    8. Algorithm and visual representations of data
    9. Problem 5 – Using Python to create electric field lines
    10. Problem 6 – Using Python to analyze genetic data
    11. Problem 7 – Using Python to analyze stocks
    12. Problem 8 – Using Python to create a convolutional neural network (CNN)
    13. Summary
  27. Other Books You May Enjoy
3.139.82.23