This document provides an overview of computational thinking. It defines computational thinking as a process for solving problems by breaking them down into smaller pieces before programming. The four pillars of computational thinking are then explained as decomposition, pattern recognition, pattern abstraction, and algorithm design. Examples are given for each pillar and the importance of teaching computational thinking in schools is discussed.