This is a book about discovery-the discoveries each of us can make when finding beauty in geometric patterns, beauty in mathematics, and beauty in computer programming. This is also a guide for teaching children to program computers in uniquely powerful ways.
It is easy to see how one might find beauty in geometric patterns; this beauty forms the foundation of nature and art. We are continually entranced by geometric form-the symmetry of a butterfly's wings, the spiral of a snail's shell, the facets of a crystal-and each of these natural occurrences is perceived as having beauty associated with it. The hands of people have produced geometric art since marks were first made on cave walls or stones were first fashioned into tools. From the Pyramids and the Parthenon to the finest gold-link chain, the beauty of geometric form is clearly present for all who care to find it.
Underlying the geometric pattern that we experience with our eyes lies a more subtle pattern of mathematical beauty, which is experienced intellectually-a collection of unifying principles that govern the arrangement and shapes of objects, both natural and crafted. Computer programming offers a bridge between the worlds of nature, design, and intellect.
The computer today can be a tool for discovery and creative expression. It can be as malleable as a piece of clay and as powerful as the very ideas it helps to express. You do not have to be good at math or accept the passive ways computers are often used in classrooms. Thornburg's approach is eye-opening.
The programming language used in this book is Snap! Snap! is a free block-based programming language designed at UC Berkeley that can be used on any device with a web browser. It looks a lot like Scratch, but adds a great deal of functionality and was designed to teach computer science concepts like those found in the NSF-funded Beauty and Joy of Computing Course. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.
Like Scratch, Snap! is in the Logo family of programming languages. The Logo programming language was designed for learning and its various dialects have been used by millions of learners for more than half a century. With Logo, students experience powerful ideas, solve problems, and create while engaging in conversation with the computer. Although coding is often thought of in vocational terms, Logo programming lies squarely in the grand traditions of the liberal arts and progressive education.
The book includes step by step examples and code exploring tiles, tessellations, prime numbers, geometric shapes from circles to squirals, the mysteries of The Golden Mean, fractals, and recursion.