About this Book

This book covers the fundamentals of computer programming as used for data science. It will introduce programming concepts such as syntax, data referencing, control structures, functions, data structures, abstraction, and debugging, as well as development tools and technologies (such as the command line and version control). The goal is to develop skills in algorithmic thinking, abstraction, and debugging. It assumes no previous programming background. These materials were developed for the INFX 511: Introduction to Programming for Data Science and Visualization course taught at the University of Washington Information School; however they have 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.