Programming languages have goals of describing algorithmic steps for computers to execute processes. They define syntax and semantics to translate computational ideas into mechanical steps. There are options for programming languages including low-level languages that use instructions similar to a computer's control unit, and high-level languages that use more abstract terms. Compiled languages convert high-level abstractions into low-level instructions before executing, while interpreted languages sequentially convert each high-level step into a low-level instruction for immediate execution. We will use Python, an interpreted, high-level programming language.