Monday, December 31, 2018

Creative Coding in Python by Sheena Vaidyanathan


Rating: WORTHY!

This is from an advance review copy for which I thank the publisher.

Erratum:
On page 57, the second text box has 'reminder' instead of 'remainder'.

Sheena Vaidyanathan, a computer science teacher in California, is a respected name in programming education, and this was a fun and easy-to-follow book that introduces anyone to the Python programming language. Python - named after Monty Python - was created by Dutch programmer Guido van Rossum in 1991 and version 3.0 was released in December 2008. It was designed to be sensible, simple in concept although powerful in execution, and very easy to read and understand.

Although I'm not a professional programmer by any means, I have a long programming experience in a variety of languages, so please keep that in mind when I talk about how simple and straight-forward this is! Your mileage may differ, especially if you have no experience, but that won't make any difference to your ability to learn this language if you're willing to apply yourself. As the author explains, the language and the development environment are free, so there is no outlay. It won't cost you a thing to play with it for a couple of weeks and see if you take to it - except for the time you spend on it of course. It's inspired me to try it out even though my main focus and the bulk of my free time these days is devoted to writing fiction.

This book explains simple concepts to begin with, to get you up and running, and expands on these until you're producing much more complex programs without feeling like it's been a pile of hard work to get there. It includes over thirty Projects in art, games, math, and other endeavors, but it doesn't simply tell you to do this and get that result, it opens up creative options whereby you can change the code to achieve new objectives. You can build a chatbot! The book references the first convincing chatbot, ELIZA, named after Eliza Doolittle of Pygmalion (and the better-known My Fair Lady) and created by at MIT by Joseph Weizenbaum, and which I remember tinkering with when I first started learning basic.

One of the benefits of Python is that it can import modules that expand the range of things it can do, so by importing what's known as the Turtle module, you can get it to create some amazing geometric designs and change those designs just be tweaking the code that you write. That's one of the nicest things about this book. In process of teaching, the book enables you to both learn the concepts and take advantage of them, and in tinkering with them, learn them more thoroughly. In the section on using Boolean logic (named after George Boole, a self-taught English mathematician who nevertheless became a professor of mathematics, and who wrote a book The Laws of Thought, which prepared the ground, a century later, for the information age. Here you can use his discoveries to create an adventure game! The book also covers arcade style games.

This is a fun, useful and educational book which will, in easy ways, introduce children and other novices to computer programming. I think it was wonderful; it teaches an important skill and sets up the mind for critical thinking, I commend it highly.