Do you remember learning to tie your shoes? It is a simple task that we do twice every time we put on shoes with laces. You probably do not think about tying shoes while doing it. In this post, I will use the simple task of learning to tie shoes to demonstrate two complicated-sounding concepts: algorithmic design and data structures.