Chapter 5, Convolutional Neural Networks, covered the theory behind CNNs, and convolution of course has been part of that presentation. Let's do a recap of this concept from a mathematical and practical perspective before moving on to object recognition. In mathematics, convolution is an operation on two functions that produces a third function, which is the result of the integral of the product between the first two, one of which is flipped:

Convolution is heavily used in 2D image processing and signal filtering.
To better understand what happens behind the scenes, here's a simple Python code example of 1D convolution with NumPy (http://www.numpy.org/):
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, -2, 2])
result = np.convolve(x, y)
print result
This produces the following result:

Let's see how the convolution between the x and y arrays...