A Modern Introduction to Programming
The book exists in two forms. It was originally written and published in digital form, which includes interactive examples and a mechanism for playing with all the example code. This version is released under an open license.
I have published a revised version of the book on paper. The structure of this version remained largely the same, but the whole text has been thoroughly edited and updated. You can order from Amazon here. There is still an interactive coding environment for this version, as a separate page. Errata are here.
The digital version is available in the following formats:
The following translations are available: