\documentclass[10pt,border=1pt,crop,multi=false,tikz,class=scrartcl]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{mathtools}
\usetikzlibrary{arrows,shapes,calc,positioning}
\begin{document}
\begin{tikzpicture}[>=stealth,semithick,auto,remember picture]
\node at (0,0) (b1) {Completing the Square};
\node [rectangle,draw=green!60!black] at (0,-.5) (b2) {$x^2+bx=a$};
\node [below=1em of b2] (b3) {
\begin{tikzpicture}
\draw [fill=gray!70] (0,-.5) -- ++(0,1) node [pos=.5,left] {$x$}
-- ++(1,0) -- ++(0,-1) -- ++(-1,0) node [pos=.5,below] {$x$};
\node at (1.25,.25) {$+$};
\draw [fill=gray!70] (1.5,-.5) -- ++(0,1) -- ++(.5,0) -- ++(0,-1) node [pos=.5,right] {$x$}
-- ++(-.5,0) node [pos=.5,below] (b31) {$b$};
\draw [dashed] (1.75,-.5) -- ++(0,1);
\node at (2.6,0.15) {$=$};
\node [fill=gray!70,ellipse,minimum width=2em] at (3.25,0.25) {$a$};
\end{tikzpicture}
};
\node [below=.5em of b3] (b4) {
\begin{tikzpicture}
\draw [fill=gray!70] (0,-.5) -- ++(0,1) node [pos=.5,left] {$x$}
-- ++(1,0) -- ++(0,-1) -- ++(-1,0) node [pos=.5,below] {$x$};
\node at (1.25,.25) {$+$};
\draw [fill=gray!70] (1.5,-.5) -- ++(0,1) node [pos=1] (b41) {}
-- ++(.25,0) -- ++(0,-1) node [pos=.5,right] {$x$}
-- ++(-.25,0) node [pos=.5,below] (b43) {$\frac{b}{2}$};
\node at (2.25,.25) {$+$};
\draw [fill=gray!70] (2.5,-.5) -- ++(0,1) node [pos=1] (b42) {}
-- ++(.25,0) -- ++(0,-1) node [pos=.5,right] {$x$}
-- ++(-.25,0) node [pos=.5,below] (b44) {$\frac{b}{2}$};
\draw [dashed] (1.75,-.5) -- ++(0,1);
\node at (3.3,0.15) {$=$};
\node [fill=gray!70,ellipse,minimum width=2em] at (3.9,0.25) {$a$};
\end{tikzpicture}
};
\node [below=.5em of b4] (b5) {
\begin{tikzpicture}
\draw [fill=gray!70] (0,-.5) -- ++(0,1) node [pos=.5,left] {$x$}
-- ++(1,0) -- ++(0,-1) -- ++(-1,0) node [pos=.5,below] {$x$};
\draw [fill=gray!70] (0,.65) -- ++(0,.25) node [pos=.5,left] {$\frac{b}{2}$}
-- ++(1,0) node [pos=.5,above] (b51) {} -- ++(0,-.25) -- ++(-1,0);
\draw [fill=gray!70] (1.15,-.5) -- ++(0,1) -- ++(.25,0)
-- ++(0,-1) node [pos=.5,above] (b52) {} -- ++(-.25,0) node [pos=.5,below] {$\frac{b}{2}$};
\node at (1.75,.15) {$=$};
\node [fill=gray!70,ellipse,minimum width=2em] at (2.4,0.25) {$a$};
\end{tikzpicture}
};
\node [below=.1em of b5] (b6) {
\begin{tikzpicture}
\draw [fill=gray!70] (0,-.5) -- ++(0,1) node [pos=.5,left] {$x$}
-- ++(1,0) -- ++(0,-1) -- ++(-1,0) node [pos=.5,below] {$x$};
\draw [fill=gray!70] (0,.65) -- ++(0,.25) node [pos=.5,left] {$\frac{b}{2}$}
-- ++(1,0) node [pos=.5,above] (b61) {} -- ++(0,-.25) -- ++(-1,0);
\draw [fill=gray!70] (1.15,-.5) -- ++(0,1) -- ++(.25,0)
-- ++(0,-1) node [pos=.5,above] (b62) {} -- ++(-.25,0) node [pos=.5,below] {$\frac{b}{2}$};
\draw [fill=blue!70] (1.15,.65) -- ++(0,.25) -- ++(.25,0) -- ++(0,-.25) -- ++(-.25,0);
\node at (1.75,.15) {$=$};
\node [fill=gray!70,ellipse,minimum width=2em] at (2.4,0.25) {$a$};
\node at (3,.25) {$+$};
\draw [fill=blue!70] (3.25,-.125) -- ++(0,.25) -- ++(.25,0) node [pos=.5,above] {$\frac{b}{2}$}
-- ++(0,-.25) node [pos=.5,right] {$\frac{b}{2}$} -- ++(-.25,0);
\end{tikzpicture}
};
\node [below=.1em of b6] (b7) {
\begin{tikzpicture}
\draw [fill=gray!70] (0,-.5) -- ++(0,1.25) node [pos=.5,left] {$x+\frac{b}{2}$}
-- ++(1.25,0) -- ++(0,-1.25) -- ++(-1.25,0) node [pos=.5,below] {$x+\frac{b}{2}$};
\draw [dash pattern=on 2pt off 1pt] (0,.5) -- ++(1.25,0)
(1,-.5) -- ++(0,1.25);
\node at (1.75,.15) {$=$};
\node [fill=gray!70,ellipse,minimum width=2em] at (2.4,0.25) {$a$};
\node at (3,.25) {$+$};
\draw [fill=gray!70] (3.25,-.125) -- ++(0,.25) -- ++(.25,0) node [pos=.5,above] {$\frac{b}{2}$}
-- ++(0,-.25) node [pos=.5,right] {$\frac{b}{2}$} -- ++(-.25,0);
\end{tikzpicture}
};
\node [below=.1em of b7] (b8) {$\left(x+\frac{b}{2}\right)^2=a+\left(\frac{b}{2}\right)^2$};
\node [below=.1em of b8,draw=red] (b9) {$x=-\frac{b}{2}+\sqrt{a+\frac{b^2}{4}}$};
\draw [dashed,gray!70] (-2.2,-2.9) -- ++(4.5,0)
(-2.2,-5) -- ++(4.5,0)
(-2.2,-7.75) -- ++(4.5,0)
(-2.2,-10.4) -- ++(4.5,0);
\draw [->,shorten >= 2pt, shorten <= 2pt] (b31.north west) parabola (b41.north east);
\draw [->,shorten >= 2pt, shorten <= 2pt] (b31.north east) parabola (b42.north east);
\draw [->,shorten >= 1pt, shorten <= 2pt] (b43.north) .. controls +(south west:5mm) and +(north:2mm) .. (b51.south);
\draw [->,shorten >= -2pt, shorten <= 1pt] (b44.north) .. controls +(south west:7mm) and +(north east:5mm) .. (b52.north east);
\end{tikzpicture}
\end{document}