Algorithms—processes that are made up of unambiguous steps and do something useful—make up the very foundations of computer science. But they also inform our choices in approaching everyday tasks, from managing a pile of clothes fresh out of the dryer to deciding what music to listen to.
With Bad Choices, Ali Almossawi presents twelve scenes from everyday life that help demonstrate and demystify the fundamental algorithms that drive computer science, bringing these seemingly elusive concepts into the understandable realms of the everyday.
Readers will discover how:
• Matching socks can teach you about search and hash tables
• Planning trips to the store can demonstrate the value of stacks
• Deciding what music to listen to shows why link analysis is all-important
• Crafting a succinct Tweet draws on ideas from compression
• Making your way through a grocery list helps explain priority queues and traversing graphs
• And more
As you better understand algorithms, you’ll also discover what makes a method faster and more efficient, helping you become a more nimble, creative problem-solver, ready to face new challenges. Bad Choices will open the world of algorithms to all readers, making this a perennial go-to for fans of quirky, accessible science books.
|Publisher:||Penguin Publishing Group|
|Product dimensions:||7.20(w) x 8.60(h) x 0.70(d)|
About the Author
Table of Contents
Algorithmic Thinking in Everyday Life
1 Match those Socks 7
2 Find your Size 17
3 Pop to the Shops 25
4 Bring him home 33
5 Sort that Post 43
6 Be More hip 53
7 Update that Status 65
8 Get the jobs done 75
9 Fix that necklace 87
10 Locate that box 95
11 Fill those Sheives 103
12 Navigate those aisies 113
Final thoughts 125
To Learn More 129
Rates of Growth 137
Most Helpful Customer Reviews
Bad Choices by Ali Almossawi is a very clever, educational book designed to help explain IT concepts to budding programmers. It is a conceptual book, explaining what can appear to be quite complex ideas, using everyday examples. Not only does this book explain ideas around algorithms, but when reading the book, it makes you realise how you already follow many of the examples in your everyday life. Almossawi shows how mundane tasks such as sorting socks into pairs can be a descriptive way of looking at ‘arrays’ in computing. You learn how to escape a maze in the most efficient way and how to sort numbers in a ‘linearithmic’ way. I had started a new programming project which required me to write complex XML graphs. I hadn’t even heard of XML graphs at this stage and found the concept quite challenging. It was only once I had learnt how to write graphs that I came across this book. XML graphs are described in a wonderfully simplistic way using the example of a beaded necklace with someone’s name on the beads. I wish I had read this book before starting the project as my life would have been made so much easier. The book seems to be aimed at would-be programmers, students, and people who want a different logical way of looking at things. It is easy to read and most importantly, easy to understand. The concepts discussed are very relevant to computer programming and I would recommend this book to anyone looking to get started in this field.