Facebook Pixel
Searching...
English
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Nine Algorithms That Changed the Future

Nine Algorithms That Changed the Future

The Ingenious Ideas That Drive Today's Computers
by John MacCormick 2012 232 pages
3.88
1k+ ratings
Listen

Key Takeaways

1. Search engines use indexing and ranking algorithms to find relevant information

PageRank is indeed an algorithmic gem that allows a needle to rise effortlessly to the top of its haystack.

Indexing for efficient search. Search engines create an index of web pages, similar to a book index, allowing rapid lookup of pages containing query terms. They use tricks like storing word locations within pages to enable phrase searches. This indexing allows search engines to quickly find matching pages among billions of documents.

Ranking for relevance. Simply finding matching pages is not enough - search engines must determine which results are most relevant. Google's PageRank algorithm revolutionized search by ranking pages based on how many other important pages link to them. This allows the most authoritative and relevant results to rise to the top.

  • Key search engine components:
    • Web crawler to index pages
    • Inverted index for fast lookup
    • Ranking algorithm like PageRank
    • Query processing to return results

2. Public key cryptography enables secure communication over insecure channels

You can expect to look through all of the training samples many times, you will see that everything is perfectly consistent, so you might be tempted to conclude that "yes" is the right answer.

Encryption with public and private keys. Public key cryptography uses mathematically linked public and private keys. The public key can be freely shared to encrypt messages, while only the private key can decrypt them. This allows secure communication without having to exchange secret keys in advance.

Key exchange over insecure channels. The Diffie-Hellman key exchange protocol enables two parties to establish a shared secret key over an insecure channel. This is done through clever use of modular arithmetic operations that are easy to compute in one direction but extremely difficult to reverse.

  • Applications of public key cryptography:
    • Secure web browsing (HTTPS)
    • Encrypted email
    • Digital signatures
    • Secure messaging apps

3. Error-correcting codes ensure reliable data transmission and storage

Without these codes, our computers and communication systems would be drastically slower, less powerful, and less reliable than they are today.

Detecting and correcting errors. Error-correcting codes add redundant information to data, allowing detection and correction of errors that occur during transmission or storage. This ensures data integrity even when using unreliable communication channels or storage media.

Widespread use in digital systems. Error-correcting codes are ubiquitous in modern digital systems. They are used in computer memory, hard drives, CDs/DVDs, satellite communications, and mobile networks. These codes enable reliable operation despite the presence of noise and physical defects.

  • Common error-correcting codes:
    • Hamming codes
    • Reed-Solomon codes
    • Low-density parity-check codes
    • Turbo codes

4. Pattern recognition allows computers to learn from data and make predictions

The beauty of using keys like this is that databases can look up keys with superb efficiency.

Learning from examples. Pattern recognition algorithms learn to classify or predict outcomes by analyzing labeled training data. This allows computers to make intelligent decisions on new, unseen data based on patterns observed in the training set.

Diverse applications. Pattern recognition enables a wide range of applications including image classification, speech recognition, handwriting recognition, and medical diagnosis. It forms the foundation for many artificial intelligence and machine learning systems.

  • Key pattern recognition techniques:
    • Nearest neighbor classifiers
    • Decision trees
    • Neural networks
    • Support vector machines

5. Data compression reduces file sizes without losing essential information

Lossless compression is the ultimate free lunch that really does give you something for nothing.

Lossless vs. lossy compression. Lossless compression allows perfect reconstruction of the original data, while lossy compression achieves higher compression ratios by discarding some information. Lossless compression is used for text and programs, while lossy compression is common for images, audio, and video.

Compression algorithms. Common lossless compression techniques include run-length encoding, dictionary-based methods like LZ77, and statistical methods like Huffman coding. Lossy compression often exploits limitations of human perception, discarding information that is not easily noticed.

  • Applications of data compression:
    • Reducing file sizes for storage/transmission
    • Enabling efficient streaming of media
    • Improving performance of databases and file systems
    • Reducing bandwidth requirements for networks

6. Database systems maintain consistency and reliability for large-scale data storage

Databases address two major issues in transaction processing: efficiency and reliability.

ACID properties. Database systems ensure Atomicity, Consistency, Isolation, and Durability (ACID) for transactions. This guarantees that database operations are reliable and maintain data integrity even in the presence of concurrent access and system failures.

Relational model and SQL. Most modern databases use the relational model, organizing data into tables with relationships between them. SQL (Structured Query Language) provides a standardized way to interact with relational databases, allowing complex queries and data manipulations.

  • Key database concepts:
    • Transactions and locking
    • Indexing for fast retrieval
    • Query optimization
    • Replication and disaster recovery

7. Digital signatures provide authentication and integrity for electronic documents

Digital signatures are not just ingenious ideas. They have evolved into commercial technologies and internet standards with great importance for businesses and individuals alike.

Asymmetric cryptography for signatures. Digital signatures use public key cryptography to create unforgeable electronic signatures. The signer uses their private key to create the signature, which can be verified by anyone using the signer's public key.

Applications and legal status. Digital signatures are widely used to sign software, secure email, and authenticate documents. In many countries, they have the same legal status as handwritten signatures, enabling secure electronic transactions and contracts.

  • Properties of digital signatures:
    • Authentication of signer's identity
    • Non-repudiation (signer cannot deny signing)
    • Integrity (detects any changes to signed document)
    • Timestamping (can prove when document was signed)

8. Some computational problems are provably unsolvable by any algorithm

There are problems that can never be solved by computers. This profound fact—that some things are "computable" and others are not—provides an interesting counterpoint to the many algorithmic triumphs we've seen in the preceding chapters.

Halting problem and undecidability. Alan Turing proved that the halting problem - determining whether an arbitrary program will terminate or run forever - is undecidable. This means no algorithm can solve it for all possible inputs.

Implications for software verification. The undecidability of the halting problem implies fundamental limitations on automated software verification. It is impossible to create a general-purpose program that can detect all possible bugs or prove correctness for arbitrary programs.

  • Other undecidable problems:
    • Determining if two programs compute the same function
    • Solving Diophantine equations (Hilbert's 10th problem)
    • The Post correspondence problem
    • Determining if a context-free grammar is ambiguous

Last updated:

Review Summary

3.88 out of 5
Average of 1k+ ratings from Goodreads and Amazon.

Nine Algorithms That Changed the Future is a well-received book that explains complex computer algorithms in an accessible manner. Readers appreciate MacCormick's clear writing and use of analogies to simplify technical concepts. The book is praised for its ability to demystify important computing ideas for non-experts. While some find it overly simplified, most agree it's an excellent introduction to computer science fundamentals. Positive reviews highlight the book's engaging content and its success in making algorithms understandable to a general audience. Some readers wished for more depth, but overall, the book is recommended for those curious about the inner workings of modern technology.

Your rating:

About the Author

John MacCormick is a computer science educator and researcher with a diverse background. Born in New Zealand, he pursued mathematics and computer science studies in England, earning a PhD in computer vision from the University of Oxford. MacCormick's career spans both academia and industry, having worked in research labs at Hewlett-Packard and Microsoft. Currently, he serves as a professor of computer science at Dickinson College in Pennsylvania, USA. His expertise covers various computer science subfields, including computer vision, large-scale distributed systems, and computer science education. MacCormick is also committed to enhancing public understanding of computer science, as evidenced by his accessible writing style in "Nine Algorithms That Changed the Future."

Download PDF

To save this Nine Algorithms That Changed the Future summary for later, download the free PDF. You can print it out, or read offline at your convenience.
Download PDF
File size: 0.21 MB     Pages: 10

Download EPUB

To read this Nine Algorithms That Changed the Future summary on your e-reader device or app, download the free EPUB. The .epub digital book format is ideal for reading ebooks on phones, tablets, and e-readers.
Download EPUB
File size: 2.95 MB     Pages: 8
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Nov 30,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance