Python Crash Course: A Hands-On, Project-Based Introduction to Programming