About this Book

This book provides an introduction to the skill of computer programming (“programming 101”) in the Python language, with an emphasis on skills useful for information and data sciences. It will introduce programming concepts such as syntax (how to “speak” Python), data organization (how computers represent information), control flow (how to have the computer do lots of things in a row), and debugging (how to fix broken programs). The goal is to develop skills in formal language semantics, algorithmic thinking, abstraction, and debugging—being able to “think like the computer” to understand how it works. In short: the goal is to get you familiar with programming concepts and abstract thinking skills used in automatically managing and analyzing information. It assumes no previous programming background.

These materials were developed for the IMT/LIS 511: Introduction to Programming for Data Science and Visualization courses taught at the University of Washington Information School; (The “INFX” in the URL title was the original prefix for these courses). However, this book has been structured to be an online resource for anyone who wishes to learn programming. Some chapters of this book have been developed in conjunction with Technical Foundations of Informatics, by Freeman and Ross.

This book is a living document. Visit us on GitHub to contribute improvements.

Creative Commons License This book is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.