Programming (or coding) is a manifestation of computational thinking, a problem-solving process that involves several intellectual skills such as logical analysis of data, visual representation of problems, and building solutions based on series of instructions or algorithms. Understanding how a computer works is essential for developing computer applications, but this ability can also be used to support problem solving in other disciplines, such as mathematics, and engineering.