Computational algorithmic thinking (CAT) is the ability to design, implement, and assess the implementation of algorithms to solve a range of problems. It involves identifying and understanding a problem, articulating an algorithm or set of algorithms in the form of a solution to the problem, implementing that solution in such a way that it solves the problem, and evaluating the solution based on some set of criteria. CAT has roots in Mathematics, through problem solving and algorithmic thinking. CAT lies at the heart of Computer Science, which is defined as the study of algorithms.