Suggested (free) online books
The following books can be freely downloaded or read online. While they do not cover exactly the entire course, they have been selected because they assume a reader without (much) previous programming and algorithmic experience.
Part A — Programming
Allen Downey. Think python — How to think like a Computer Scientist. Green Tea Press
Part B — Algorithms and data structures
Brad Miller and David Ranum. Problem Solving with Algorithms and Data Structures using Python.
The interactive editions combine textual explanations with actual Python snippets that can be executed and tested directly in the browser.
These books assume that the reader is more experienced; furthermore, they are available only in printed version (legally):
- Lutz. Learning Python (5th edition). O’REILLY (2013)
- Hetland. Python Algorithms: Mastering Basic Algorithms in the Python Language. Apress, 2nd ed. (2014)