Books
The main bibliography for the course will be the following free interactive books:
Problem Solving with Algorithms and Data Structures using Python: Interactive 3rd Edition, by Brad Miller and David Ranum, 2014
How to Think Like a Computer Scientist: Interactive Edition, by Jeffrey Elkner, Allen B. Downey, and Chris Meyers, 2016
Both are available from: https://runestone.academy/runestone/books. See Section Course Logistics for accessing the interactive course.
Additional online resources for learning Python
(Note: Make sure you are aware of the Python version that is being used in these resources.)
The Python Tutorial (tutorial)
Replit for Python (Python online editor, IDE, compiler, interpreter, and REPL)
Python Tutor (execution visualization)
A Guide of Best Practices for Python (programming style, by Rui Maranhão)
The Python Language Reference (language definition)