What Is Dynamic Programming?

Why Should I Care?

Dynamic programming is the process of breaking down a larger problem into smaller problems. By using the answers to those smaller problems, we can find the overall solution more efficiently.

We'll also learn about the term "memoization," and how it relates to dynamic programming.

How Does TCP Work?

What Is TCP?

TCP (Transmission Control Protocol) is a protocol for machines to communicate over a network, and is the foundation on which the internet is built.

One of the most useful characteristics of TCP is that it is 'resilient', which means it can cope with an unreliable network without losing any data.

What Is Jaro-Winkler Similarity?

Why Should I Care?

String similarity metrics have various uses; from user-facing search functionality, to spell checkers.

There are a few common string similarity metrics. Knowing a little about each will help you to choose the right one, should you ever need to implement something like this yourself.

What Is Breadth-First Search?

Why Should I Care?

A lot of algorithms are implemented for you as part of your chosen language. That means that they are interesting to learn about, but you'll rarely write them yourself.

Graph traversal algorithms are different. We use graphs all the time, from linking related products in an e-commerce application to mapping relationships between people in a social network.

What Is Bubble Sort?

Why Should I Care?

Bubble sort is an excellent introduction to sorting algorithms.

It is also useful as a reference when we cover more complex search algorithms later.

What Is a Hash Table?

Why Should I Care?

Have you ever wanted to know:

  • How does the hash map, associative array, or dictionary data structure in your language work?
  • When is it appropriate to use a hash table to store items?
  • How do we deal with 'collisions' in a hash table?

In 5 Minutes or Less:

Imagine we want to store a list of users so that we can find them later using their names.

What Is Huffman Coding?

Huffman Coding: Why Do I Care?

Have you ever wanted to know:

  • How do we compress something, without losing any data?
  • Why do some things compress better than others?
  • How does GZIP work?

In 5 Minutes or Less

Suppose we want to compress a string (Huffman coding can be used with any data, but strings make good examples).