This course is a project-based introduction to programming in the Python programming language focused on real-world practicality. Students will learn how to program in the latest version of Python (3.9). Students will learn fundamental programming concepts such as branching, iteration, abstraction, functions, mutability, hashing, ordering, recursion, and object oriented programming. Additionally, students will learn how to use tools and services to enable themselves to develop and collaborate with others. These include learning to use version control with git and github, interactive debuggers, virtual environments and pip, type checkers, profilers, testing frameworks, and popular Python packages. The course may include some theoretical components, such as boolean logic and some basic algorithms, but only to the extent required for practical usage in code or as requested by the students.