This textbook introduces beginning to intermediate science and engineering students to programming with Python. It encourages a stronger understanding of programming concepts through numerous science and engineering examples and Jupyter notebook problems, connecting programming tools and structures with real-world research and analysis.