Applied Computational Thinking with Python: Design algorithmic solutions for complex and challenging real-world problems

Rs. 9,935
  • 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



Share
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
  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
  8. Who this book is for
  9. What this book covers
  10. To get the most out of this book
  11. Download the example code files
  12. Download the color images
  13. Conventions used
  14. Get in touch
  15. Reviews
  16. Section 1: Introduction to Computational Thinking
    1. 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
    2. 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
    3. 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
    4. 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
    5. 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
    6. 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
    7. 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
  17. Section 2:Applying Python and Computational Thinking
    1. 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
    2. 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
    3. 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
    4. 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
  18. Section 3:Data Processing, Analysis, and Applications Using Computational Thinking and Python
    1. 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
    2. 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
    3. 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
    4. 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
    5. 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
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
Weight0.721 kg
Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.