close menu
Bookswagon-24x7 online bookstore
close menu
My Account
35%
Problem Solving with Python: Using Computational Thinking in Everyday Life

Problem Solving with Python: Using Computational Thinking in Everyday Life

          
5
4
3
2
1

International Edition


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Quantity:
Add to Wishlist

About the Book

An innovative new way to teach computational thinking and problem solving that makes programming accessible to anyone. An innovative new way to teach computational thinking and problem solving that makes programming accessible to anyone. Problem solving with computation has become a basic literacy required of modern life, but the traditional way we teach students to code doesn't work for everyone. This innovative textbook provides a highly engaging alternative approach. Problem Solving with Python is a hands-on introduction to computational thinking, useful computer science concepts, and the art of computer programming, where skills and ideas are introduced in service of solving an interesting problem. Each chapter begins with an ambiguous problem description drawn from everyday life that resolves with a piece of working code. Gradually progressing in difficulty, the book's three-act structure charts a clear developmental path from novice to skilled programmer. Michael Smith first presents the basics of programming through repeated application of a worklist algorithm, allowing the reader to become comfortable in problem decomposition and fundamentals before attempting more complicated algorithms and approaches. He then shows how to solve real-world problems using the power of abstraction, algorithms, and the right data structures. Finally, the exercises in the book's last act fully transition the reader from programmer to problem solver. Based on the author's popular class at Harvard, this accessible textbook builds conceptual understanding through practical skills development to enable anyone to master the what and how of computational thinking. Prioritizes the development of computational thinking Does not assume students are intrinsically motivated to learn programming Emphasizes active learning through real-world problems and case studies Is suitable for students and self-learners from all backgrounds Includes coverage of data representation, arithmetic and logical operations, algorithms, networks, computability, operating systems and compilers, memory systems, and security Offers extensive ancillary resources

Table of Contents:
Contents
Welcome
1 Read a Children’s Book
Problem Solving, in General
Problem Solving, in Detail
Our First Computational Problem
Imagine a Specific Instance
Sketch Using Computational Thinking
Capturing This Thinking
An Environment for Coding
Our Generic IDE
Our First Pseudocode
Comments
Commands and Input Parameters
Scripts versus Execution
Our First Error
The Interactive Interpreter
Code and Transcript Blocks
Interacting with the Interpreter
The Interpreter as a Calculator
Python Help
Revisiting Our First Error
Undefined Names
Talking through Your Confusion
Naming a Computation’s Result
Debugging
Showtime
Printing to the Console Pane
Statements, Objects, Attributes, and Types
Namespaces
Strings and String Literals
Variables
Valid Names in Python
Terminology Illustrated
Aliasing
Reading Two Lines
Carriage Returns
Reading an Entire Story
Creating a Loop
End of File (EOF)
Three Major Tasks
Testing a Condition
Exiting the Loop
Indentation
Loop Until
Any Book
This Problem, in General
Historical References to Computational Thinking
2 Grab the Dialogue
What Is the Current Task?
A New Problem
Splitting the Problem Into Small Pieces
Reuse
Switching between Goals
Finite State Machines
Error Handling in FSMs
Encoding the state information
This or That
Work on a State
Strings as a Sequence of Characters
Membership Test
Coding a Transition
Indexing and Slicing
For-Loops
String Find
Design Patterns for Error Handling
Never Go Too Long without Testing
Concatenation, Overloading, and Shorthands
Off-by-One and Other Potential Errors
Testing
Beware of Hidden Assumptions
Function Composition
Abstraction as Information Hiding
There Is No Character
3 Replace Text with Emoji
Internationalization
Encoding
Standards
Unicode
A New Problem
Decomposition to Reduce the Problem’s Complexity
Strings as Immutable Sequences
Encode an Emoji in Unicode
Multiple Different Replacements
Feeling Overwhelmed?
Functions
Function Definitions
The Actual Function Definition and Its Invocation
Function Execution
Abstraction, Decomposition, and Algorithms
Definition Before Use
Python’s Special Variables
Docstrings
Getting a Feel for Abstraction
Another Kind of Abstraction
Lists Are Sequence Objects
Abstraction Barriers
Methods
Modules
Revisiting ‘_main_’
Pure Functions
4 Query a Web Resource
Packages and Libraries
APIs
A New Problem
Searching Wikipedia
The Client-Server Programming Model
Resources, Transactions, and Protocols
The URL
The Programmable Web
Python Dictionaries
An HTTP Response
The Response Header
JSON and the Response Body
Enumerating Answers for HOLLIS
Beyond Printing
Blocking and Non-blocking Function Calls
5 Play Guess-a-Number
Guessing a Number
The Player’s Guess
Type Conversion
Try and Recover
The Game Loop
Testing Our Proposed Solution
A Networked Architecture
Its Sequence Diagram
When to Use a New Library
Sockets in Action
Specifying the Other Party
Sending and Receiving Messages
Size Matters
Encoding Again!
A Simplified Networking Interface
The Server
A Connection
Picking Up a Call
The Conversation
Programmer Beware
Run It!
6 Do You See My Dog?
Numbers and Knowledge
Do You See My Dog?
No Interpretation, Please
Reading a Hexdump
Hexadecimal Explained
Converting between Number Systems
Does the Computer See My Dog?
Painting a Picture
Bits
One Finger, No Thumb
The Digital Abstraction
Bits, Bytes, and Nibbles
Setting a Pixel’s Color
Saturation
Overflow and Underflow
Finding Edges
7 Many but Not Any Number
Floating-Point Numbers and numerical Computing
Computers Struggle with Arithmetic?
The Range of a FP Number
Precision
Illustrating This Issue for Precision
Getting Started
One Bit at a Time
Searching for the Smallest Difference
FP Errors Accumulate
8 What Is My Problem?
Data Science
Images as Data about the World
Yes, You Must Clean Up
Understanding What Might Go Wrong
Noise and Its Removal
The Power to Create New Realities
A Process for Eliminating Photobombing
This Data Is Wrong, but...
Zero Out the Unnecessary Details
No Visible Difference
Image Steganography
Where Is That Pixel?
And How Did We Get There?
Visualizing a Traversal
Inverting a Pixel’s Color
Naming the Traversal
Specifying the Range You Want
Storing a 2D Array in Memory
End of Act I
9 Find a Phrase
A Complex Problem-to-Be-Solved
Some Basic Facts
Which Algorithm?
Algorithms, Formally
A Well-Studied Specification for String Matching
Is a Specification an Algorithm?
A Brute-Force Algorithm
A BF-String-Matching Program
One Algorithm, Multiple Implementations
Evaluation
Evaluation in Context
Measuring Performance
How Do We Do Better?
Loops Are Where the Action Is
Computational Complexity
Computational Complexity in Action
Problem Unsolved
10 Build an Index
Strings to Numbers
A Simple Hash Function
Updating a Hash with O(1) Work
Allow Collisions
Other Applications of Hashing
Indices for Fast Data Retrieval
Hash Tables
The Speed of Array-Index Operations
With High Probability
Collision Resolution
Specification for Creating a Book Index
Building Top-Down
Updating the Index
Sort and Strip
11 Discover Driving Directions
A New Approach to Programming
Driving Directions, a Formal Specification
Parallels with Finite State Machines
Solutions with Specific Characteristics
Let’s Walk Before We Drive
A Random Walk
Will It Work?
A Short Walk, Please
No Loops
Only Visit New Spots
A Dog Walk
Simulation
To Maps through OO Programming
Classes
Building an Instance
Self and Instance Attributes
Methods
Representation Invariant
Magic Methods
Building on Others
General Maps
Keeping Track
Remembering How We Got There
The Solution
Depth-First Search (DFS)
Breadth-First Search (BFS)
Informed Searches
12 Divide and Conquer
A Specification for Sorting
Sorting in Python
Sorting in Descending Order
Sorting with Your Own Comparison Function
Sorting Playing Cards
Time Complexity of Brute-Force Sorting
Binary Search
Divide and Conquer
From Split to Merge
Iterative Merge Sort
Recursion
Iterative Factorial
Recursive Merge Sort
Beckett’s Challenge
Its Base Case
The Play with a Single Actor
Looking for the Pattern
A Polished, Full Solution
13 Rewrite the Error Message
The Mistakes We Make in Problem Solving
Our Problem-to-Be-Solved
From the GUI to the Shell
Understanding Paths
From Paths to Programs
Redirecting Inputs and Outputs
Which Output?
Pattern Matching
Wildcards in the Shell
Regular Expressions
Finding Simple Words
Matching Metacharacters
Using Res
Finding Filenames
Python RE Extensions
Putting It All Together
Shell Pipes
Scripting What the Shell Did
Concurrency
Making python32 Look Like python3
14 The Dream of Bug Fixing
Finding All Bugs
Decision Problems
Uncomputable Problems
An Analysis That Finds a Bug
Running Our Simple Analysis
A Tool for Running Analyses
Grabbing a Function with a Syntax Error
Analyzing Other Functions
Using s
A Non-trivial Decision Problem
An Indecisive Decision Function
Insight from Indecision
Specifications without Implementations
15 Embrace Runtime Debugging
The Duality of Code and Data
Breakpoints and Runtime State
Inserting a Breakpoint
Inserting a New Statement
Indenting That Statement
Launching a Script from Another
Instrumenting a Script
REPL
16 Catch Them Early
Divide-by-Zero Bugs
A Silly Coding Error
What’s Hidden
Why Compile?
Finding Type Errors
To Squiggle or Not
Dynamic Typing
Why Types Are Interesting
Types versus Values
Dynamic Type Checking
Static Type Checking
Type Hints
No Free Lunch
17 Build Prediction Models
Predicting Home Prices
Your Sister’s Data
Solving This Problem Ourselves
Machine Learning
Labeled Training Data
ML Workflow
Getting a Feel for the Data
Set the Prediction Target
Pick Some Features
Fit the Model to Our Data
Predicting Unseen Data
Model Validation
Making the Fit Just Right
Bias in ML
Classifying Comments as Toxic
More Art Than Science
18 Use Generative AI
Navigating the Jagged Frontier
My Use of GAI
Large Language Models (LLMs)
The Operation of LLMs
Complexity for Simplicity
Training a Neural Network
Two Pieces to Problem Solving with GAI
An Easy Request?
Write the Script Ourselves
Ask ChatGPT
Is This Task within the Frontier?
The Expanding Frontier
How to Problem Solve with an LLM
Writing Good Prompts
Final Thoughts
Acknowledgments
Index


Best Seller

| | See All

Product Details
  • ISBN-13: 9780262552844
  • Publisher: MIT Press Ltd
  • Publisher Imprint: MIT Press
  • Height: 254 mm
  • No of Pages: 440
  • Sub Title: Using Computational Thinking in Everyday Life
  • ISBN-10: 0262552841
  • Publisher Date: 20 Jan 2026
  • Binding: Paperback
  • Language: English
  • Returnable: Y
  • Width: 178 mm


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Be The First to Review
Problem Solving with Python: Using Computational Thinking in Everyday Life
MIT Press Ltd -
Problem Solving with Python: Using Computational Thinking in Everyday Life
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Problem Solving with Python: Using Computational Thinking in Everyday Life

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book
    Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals

    | | See All


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    ASK VIDYA