Best of
Algorithms

2020

Cracking the Coding Interview: 189 Programming Questions and Solutions 6th Edition


Gayle Laakmann McDowell McDowell - 2020
    

Algorithmic Thinking: A Problem-Based Introduction


Daniel Zingaro - 2020
    For each problem that a programmer wants to solve, they employ an algorithm: a sequence of steps for solving the problem. Many books teach algorithms independently of specific problems, but this book uses careful explanations, examples, and arguments, rather than formal mathematics and proofs which make it difficult for the reader to connect what they are learning to what they can do with that learning. Algorithmic Thinking: A Problem-Based Introduction teaches the reader to use the best algorithms and data structures for a given situation by walking them through solving real-world problems pulled from international programming competitions, such as how to determine whether snowflakes are unique; how to win a game in the minimum number of moves; how to find the number of ways to get to someone's house; how to escape a cave in as few steps as possible; and so on.Readers tackle challenging topics like recursion, dynamic programming, graphs, greedy algorithms, heaps, hash tables, segment trees, and other data structures for efficiently handling data. The book contains no pseudocode: all code is written in C and is thoroughly explained in the text (C is a de facto programming language for programming competitions). Zingaro also shows how several problems can be reduced to algorithms on graphs. By the end of the book, readers should understand the importance of modeling, how to carefully work through a problem, and why it pays to organize data using data structures.

Poems That Solve Puzzles: The History and Science of Algorithms


Chris Bleakley - 2020
    Nowadays, our lives are run by algorithms. They determine what news we see. They influence which products we buy. They suggest our dating partners. They may even be determining the outcome ofnational elections. They are creating, and destroying, entire industries. Despite mounting concerns, few know what algorithms are, how they work, or who created them.Poems that Solve Puzzles tells the story of algorithms from their ancient origins to the present day and beyond. The book introduces readers to the inventors and inspirational events behind the genesis of the world's most important algorithms. Professor Chris Bleakley recounts tales of ancient lostinscriptions, Victorian steam-driven contraptions, top secret military projects, penniless academics, hippy dreamers, tech billionaires, superhuman artificial intelligences, cryptocurrencies, and quantum computing. Along the way, the book explains, with the aid of clear examples and illustrations, how the most influential algorithms work.Compelling and impactful, Poems that Solve Puzzles tells the story of how algorithms came to revolutionise our world.

AI and Machine Learning for Coders: A Programmer's Guide to Artificial Intelligence


Laurence Moroney - 2020
    Based on Laurence Moroney's extremely successful AI courses, this introductory book provides a hands-on, code-first approach to help you build confidence while you learn key topics.You'll understand how to implement the most common scenarios in machine learning, such as computer vision, natural language processing (NLP), and sequence modeling for web, mobile, cloud, and embedded runtimes. Most books on machine learning begin with a daunting amount of advanced math. This guide is built on practical lessons that let you work directly with the code.You'll learn:How to build models with TensorFlow using skills that employers desireThe basics of machine learning by working with code samplesHow to implement computer vision, including feature detection in imagesHow to use NLP to tokenize and sequence words and sentencesMethods for embedding models in Android and iOSHow to serve models over the web and in the cloud with TensorFlow Serving

The Fizz Buzz Fix: Secrets to Thinking Like an Experienced Software Developer (php[architect] anthology Book 4)


Edward Barnard - 2020
    This book teaches the skills and mental processes these challenges target. You won’t just learn “how to learn,” you’ll learn how to think like a computer. These principles are the bedrock of computing and have withstood the test of time.Coding challenges are problematic but routinely used to screen candidates for software development jobs. This book discusses the historical roots of why they select for a specific kind of programmer. If your next interview includes a coding exercise, this book can help you prepare.Understand the Fundamentals For Writing Code In Any LanguageRegardless of where you are in your software career, this book collects insight gained from a lifetime of working with computers. These are the principles, patterns, and approaches seen time and time again across the decades. We’ve added many abstractions over the decades, but the architectural fundamentals are the same, you have to peel back the layers. Understanding what’s going on in the internals of the computer’s CPU gives you new insight when troubleshooting and fixing software errors.This book covers:* How coding challenges like “Fizz Buzz” weed out the wrong people and are rarely applicable to daily software development work. Why do companies insist on using them?* Addressing why the tech interview process drives women and underrepresented groups out of the industry. What can we do about it?* How to practice and prepare for a coding challenge and give yourself an edge. Preparation and repetition can help you keep your cool.* Learning how to think like a computer and how to nurture this skill regardless of language. Most languages share common concepts and assumptions when writing code.* Understanding computing fundamentals like Boolean logic, one’s complement notion, and two’s complement notation. Programming syntax and idioms may differ between languages, but these concepts don’t.* A step-by-step approach to designing an algorithm when you’re tackling a new problem. See how an experienced developer works through how it should work with pseudo-code.* Observing the flow of data throughout a program to understand how the system as whole works. These flows give you key insights into what the program expects and how it transforms inputs to outputs.* Tools for navigating an unfamiliar and complex codebase to decipher how any application works. It provides a hands-on example that helps you understand unfamiliar source code.* Putting it all together in a deep-dive to look at how the PHP compiler implements arrays, which are common constructs in other languages.* Overcoming impostor syndrome, which affects many people who work as software developers. The resources and advice discussed here can help anyone who thinks they don’t belong in the field.

Tessellations: Mathematics, Art, and Recreation


Robert Fathauer - 2020
    Additionally, it covers techniques, tips, and templates to facilitate the creation of mathematical art based on tessellations. Inclusion of special topics like spiral tilings and tessellation metamorphoses allows the reader to explore beautiful and entertaining math and art.The book has a particular focus on 'Escheresque' designs, in which the individual tiles are recognizable real-world motifs. These are extremely popular with students and math hobbyists but are typically very challenging to execute. Techniques demonstrated in the book are aimed at making these designs more achievable. Going beyond planar designs, the book contains numerous nets of polyhedra and templates for applying Escheresque designs to them.Activities and worksheets are spread throughout the book, and examples of real-world tessellations are also provided. Key featuresIntroduces the mathematics of tessellations, including symmetryCovers polygonal, aperiodic, and non-Euclidean tilingsContains tutorial content on designing and drawing Escheresque tessellationsHighlights numerous examples of tessellations in the real worldActivities for individuals or classesFilled with templates to aid in creating Escheresque tessellationsTreats special topics like tiling rosettes, fractal tessellations, and decoration of tiles

Deep Reinforcement Learning in Action


Alexander Zai - 2020
    This reinforcement process can be applied to computer programs allowing them to solve more complex problems that classical programming cannot. Deep Reinforcement Learning in Action teaches you the fundamental concepts and terminology of deep reinforcement learning, along with the practical skills and techniques you’ll need to implement it into your own projects. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Deep reinforcement learning AI systems rapidly adapt to new environments, a vast improvement over standard neural networks. A DRL agent learns like people do, taking in raw data such as sensor input and refining its responses and predictions through trial and error. About the book Deep Reinforcement Learning in Action teaches you how to program AI agents that adapt and improve based on direct feedback from their environment. In this example-rich tutorial, you’ll master foundational and advanced DRL techniques by taking on interesting challenges like navigating a maze and playing video games. Along the way, you’ll work with core algorithms, including deep Q-networks and policy gradients, along with industry-standard tools like PyTorch and OpenAI Gym. What's inside     Building and training DRL networks     The most popular DRL algorithms for learning and problem solving     Evolutionary algorithms for curiosity and multi-agent learning     All examples available as Jupyter Notebooks About the reader For readers with intermediate skills in Python and deep learning. About the author Alexander Zai is a machine learning engineer at Amazon AI. Brandon Brown is a machine learning and data analysis blogger. Table of Contents PART 1 - FOUNDATIONS 1. What is reinforcement learning? 2. Modeling reinforcement learning problems: Markov decision processes 3. Predicting the best states and actions: Deep Q-networks 4. Learning to pick the best policy: Policy gradient methods 5. Tackling more complex problems with actor-critic methods PART 2 - ABOVE AND BEYOND 6. Alternative optimization methods: Evolutionary algorithms 7. Distributional DQN: Getting the full story 8.Curiosity-driven exploration 9. Multi-agent reinforcement learning 10. Interpretable reinforcement learning: Attention and relational models 11. In conclusion: A review and roadmap

Dive Into Algorithms: A Pythonic Adventure for the Intrepid Beginner


Bradford Tuckfield - 2020
    The book tackles classic algorithms like searching, sorting, and optimization as well as those used in fields like machine learning and artificial intelligence.Dive Into Algorithms is a thorough introduction to algorithms, which are sets of instructions that allow a computer to solve a problem and are key to the success of many of today's computer applications. Readers learn about many standard computer science algorithms including ones for searching, sorting, and optimization as well as newer ones used in machine learning and artificial intelligence. Readers also learn how to understand "real life" algorithms like how a baseball outfielder uses an algorithm to determine where to run to field a ball; how computers can beat humans at games like chess; how a chatbot can understand and respond to human speech; and how algorithms have been used throughout history. Readers need little more than high school math to understand an algorithm and the Python code needed to implement the algorithm -- all of which is introduced line-by-line in order to make the code as understandable as possible.