1100 Best Algorithms Books of All Time
We've ranked the best algorithms books using expert recommendations, sales data, and millions of reader ratings. At Shortform, we know books. Our book guides are the best in the world. Learn why.
1
2Algorithm Design Manual
This book is an illustration of the power of names in the Google era. [source]
3Data Structures and Algorithms in Java
The book presents some very basic algorithms, using Java. Every algorithm you see in the book is also implemented in Java, so if you want to run it, you can copy the code and execute it yourself. [source]
4Algorithms to Live By: The Computer Science of Human Decisions
All our lives are constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of new activities and familiar favorites is the most fulfilling? These may seem like uniquely human quandaries, but they are not: computers, too, face the same constraints, so computer scientists have been grappling with their version of such issues for decades. And the solutions they've found have much to teach us.
In a dazzlingly interdisciplinary work, acclaimed author Brian Christian and cognitive scientist Tom Griffiths show how the algorithms used by computers can also untangle very human questions. They explain how to have better hunches and when to leave things to chance, how to deal with overwhelming choices and how best to connect with others. From finding a spouse to finding a parking spot, from organizing one's inbox to understanding the workings of memory, Algorithms to Live By transforms the wisdom of computer science into strategies for human living.
CEO/Walmart
Here are some of my favorite reads from 2017. Lots of friends and colleagues send me book suggestions and it's impossible to squeeze them all in. I continue to be super curious about how digital and tech are enabling people to transform our lives but I try to read a good mix of books that apply to a variety of areas and stretch my thinking more broadly. [source]
This is a great book talking about how you can use computer science to help you make decisions in life. How do you know when to make a decision on the perfect house? Car? etc? It helps you apply algorithms to making those decisions optimally without getting lost. [source]
When asked what books he would recommend to young people interested in his career path, mentioned Algorithms to Live By. [source]
5Cracking the Coding Interview: 189 Programming Questions and Solutions
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book.
Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions.
These interview questions are real; they are not pulled out of computer science textbooks. They reflect what's truly being asked at the top companies, so that you can be as prepared as possible. WHAT'S INSIDE?
• 189 programming interview questions, ranging from the basics to the trickiest algorithm problems.
• A walk-through of how to derive each solution, so that you can learn how to get there yourself.
• Hints on how to solve each of the 189 questions, just like what you would get in a real interview.
• Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen.
• Extensive coverage of essential topics, such as big O time, data structures, and core algorithms.
• A behind the scenes look at how top companies like Google and Facebook hire developers.
• Techniques to prepare for and ace the soft side of the interview: behavioral questions.
• For interviewers and companies: details on what makes a good interview question and hiring process.
6Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:
Write a spell checker using graph algorithms
Understand how data compression works using Huffman coding
Identify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer instead
Each carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.
7Algorithms
Carefully chosen advanced topics that can be skipped in a standard one-semester course, but can be covered in an advanced algorithms course or in a more leisurely two-semester sequence.
An accessible treatment of linear programming introduces students to one of the greatest achievements in algorithms. An optional chapter on the quantum algorithm for factoring provides a unique peephole into this exciting topic. In addition to the text, DasGupta also offers a Solutions Manual, which is available on the Online Learning Center.
"Algorithms is an outstanding undergraduate text, equally informed by the historical roots and contemporary applications of its subject. Like a captivating novel, it is a joy to read." Tim Roughgarden Stanford University
8Hello World: Being Human in the Age of Algorithms
If you were accused of a crime, who would you rather decide your sentence—a mathematically consistent algorithm incapable of empathy or a compassionate human judge prone to bias and error? What if you want to buy a driverless car and must choose between one programmed to save as many lives as possible and another that prioritizes the lives of its own passengers? And would you agree to share your family’s full medical history if you were told that it would help researchers find a cure for cancer?
These are just some of the dilemmas that we are beginning to face as we approach the age of the algorithm, when it feels as if the machines reign supreme. Already, these lines of code are telling us what to watch, where to go, whom to date, and even whom to send to jail. But as we rely on algorithms to automate big, important decisions—in crime, justice, healthcare, transportation, and money—they raise questions about what we want our world to look like. What matters most: Helping doctors with diagnosis or preserving privacy? Protecting victims of crime or preventing innocent people being falsely accused?
Hello World takes us on a tour through the good, the bad, and the downright ugly of the algorithms that surround us on a daily basis. Mathematician Hannah Fry reveals their inner workings, showing us how algorithms are written and implemented, and demonstrates the ways in which human bias can literally be written into the code. By weaving in relatable, real world stories with accessible explanations of the underlying mathematics that power algorithms, Hello World helps us to determine their power, expose their limitations, and examine whether they really are improvement on the human systems they replace.
Darroch: “The best book I’ve read recently is called Hello World... It’s about the impact of algorithms across different areas... For me this was the best piece of learning I’ve done in recent months.” [source]
The fact is, the age of AI is coming fast, and we need to be ready for it. This book will help you decide how worried you should be. [source]
9The Art of Computer Programming, Volumes 1-4a Boxed Set
In describing the new fourth volume, one reviewer listed the qualities that distinguish all of Knuth's work.
In sum: ] "detailed coverage of the basics, illustrated with well-chosen examples; occasional forays into more esoteric topics and problems at the frontiers of research; impeccable writing peppered with occasional bits of humor; extensive collections of exercises, all with solutions or helpful hints; a careful attention to history; implementations of many of the algorithms in his classic step-by-step form."
--Frank Ruskey
These four books comprise what easily could be the most important set of information on any serious programmer's bookshelf.
Co-founder/PayPal, CEO/Affirm, Investor
I have a certain permanent love for the author's magnum opus. [source]
10Structure and Interpretation of Computer Programs
Co-founder/PayPal, CEO/Affirm, Investor
Easier to read than "The Art of Computer Programming" end-to-end quickly. [source]
The most valuable thing this book gives you is confidence and knowledge to go and create your own programming language. [source]
@jesseddy The best book in classical and “hands-on example” terms is Structure and Interpretation of Computer Programs — but it requires maybe a year to get thru and for me, 10 years more to marinate over. *A* book is the one I am finishing now to come out Nov 2019. https://t.co/OODjQXgf1I [source]
11Algorithms Illuminated: The Basics (Part 1)
12Programming Pearls
I very much enjoyed reading "Programming Pearls" by John Bentley. Most of the software we write is trying to solve fairly large and ill-defined problems in a way that minimises development cost, but Programming Pearls presents a lot of small, well-defined problems, and talks through their solutions in ways that minimise machine resource usage. There are lots of good "a-ha" moments when reading it, and working through ways to think about the problems that knock asymptotic orders off the computational complexity. [source]
13The Art of Computer Programming, Volume 1: Fundamental Algorithms
14Algorithms Demystified
15Algorithm Design
August 6, 2009 Author, Jon Kleinberg, was recently cited in the New York Times for his statistical analysis research in the Internet age.
16Problem Solving with Algorithms and Data Structures Using Python
17Algorithms in a Nutshell
With its focus on application, rather than theory, this book provides efficient code solutions in several programming languages that you can easily adapt to a specific project. Each major algorithm is presented in the style of a design pattern that includes information to help you understand why and when the algorithm is appropriate.
With this book, you will:
Solve a particular coding problem or improve on the performance of an existing solution
Quickly locate algorithms that relate to the problems you want to solve, and determine why a particular algorithm is the right one to use
Get algorithmic solutions in C, C++, Java, and Ruby with implementation tips
Learn the expected performance of an algorithm, and the conditions it needs to perform at its best
Discover the impact that similar design decisions have on different algorithms
Learn advanced data structures to improve the efficiency of algorithms
With Algorithms in a Nutshell, you'll learn how to improve the performance of key algorithms essential for the success of your software applications.
18Invisible Women: Data Bias in a World Designed for Men
Invisible Women shows us how, in a world largely built for and by men, we are systematically ignoring half the population. It exposes the gender data gap – a gap in our knowledge that is at the root of perpetual, systemic discrimination against women, and that has created a pervasive but invisible bias with a profound effect on women’s lives.
Award-winning campaigner and writer Caroline Criado Perez brings together for the first time an impressive range of case studies, stories and new research from across the world that illustrate the hidden ways in which women are forgotten, and the impact this has on their health and well-being. From government policy and medical research, to technology, workplaces, urban planning and the media, Invisible Women reveals the biased data that excludes women. In making the case for change, this powerful and provocative book will make you see the world anew.
@CCriadoPerez @MumsnetTowers I love this - the book, Poppy, the mug - it's so well composed! [source]
Tell me your best thing today. Mine was an amazing book and greeting card arrived in the post from the wonderful @MmeEmmeline https://t.co/GpEs2lg037 [source]
@CCriadoPerez mate, I bow in admiration. it's an AMAZING, game-changing book. [source]
19The Art of Computer Programming, Volumes 1-3 Boxed Set
20The Art of Computer Programming: Volume 3: Sorting and Searching
21The Hundred-Page Machine Learning Book
Concise and to the point — the book can be read during a week. During that week, you will learn almost everything modern machine learning has to offer. The author and other practitioners have spent years learning these concepts.
Companion wiki — the book has a continuously updated wiki that extends some book chapters with additional information: Q&A, code snippets, further reading, tools, and other relevant resources.
Flexible price and formats — choose from a variety of formats and price options: Kindle, hardcover, paperback, EPUB, PDF. If you buy an EPUB or a PDF, you decide the price you pay!
Read first, buy later — download book chapters for free, read them and share with your friends and colleagues. Only if you liked the book or found it useful in your work, study or business, then buy it.
Recent top-selling books in #AI & #MachineLearning: https://t.co/Ij9I7SzR4d ————— #BigData #DataScience #DataMining #Algorithms #PredictiveAnalytics #Python ————— ...in the TOP 10: 1)The Hundred-Page ML Book: https://t.co/dQ7nP6gwP0 2)Hands-on ML with...: https://t.co/Y0Iz3GbtGP https://t.co/72rAFN1FwW [source]
22The Singularity is Near: When Humans Transcend Biology
The Singularity Is Near portrays what life will be like after this event--a human-machine civilization where our experiences shift from real reality to virtual reality and where our intelligence becomes nonbiological and trillions of times more powerful than unaided human intelligence. In practical terms, this means that human aging and pollution will be reversed, world hunger will be solved, and our bodies and environment transformed by nanotechnology to overcome the limitations of biology, including death.
We will be able to create virtually any physical product just from information, resulting in radical wealth creation. In addition to outlining these fantastic changes, Kurzweil also considers their social and philosophical ramifications. With its radical but optimistic view of the course of human development, The Singularity Is Near is certain to be one of the most widely discussed and provocative books of 2005.
This book was recommended by Antonio when asked for titles he would recommend to young people interested in his career path. [source]
I wouldn’t be the first to look at him this way but I read Kurzweil’s work as essentially a work of religious mysticism. I think there’s no other way to read it, really. [source]
It opened me up to the idea of science fiction becoming science fact. [source]
23The Art of Computer Programming, Volume 2: Seminumerical Algorithms
Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org
24Automate This: How Algorithms Came to Rule Our World
It used to be that to diagnose an illness, interpret legal documents, analyze foreign policy, or write a newspaper article you needed a human being with specific skills—and maybe an advanced degree or two. These days, high-level tasks are increasingly being handled by algorithms that can do precise work not only with speed but also with nuance. These “bots” started with human programming and logic, but now their reach extends beyond what their creators ever expected. In this fascinating, frightening book, Christopher Steiner tells the story of how algorithms took over—and shows why the “bot revolution” is about to spill into every aspect of our lives, often silently, without our knowledge. The May 2010 “Flash Crash” exposed Wall Street’s reliance on trading bots to the tune of a 998-point market drop and $1 trillion in vanished market value. But that was just the beginning. In Automate This, we meet bots that are driving cars, penning haiku, and writing music mistaken for Bach’s. They listen in on our customer service calls and figure out what Iran would do in the event of a nuclear standoff. There are algorithms that can pick out the most cohesive crew of astronauts for a space mission or identify the next Jeremy Lin. Some can even ingest statistics from baseball games and spit out pitch-perfect sports journalism indistinguishable from that produced by humans. The interaction of man and machine can make our lives easier. But what will the world look like when algorithms control our hospitals, our roads, our culture, and our national security? What happens to businesses when we automate judgment and eliminate human instinct? And what role will be left for doctors, lawyers, writers, truck drivers, and many others? Who knows—maybe there’s a bot learning to do your job this minute.
25Hacker's Delight
26Information Theory, Inference and Learning Algorithms
27Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy
New York Times Bestseller
A former Wall Street quant sounds an alarm on the mathematical models that pervade modern life -- and threaten to rip apart our social fabric
We live in the age of the algorithm. Increasingly, the decisions that affect our lives--where we go to school, whether we get a car loan, how much we pay for health insurance--are being made not by humans, but by mathematical models. In theory, this should lead to greater fairness: Everyone is judged according to the same rules, and bias is eliminated.
But as Cathy O'Neil reveals in this urgent and necessary book, the opposite is true. The models being used today are opaque, unregulated, and uncontestable, even when they're wrong. Most troubling, they reinforce discrimination: If a poor student can't get a loan because a lending model deems him too risky (by virtue of his zip code), he's then cut off from the kind of education that could pull him out of poverty, and a vicious spiral ensues. Models are propping up the lucky and punishing the downtrodden, creating a "toxic cocktail for democracy." Welcome to the dark side of Big Data.
Tracing the arc of a person's life, O'Neil exposes the black box models that shape our future, both as individuals and as a society. These "weapons of math destruction" score teachers and students, sort resumes, grant (or deny) loans, evaluate workers, target voters, set parole, and monitor our health.
O'Neil calls on modelers to take more responsibility for their algorithms and on policy makers to regulate their use. But in the end, it's up to us to become more savvy about the models that govern our lives. This important book empowers us to ask the tough questions, uncover the truth, and demand change.
-- Longlist for National Book Award (Non-Fiction)
-- Goodreads, semi-finalist for the 2016 Goodreads Choice Awards (Science and Technology)
-- Kirkus, Best Books of 2016
-- New York Times, 100 Notable Books of 2016 (Non-Fiction)
-- The Guardian, Best Books of 2016
-- WBUR's "On Point," Best Books of 2016: Staff Picks
-- Boston Globe, Best Books of 2016, Non-Fiction
How the use of algorithms has affected people’s lives and occasionally ruined them. [source]
This book is a really fantastic analysis of how quantification, the collection of data, the modelling around data, the predictions made by using data, the algorithmic and quantifiable ways of predicting behaviour based on data, are all built by elites for elites and end up, quite frankly, screwing over everybody else. [source]
28Algorithms of Oppression: How Search Engines Reinforce Racism
In Algorithms of Oppression, Safiya Umoja Noble challenges the idea that search engines like Google offer an equal playing field for all forms of ideas, identities, and activities. Data discrimination is a real social problem; Noble argues that the combination of private interests in promoting certain sites, along with the monopoly status of a relatively small number of Internet search engines, leads to a biased set of search algorithms that privilege whiteness and discriminate against people of color, specifically women of color.
Through an analysis of textual and media searches as well as extensive research on paid online advertising, Noble exposes a culture of racism and sexism in the way discoverability is created online. As search engines and their related companies grow in importance - operating as a source for email, a major vehicle for primary and secondary school learning, and beyond - understanding and reversing these disquieting trends and discriminatory practices is of utmost importance.
An original, surprising and, at times, disturbing account of bias on the internet, Algorithms of Oppression contributes to our understanding of how racism is created, maintained, and disseminated in the 21st century.
It's our first Thurgood Marshall Institute podcast. A terrific discussion with Professor @safiyanoble, author of the must read book Algorithms of Oppression. Listen. @TMI_LDF https://t.co/6eq51hhrJH [source]
29Code: The Hidden Language of Computer Hardware and Software
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
It gets you to use your imagination to virtually build a computer. It’s easy to read, you can lie down on the couch and enjoy it—it’s not so much of a textbook. It demystifies the magic of a computer and what it is. [source]
30The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part 1
The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e ISBN: 0321751043
31Introduction to Algorithms: A Creative Approach
32Superintelligence: Paths, Dangers, Strategies
The human brain has some capabilities that the brains of other animals lack. It is to these distinctive capabilities that our species owes its dominant position. If machine brains surpassed human brains in general intelligence, then this new superintelligence could become extremely powerful--possibly beyond our control. As the fate of the gorillas now depends more on humans than on the species itself, so would the fate of humankind depend on the actions of the machine superintelligence.
But we have one advantage: we get to make the first move. Will it be possible to construct a seed Artificial Intelligence, to engineer initial conditions so as to make an intelligence explosion survivable? How could one achieve a controlled detonation?
Founder/SpaceX
Worth reading Superintelligence by Bostrom. We need to be super careful with AI. Potentially more dangerous than nukes. [source]
CEO/Barclays Africa
Ramos will take the summer to examine some of the questions weighing more heavily on humankind as we contemplate our collective future: what happens when we can write our own genetic codes, and what happens when we create technology that is meaningfully more intelligent than us. The Gene: An Intimate History—Siddhartha Mukherjee Superintelligence: Paths, Dangers, Strategies—Nick Bostrom The Ministry of Utmost Happiness—Arundhati Roy [source]
I picked this book because the possibility of us developing human-level artificial intelligence, and from there superintelligence—an artificial agent that is considerably more intelligent than we are—is at least a contender for the most important issue in the next two centuries. Bostrom’s book has been very influential in effective altruism, lots of people work on artificial intelligence in order to ensure that it is developed safely. I don’t agree with the entire contents of the book, but there are many compelling arguments in it. It would be extremely overconfident to dismiss this book as too speculative. In fact, I think there should be a lot more work that tries to understand the biggest challenges for the next two hundred years, and what we could do to try to overcome them. [source]
33Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers
This is the first book to answer that question in language anyone can understand, revealing the extraordinary ideas that power our PCs, laptops, and smartphones. Using vivid examples, John MacCormick explains the fundamental "tricks" behind nine types of computer algorithms, including artificial intelligence (where we learn about the "nearest neighbor trick" and "twenty questions trick"), Google's famous PageRank algorithm (which uses the "random surfer trick"), data compression, error correction, and much more.
These revolutionary algorithms have changed our world: this book unlocks their secrets, and lays bare the incredible ideas that our computers use every day.
34Data Structures and Algorithms
35Data Structures and Algorithms Made Easy
36The Nature of Code
37Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology
38Algorithms Plus Data Structures Equals Programs (Prentice-Hall series in automatic computation)
39Code Complete
Discover the timeless techniques and strategies that help you:
Design for minimum complexity and maximum creativity
Reap the benefits of collaborative development
Apply defensive programming techniques to reduce and flush out errors
Exploit opportunities to refactor--or evolve--code, and do it safely
Use construction practices that are right-weight for your project
Debug problems quickly and effectively
Resolve critical construction issues early and correctly
Build quality into the beginning, middle, and end of your project
Code Complete is for people working in industry, writing software for companies. It has little checklists at key points in the book; if you are in industry, you can make sure that your code is readable and debugged by going through these checklists and making sure you’re touching upon all aspects. [source]
If my career path is hackers turned business people, I’d say: Start with the basics and fundamentals: SICP: Structure and Interpretation of Computer Programs Code Complete 2 [source]
40Compilers: Principles, Techniques, and Tools
41Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching
42Concrete Mathematics: A Foundation for Computer Science
43Algorithms Illuminated (Part 2): Graph Algorithms and Data Structures
44Elements of Programming Interviews in Java: The Insiders' Guide
The content is identical.
This is the Java version of our book. See our website for links to the C++ version. Have you ever...
Wanted to work at an exciting futuristic company?
Struggled with an interview problem that could have been solved in 15 minutes?
Wished you could study real-world computing problems?
If so, you need to read Elements of Programming Interviews (EPI).
EPI is your comprehensive guide to interviewing for software development roles.
The core of EPI is a collection of over 250 problems with detailed solutions. The problems are representative of interview questions asked at leading software companies. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants.
The book begins with a summary of the nontechnical aspects of interviewing, such as strategies for a great interview, common mistakes, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. We also provide a summary of data structures, algorithms, and problem solving patterns.
Coding problems are presented through a series of chapters on basic and advanced data structures, searching, sorting, algorithm design principles, and concurrency. Each chapter stars with a brief introduction, a case study, top tips, and a review of the most important library methods. This is followed by a broad and thought-provoking set of problems.
A practical, fun approach to computer science fundamentals, as seen through the lens of common programming interview questions.
Jeff Atwood/Co-founder, Stack Overflow and Discourse
45Elements of Programming Interviews in Python: The Insiders' Guide
Wanted to work at an exciting futuristic company?
Struggled with an interview problem thatcould have been solved in 15 minutes?
Wished you could study real-world computing problems?
If so, you need to read Elements of Programming Interviews (EPI).
EPI is your comprehensive guide to interviewing for software development roles.
The core of EPI is a collection of over 250 problems with detailed solutions. The problems are representative of interview questions asked at leading software companies. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants.
The book begins with a summary of the nontechnical aspects of interviewing, such as strategies for a great interview, common mistakes, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. We also provide a summary of data structures, algorithms, and problem solving patterns.
Coding problems are presented through a series of chapters on basic and advanced data structures, searching, sorting, algorithm design principles, and concurrency. Each chapter stars with a brief introduction, a case study, top tips, and a review of the most important library methods. This is followed by a broad and thought-provoking set of problems.
A practical, fun approach to computer science fundamentals, as seen through the lens of common programming interview questions.
Jeff Atwood/Co-founder, Stack Overflow and Discourse
46Purely Functional Data Structures
47Elements of Programming Interviews: The Insiders' Guide C++
Have you ever...
Wanted to work at an exciting futuristic company? Struggled with an interview problem that could have been solved in 15 minutes? Wished you could study real-world computing problems?
If so, you need to read Elements of Programming Interviews (EPI).
The core of EPI is a collection of 300 problems with detailed solutions, including over 100 figures and 250 tested programs. The problems are challenging, well-motivated, and accessible. They are representative of the questions asked at interviews at the most exciting companies.
The book begins with a summary of patterns for data structure, algorithms, and problem solving that will help you solve the most challenging interview problems. This is followed by chapters on basic and advanced data structures, algorithm design, concurrency, system design, probability and discrete mathematics. Each chapter starts with a brief review of key concepts and results followed by a deep and wide set of questions.
EPI concludes with a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, perspectives from across the table, negotiating the best offer, and much more.
"This book is the best compilation of programming related problems I have seen. It is a great resource for a diverse set of topics when preparing for technical interviews, as a quick refresher in a subject area or when you are just looking for a brain teaser to challenge yourself."
Shashank Gupta / Scaligent, formerly Engineering Manager, Amazon.com, Senior Engineering Manager, Yahoo!, Manager of Software Development, Cisco Systems
48Deep Learning
Deep learning is a form of machine learning that enables computers to learn from experience and understand the world in terms of a hierarchy of concepts. Because the computer gathers knowledge from experience, there is no need for a human computer operator to formally specify all the knowledge that the computer needs. The hierarchy of concepts allows the computer to learn complicated concepts by building them out of simpler ones; a graph of these hierarchies would be many layers deep. This book introduces a broad range of topics in deep learning.
The text offers mathematical and conceptual background, covering relevant concepts in linear algebra, probability theory and information theory, numerical computation, and machine learning. It describes deep learning techniques used by practitioners in industry, including deep feedforward networks, regularization, optimization algorithms, convolutional networks, sequence modeling, and practical methodology; and it surveys such applications as natural language processing, speech recognition, computer vision, online recommendation systems, bioinformatics, and videogames. Finally, the book offers research perspectives, covering such theoretical topics as linear factor models, autoencoders, representation learning, structured probabilistic models, Monte Carlo methods, the partition function, approximate inference, and deep generative models.
Deep Learning can be used by undergraduate or graduate students planning careers in either industry or research, and by software engineers who want to begin using deep learning in their products or platforms. A website offers supplementary material for both readers and instructors.
Founder/SpaceX
Written by three experts in the field, Deep Learning is the only comprehensive book on the subject. [source]
Author
Very clear exposition, does the math without getting lost in the details. Although many of the concepts of the introductory first 100 pages can be found elsewhere, they are presented with remarkable cut-to-the-chase clarity. [source]
CEO/Microsoft
Elon Musk and Facebook AI chief Yann LeCun have praised this textbook on one of software’s most promising frontiers. After its publication, Microsoft signed up coauthor Bengio, a pioneer in machine learning, as an adviser [source]
49Pattern Recognition and Machine Learning
50How to Solve It: A New Aspect of Mathematical Method
51The Man Who Solved the Market: How Jim Simons Launched the Quant Revolution
Shortlisted for the Financial Times/McKinsey Business Book of the Year Award
Jim Simons is the greatest money maker in modern financial history. No other investor--Warren Buffett, Peter Lynch, Ray Dalio, Steve Cohen, or George Soros--can touch his record. Since 1988, Renaissance's signature Medallion fund has generated average annual returns of 66 percent. The firm has earned profits of more than $100 billion; Simons is worth twenty-three billion dollars.
Drawing on unprecedented access to Simons and dozens of current and former employees, Zuckerman, a veteran Wall Street Journal investigative reporter, tells the gripping story of how a world-class mathematician and former code breaker mastered the market. Simons pioneered a data-driven, algorithmic approach that's sweeping the world.
As Renaissance became a market force, its executives began influencing the world beyond finance. Simons became a major figure in scientific research, education, and liberal politics. Senior executive Robert Mercer is more responsible than anyone else for the Trump presidency, placing Steve Bannon in the campaign and funding Trump's victorious 2016 effort. Mercer also impacted the campaign behind Brexit.
The Man Who Solved the Market is a portrait of a modern-day Midas who remade markets in his own image, but failed to anticipate how his success would impact his firm and his country. It's also a story of what Simons's revolution means for the rest of us.
@Singh7575 ~The man who solved the market Nice book and interesting insights from Jim's life. Read it last month. Happy reading👍 [source]
I finished reading a book! Pretty interesting biography and background on some of the emotions involved in quantatative trading. Worth reading. https://t.co/doi843dcGN [source]
Great read: Fascinating book that tells the tale of a enigmatic hedge fund, it’s secretive founder, and the team of brilliant data scientists who managed to “solve the market.” Nice work @GZuckerman ! https://t.co/QVgG546flw [source]
52Pearls of Functional Algorithm Design
53Data Structures and Algorithms in Java
Data Structures and Algorithms in Java, Second Edition is designed to be easy to read and understand although the topic itself is complicated. Algorithms are the procedures that software programs use to manipulate data structures. Besides clear and simple example programs, the author includes a workshop as a small demonstration program executable on a Web browser. The programs demonstrate in graphical form what data structures look like and how they operate. In the second edition, the program is rewritten to improve operation and clarify the algorithms, the example programs are revised to work with the latest version of the Java JDK, and questions and exercises will be added at the end of each chapter making the book even more useful.
Educational Supplement
Suggested solutions to the programming projects found at the end of each chapter are made available to instructors at recognized educational institutions. This educational supplement can be found at www.prenhall.com, in the Instructor Resource Center.
54Hackers & Painters: Big Ideas from the Computer Age
We are living in the computer age, in a world increasingly designed and engineered by computer programmers and software designers, by people who call themselves hackers. Who are these people, what motivates them, and why should you care?
Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.
Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls “an intellectual Wild West.”
The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.
Co-creator/Blogger
I want everybody I know to read "How to Make Wealth" and "Mind the Gap" (chapters 6 and 7), which brilliantly articulate the most commonly, and frustratingly, misunderstood core economic principles of everyday life. [source]
A wonderful book and required reading. Paul helps others understand why I chose the name 'Software Arts' for the company Dan Bricklin and I started. Those who don't understand the language of software cannot consider themselves literate. [source]
A delightful ping-pong around the brain of a really smart guy. The chapter that answers the key question of our age-- why are nerds unpopular?-- is worth the price of admission alone. [source]
55The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World
In the world's top research labs and universities, the race is on to invent the ultimate learning algorithm: one capable of discovering any knowledge from data, and doing anything we want, before we even ask. In The Master Algorithm, Pedro Domingos lifts the veil to give us a peek inside the learning machines that power Google, Amazon, and your smartphone. He assembles a blueprint for the future universal learner--the Master Algorithm--and discusses what it will mean for business, science, and society. If data-ism is today's philosophy, this book is its bible.
Co-Founder/Sun Microsystem
If you want speculation about what the master AI might need (one view). For a slightly more technical read, I’d suggest Ian Goodfellows Deep Learning. [source]
56Approximation Algorithms
57The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions
To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called "fascicles," which will be published at regular intervals. Each fascicle will encompass a section or more of wholly new or revised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete.
Volume 4, Fascicle 0
This fascicle introduces what will become by far the longest chapter in "The Art of Computer Programming," a chapter on combinatorial algorithms that will itself fill three full-sized volumes. Combinatorial algorithms, informally, are techniques for the high-speed manipulation of extremely large quantities of objects, such as permutations or the elements of graphs. Combinatorial patterns or arrangements solve vast numbers of practical problems, and modern approaches to dealing with them often lead to methods that are more than a thousand times faster than the straightforward procedures of yesteryear. This fascicle primes the pump for everything that follows in the chapter, discussing first the essential ideas of combinatorics and then introducing fundamental ideas for dealing efficiently with 0s and 1s inside a machine, including Boolean basics and Boolean function evaluation. As always, the author s exposition is enhanced by hundreds of new exercises, arranged carefully for self-instruction, together with detailed answers.
"
58Introduction to the Design and Analysis of Algorithms
59Competitive Programming 3
60Computer Science Distilled: Learn the Art of Solving Computational Problems
61Artificial Intelligence: A Modern Approach
62Technically Wrong: Sexist Apps, Biased Algorithms, and Other Threats of Toxic Tech
In Technically Wrong, Sara Wachter-Boettcher demystifies the tech industry, leaving those of us on the other side of the screen better prepared to make informed choices about the services we use—and to demand more from the companies behind them.
A Wired Top Tech Book of the Year
A Fast Company Best Business and Leadership Book of the Year
63Algorithms for Optimization
This book offers a comprehensive introduction to optimization with a focus on practical algorithms. The book approaches optimization from an engineering perspective, where the objective is to design a system that optimizes a set of metrics subject to constraints. Readers will learn about computational approaches for a range of challenges, including searching high-dimensional spaces, handling problems where there are multiple competing objectives, and accommodating uncertainty in the metrics. Figures, examples, and exercises convey the intuition behind the mathematical approaches. The text provides concrete implementations in the Julia programming language.
Topics covered include derivatives and their generalization to multiple dimensions; local descent and first- and second-order methods that inform local descent; stochastic methods, which introduce randomness into the optimization process; linear constrained optimization, when both the objective function and the constraints are linear; surrogate models, probabilistic surrogate models, and using probabilistic surrogate models to guide optimization; optimization under uncertainty; uncertainty propagation; expression optimization; and multidisciplinary design optimization. Appendixes offer an introduction to the Julia language, test functions for evaluating algorithm performance, and mathematical concepts used in the derivation and analysis of the optimization methods discussed in the text. The book can be used by advanced undergraduates and graduate students in mathematics, statistics, computer science, any engineering field, (including electrical engineering and aerospace engineering), and operations research, and as a reference for professionals.
64The Art of Computer Programming, Volume 4, Fascicles 0-4
65An Introduction to the Analysis of Algorithms
66Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching
Greater emphasis on abstract data types (ADTs), modular programming, object-oriented programming, and C++ classes than in previous editions
Over 100 algorithms for sorting, selection, priority queue ADT implementations, and symbol table ADT (searching) implementations
New implementations of binomial queues, multiway radix sorting, randomized BSTs, splay trees, skip lists, multiway tries, B trees, extendible hashing, and much more
Increased quantitative information about the algorithms, giving you a basis for comparing them
Over 1000 new exercises to help you learn the properties of algorithms Whether you are learning the algorithms for the first time or wish to have up-to-date reference material that incorporates new programming styles with classic and new algorithms, you will find a wealth of useful information in this book.
67Programming Interviews Exposed: Secrets to Landing Your Next Job (Programmer to Programmer)
What you will learn from this book
Tips for effectively completing the job application Ways to prepare for the entire programming interview process How to find the kind of programming job that fits you best Strategies for choosing a solution and what your approach says about you How to improve your interviewing skills so that you can respond to any question or situation Techniques for solving knowledge-based problems, logic puzzles, and programming problems Who this book is for
This book is for programmers and developers applying for jobs in the software industry or in IT departments of major corporations.
Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.
68Learning From Data: A Short Course
69Introduction to the Theory of Computation
This highly anticipated revision builds upon the strengths of the previous edition. Sipser's candid, crystal-clear style allows students at every level to understand and enjoy this field. His innovative "proof idea" sections explain profound concepts in plain English. The new edition incorporates many improvements students and professors have suggested over the years, and offers updated, classroom-tested problem sets at the end of each chapter.
70Advanced Data Structures
71Ideals, Varieties, and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra
The book may serve as a first or second course in undergraduate abstract algebra and with some supplementation perhaps, for beginning graduate level courses in algebraic geometry or computational algebra. Prerequisites for the reader include linear algebra and a proof-oriented course.It is assumed that the reader has access to a computer algebra system. Appendix C describes features of Maple, Mathematica(r) and Sage, as well as other systems that are most relevant to the text. Pseudocode is used in the text; Appendix B carefully describes the pseudocode used.
From the reviews of previous editions:
The book gives an introduction to Buchberger s algorithm with applications to syzygies, Hilbert polynomials, primary decompositions. There is an introduction to classical algebraic geometry with applications to the ideal membership problem, solving polynomial equations and elimination theory. The book is well-written. The reviewer is sure that it will be an excellent guide to introduce further undergraduates in the algorithmic aspect of commutative algebra and algebraic geometry.
Peter Schenzel, zbMATH, 2007
I consider the book to be wonderful. ... The exposition is very clear, there are many helpful pictures and there are a great many instructive exercises, some quite challenging ... offers the heart and soul of modern commutative and algebraic geometry.
The American Mathematical Monthly
"
72Data Structures and Algorithms in Python
Begins by discussing Python's conceptually simple syntax, which allows for a greater focus on concepts. Employs a consistent object-oriented viewpoint throughout the text. Presents each data structure using ADTs and their respective implementations and introduces important design patterns as a means to organize those implementations into classes, methods, and objects. Provides a thorough discussion on the analysis and design of fundamental data structures. Includes many helpful Python code examples, with source code provided on the website. Uses illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Provides hundreds of exercises that promote creativity, help readers learn how to think like programmers, and reinforce important concepts. Contains many Python-code and pseudo-code fragments, and hundreds of exercises, which are divided into roughly 40% reinforcement exercises, 40% creativity exercises, and 20% programming projects.
73Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming
74Machine Learning: A Probabilistic Perspective
Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then use the uncovered patterns to predict future data. This textbook offers a comprehensive and self-contained introduction to the field of machine learning, based on a unified, probabilistic approach.
The coverage combines breadth and depth, offering necessary background material on such topics as probability, optimization, and linear algebra as well as discussion of recent developments in the field, including conditional random fields, L1 regularization, and deep learning. The book is written in an informal, accessible style, complete with pseudo-code for the most important algorithms. All topics are copiously illustrated with color images and worked examples drawn from such application domains as biology, text processing, computer vision, and robotics. Rather than providing a cookbook of different heuristic methods, the book stresses a principled model-based approach, often using the language of graphical models to specify models in a concise and intuitive way. Almost all the models described have been implemented in a MATLAB software package—PMTK (probabilistic modeling toolkit)—that is freely available online. The book is suitable for upper-level undergraduates with an introductory-level college math background and beginning graduate students.
#MachineLearning — a Probabilistic Perspective: https://t.co/wAZwLoUFGF ———— #BigData #Statistics #DataScience #DeepLearning #AI #Algorithms #StatisticalLiteracy #Mathematics #abdsc ——— ⬇Get this brilliant 1100-page 28-chapter highly-rated book: https://t.co/Tm2zchpHSu https://t.co/jprUDdzkj8 [source]
75Applied Cryptography: Protocols, Algorithms, and Source Code in C
"…monumental… fascinating… comprehensive… the definitive work on cryptography for computer programmers…" –Dr. Dobb's Journal
"…easily ranks as one of the most authoritative in its field." —PC Magazine
"…the bible of code hackers." –The Millennium Whole Earth Catalog
This new edition of the cryptography classic provides you with a comprehensive survey of modern cryptography. The book details how programmers and electronic communications professionals can use cryptography—the technique of enciphering and deciphering messages-to maintain the privacy of computer data. It describes dozens of cryptography algorithms, gives practical advice on how to implement them into cryptographic software, and shows how they can be used to solve security problems. Covering the latest developments in practical cryptographic techniques, this new edition shows programmers who design computer applications, networks, and storage systems how they can build security into their software and systems.
What's new in the Second Edition?
• New information on the Clipper Chip, including ways to defeat the key escrow mechanism
• New encryption algorithms, including algorithms from the former Soviet Union and South Africa, and the RC4 stream cipher
• The latest protocols for digital signatures, authentication, secure elections, digital cash, and more
• More detailed information on key management and cryptographic implementations
One of the five books recommends to young people interested in his career path. [source]
76Mazes for Programmers: Code Your Own Twisty Little Passages
From video games to movies, mazes are ubiquitous. Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller's, each copiously illustrated and accompanied by working implementations in Ruby. You'll learn their pros and cons, and how to choose the right one for the job.
You'll start by learning six maze algorithms and transition from making mazes on paper to writing programs that generate and draw them. You'll be introduced to Dijkstra's algorithm and see how it can help solve, analyze, and visualize mazes. Part 2 shows you how to constrain your mazes to different shapes and outlines, such as text, circles, hex and triangle grids, and more. You'll learn techniques for culling dead-ends, and for making your passages weave over and under each other. Part 3 looks at six more algorithms, taking it all to the next level. You'll learn how to build your mazes in multiple dimensions, and even on curved surfaces.
Through it all, you'll discover yourself brimming with ideas, the best medicine for programmer's block, burn-out, and the grayest of days. By the time you're done, you'll be energized and full of maze-related possibilities!
What You Need:
The example code requires version 2 of the Ruby programming language. Some examples depend on the ChunkyPNG library to generate PNG images, and one chapter uses POV-Ray version 3.7 to render 3D graphics.
77From Mathematics to Generic Programming
How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency
Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete
A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it
Powerful mathematical approaches to abstraction
How abstract algebra provides the idea at the heart of generic programming
Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures
Surprising subtleties of simple programming tasks and what you can learn from them
How practical implementations can exploit theoretical knowledge
78A Discipline of Programming
79Genetic Algorithms in Search, Optimization, and Machine Learning
80Graph Algorithms: Practical Examples in Apache Spark & Neo4j
This practical book walks you through hands-on examples of how to use graph algorithms in Apache Spark and Neo4j--two of the most common choices for graph analytics. Also included: sample code and tips for over 20 practical graph algorithms that cover optimal pathfinding, importance through centrality, and community detection.
Learn how graph analytics vary from conventional statistical analysis
Understand how classic graph algorithms work, and how they are applied
Get guidance on which algorithms to use for different types of questions
Explore algorithm examples with working code and sample datasets from Spark and Neo4j
See how connected feature extraction can increase machine learning accuracy and precision
Walk through creating an ML workflow for link prediction combining Neo4j and Spark
Great book: "Graph Algorithms: Practical Examples in #ApacheSpark and @Neo4j" by @amyhodler & @markhneedham, with the Foreward by me😎 ———— Get FREE PDF copy: https://t.co/61yQgYUrud ———— #GraphAnalytics #BigData #GraphDB #LinkedData #SmartData #DataScience #AI #MachineLearning https://t.co/BQaK75O7mP [source]
81Windows Internals, Part 1: User Mode
In Book 1, you'll plumb Windows fundamentals, independent of platform - server, desktop, tablet, phone, Xbox. Coverage focuses on high-level functional descriptions of the various Windows components and features that interact with, or are manipulated by, user mode programs, or applications. You'll also examine management mechanisms and operating system components that are implemented in user mode, such as service processes.
As always, you get critical insider perspectives on how Windows operates. And through hands-on experiments, you'll experience its internal behavior firsthand - knowledge you can apply to improve application design, debugging, system performance, and support.
Planned chapters: Concepts & Tools; System Architecture; Windows Application Support; Windows Store Apps; Graphics & the Desktop; Management Mechanisms; User Mode Memory Management; Security; Storage; Networking; Hyper-V.
@maddiestone Awesome book, I've read a couple editions and always learn new things. Have fun ;-) I would also recommend reading the older editions they have tricks and info that seem to disappear in newer ones. [source]
82Essential Algorithms: A Practical Approach to Computer Algorithms
Computer algorithms are the basic recipes for programming. Professional programmers need to know how to use algorithms to solve difficult programming problems. Written in simple, intuitive English, this book describes how and when to use the most practical classic algorithms, and even how to create new algorithms to meet future needs. The book also includes a collection of questions that can help readers prepare for a programming job interview.
Reveals methods for manipulating common data structures such as arrays, linked lists, trees, and networks Addresses advanced data structures such as heaps, 2-3 trees, B-trees Addresses general problem-solving techniques such as branch and bound, divide and conquer, recursion, backtracking, heuristics, and more Reviews sorting and searching, network algorithms, and numerical algorithms Includes general problem-solving techniques such as brute force and exhaustive search, divide and conquer, backtracking, recursion, branch and bound, and more In addition, Essential Algorithms features a companion website that includes full instructor materials to support training or higher ed adoptions.
83Mastering Algorithms with C
Implementations, as well as interesting, real-world examples of each data structure and algorithm, are included.
Using both a programming style and a writing style that are exceptionally clean, Kyle Loudon shows you how to use such essential data structures as lists, stacks, queues, sets, trees, heaps, priority queues, and graphs. He explains how to use algorithms for sorting, searching, numerical analysis, data compression, data encryption, common graph problems, and computational geometry. And he describes the relative efficiency of all implementations. The compression and encryption chapters not only give you working code for reasonably efficient solutions, they offer explanations of concepts in an approachable manner for people who never have had the time or expertise to study them in depth.
Anyone with a basic understanding of the C language can use this book. In order to provide maintainable and extendible code, an extra level of abstraction (such as pointers to functions) is used in examples where appropriate. Understanding that these techniques may be unfamiliar to some programmers, Loudon explains them clearly in the introductory chapters.
Contents include:
Pointers
Recursion
Analysis of algorithms
Data structures (lists, stacks, queues, sets, hash tables, trees, heaps, priority queues, graphs)
Sorting and searching
Numerical methods
Data compression
Data encryption
Graph algorithms
Geometric algorithms
84Rise of the Robots: Technology and the Threat of a Jobless Future
In Rise of the Robots, Ford details what machine intelligence and robotics can accomplish, and implores employers, scholars, and policy makers alike to face the implications. The past solutions to technological disruption, especially more training and education, aren't going to work, and we must decide, now, whether the future will see broad-based prosperity or catastrophic levels of inequality and economic insecurity. Rise of the Robots is essential reading for anyone who wants to understand what accelerating technology means for their own economic prospects—not to mention those of their children—as well as for society as a whole.
On the other side of things, which is a bit more like inspirational and a bit more tactical, it would probably be Rise of the Robots. Focuses all on the rise of artificial intelligence. Has some really interesting pieces on how people are disrupting in a bunch of different verticals for like ED Tech, health, 3D printing, and a bunch of other areas, and the impact that that has on jobs in the future. I love those two books at the moment. [source]
85Introduction to Machine Learning with Python: A Guide for Data Scientists
You'll learn the steps necessary to create a successful machine-learning application with Python and the scikit-learn library. Authors Andreas Muller and Sarah Guido focus on the practical aspects of using machine learning algorithms, rather than the math behind them. Familiarity with the NumPy and matplotlib libraries will help you get even more from this book.
With this book, you'll learn:
Fundamental concepts and applications of machine learning
Advantages and shortcomings of widely used machine learning algorithms
How to represent data processed by machine learning, including which data aspects to focus on
Advanced methods for model evaluation and parameter tuning
The concept of pipelines for chaining models and encapsulating your workflow
Methods for working with text data, including text-specific processing techniques
Suggestions for improving your machine learning and data science skills
Top programming languages ranked by its annual search engine popularity. Python has gained momentum because of its importance to machine learning development. At @WSJ we are using it to build tools for journalists. Tip: this is a great book for anyone who wants to get started! https://t.co/ZsHjqB5gvC [source]
86Programming Challenges: The Programming Contest Training Manual
87Machine Learning
Yes, Machine Learning is a textbook and I would call it the textbook for machine learning and artificial intelligence. Machine learning is just the math of teaching a machine how to solve a problem on its own, because you’re not going to be able to be there to solve it for the machine. It can be any kind of problem: it could be a robot that needs to figure out how to get from point A to point B or it could be a supply inventory algorithm for trying to figure out how many products it should order for Walmart. [source]
88Data Structures and Algorithmic Thinking with Python: Data Structure and Algorithmic Puzzles
Sample Chapter: goo.gl/8AEcYk
Source Code: goo.gl/L8Xxdt
It is the Python version of "Data Structures and Algorithms Made Easy".
The sample chapter should give you a very good idea of the quality and style of our book. In particular, be sure you are comfortable with the level and with our Python coding style.
This book focuses on giving solutions for complex problems in data structures and algorithm. It even provides multiple solutions for a single problem, thus familiarizing readers with different possible approaches to the same problem. "Data Structure and Algorithmic Thinking with Python" is designed to give a jumpstart to programmers, job hunters and those who are appearing for exams. All the code in this book are written in Python. It contains many programming puzzles that not only encourage analytical thinking, but also prepares readers for interviews. This book, with its focused and practical approach, can help readers quickly pick up the concepts and techniques for developing efficient and effective solutions to problems.
89Algorithms for Interviews
90Algorithmic Puzzles
The book's unique collection of puzzles is supplemented with carefully developed tutorials on algorithm design strategies and analysis techniques intended to walk the reader step-by-step through the various approaches to algorithmic problem solving. Mastery of these strategies--exhaustive search, backtracking, and divide-and-conquer, among others--will aid the reader in solving not only the puzzles contained in this book, but also others encountered in interviews, puzzle collections, and throughout everyday life. Each of the 150 puzzles contains hints and solutions, along with commentary on the puzzle's origins and solution methods.
The only book of its kind, Algorithmic Puzzles houses puzzles for all skill levels. Readers with only middle school mathematics will develop their algorithmic problem-solving skills through puzzles at the elementary level, while seasoned puzzle solvers will enjoy the challenge of thinking through more difficult puzzles.
91The Most Human Human: What Talking with Computers Teaches Us About What It Means to Be Alive
Named for computer pioneer Alan Turing, the Turing Test convenes a panel of judges who pose questions—ranging anywhere from celebrity gossip to moral conundrums—to hidden contestants in an attempt to discern which is human and which is a computer. The machine that most often fools the panel wins the Most Human Computer Award. But there is also a prize, bizarre and intriguing, for the Most Human Human.
In 2008, the top AI program came short of passing the Turing Test by just one astonishing vote. In 2009, Brian Christian was chosen to participate, and he set out to make sure Homo sapiens would prevail.
The author’s quest to be deemed more human than a computer opens a window onto our own nature. Interweaving modern phenomena like customer service “chatbots” and men using programmed dialogue to pick up women in bars with insights from fields as diverse as chess, psychiatry, and the law, Brian Christian examines the philosophical, biological, and moral issues raised by the Turing Test.
One central definition of human has been “a being that could reason.” If computers can reason, what does that mean for the special place we reserve for humanity?
92How to Think About Algorithms
93Building Machine Learning Powered Applications: Going from Idea to Product
Author Emmanuel Ameisen, who worked as a data scientist at Zipcar and led Insight Data Science's AI program, demonstrates key ML concepts with code snippets, illustrations, and screenshots from the book's example application.
The first part of this guide shows you how to plan and measure success for an ML application. Part II shows you how to build a working ML model, and Part III explains how to improve the model until it fulfills your original vision. Part IV covers deployment and monitoring strategies.
This book will help you:
Determine your product goal and set up a machine learning problem
Build your first end-to-end pipeline quickly and acquire an initial dataset
Train and evaluate your ML model and address performance bottlenecks
Deploy and monitor models in a production environment
94Computers and Intractability: A Guide to the Theory of NP-Completeness
95Modern B-Tree Techniques
96Think Like a Programmer: An Introduction to Creative Problem Solving
Examples in this book are written in C++, but will improve your ability to think like a programmer in any language.
The real challenge of programming isn't learning a language's syntax—it's learning to creatively solve problems so you can build something great. In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to:
Split problems into discrete components to make them easier to solve Make the most of code reuse with functions, classes, and libraries Pick the perfect data structure for a particular job Master more advanced programming tools like recursion and dynamic memory Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to Think Like a Programmer.
97Guide to Competitive Programming: Learning and Improving Algorithms Through Contests
Topics and features: reviews the features of the C++ programming language, and describes how to create efficient algorithms that can quickly process large data sets; discusses sorting algorithms and binary search, and examines a selection of data structures of the C++ standard library; introduces the algorithm design technique of dynamic programming, and investigates elementary graph algorithms; covers such advanced algorithm design topics as bit-parallelism and amortized analysis, and presents a focus on efficiently processing array range queries; surveys specialized algorithms for trees, and discusses the mathematical topics that are relevant in competitive programming; examines advanced graph techniques, geometric algorithms, and string techniques; describes a selection of more advanced topics, including square root algorithms and dynamic programming optimization.
This easy-to-follow guide is an ideal reference for all students wishing to learn algorithms, and practice for programming contests. Knowledge of the basics of programming is assumed, but previous background in algorithm design or programming contests is not necessary. Due to the broad range of topics covered at various levels of difficulty, this book is suitable for both beginners and more experienced readers.
98Understanding Machine Learning: From Theory to Algorithms
99Understanding Computation: From Simple Machines to Impossible Programs
Rather than use mathematical notation or an unfamiliar academic programming language like Haskell or Lisp, this book uses Ruby in a reductionist manner to present formal semantics, automata theory, and functional programming with the lambda calculus. It’s ideal for programmers versed in modern languages, with little or no formal training in computer science.
* Understand fundamental computing concepts, such as Turing completeness in languages
* Discover how programs use dynamic semantics to communicate ideas to machines
* Explore what a computer can do when reduced to its bare essentials
* Learn how universal Turing machines led to today’s general-purpose computers
* Perform complex calculations, using simple languages and cellular automata
* Determine which programming language features are essential for computation
* Examine how halting and self-referencing make some computing problems unsolvable
* Analyze programs by using abstract interpretation and type systems
100Algorithms in C, Part 5: Graph Algorithms
Diagraphs and DAGs
Minimum spanning trees
Shortest paths
Network flows
Diagrams, sample C code, and detailed algorithm descriptions The Web site for this book (http: //www.cs.princeton.edu/ rs/) provides additional source code for programmers along with numerous support materials for educators. A landmark revision, Algorithms in C, Third Edition, Part 5 provides a complete tool set for programmers to implement, debug, and use graph algorithms across a wide range of computer applications.