Assuming no prior knowledge of computer programming, this textbook begins with the fundamentals and reinforces skill development with exercises and projects. Difficult topics are explained with real-world examples, and students are supported in-text with explainer boxes. Example code and data are provided online.