Computer Science - Books to Read and be Inspired or Stimulated By - Part 1
This list arose as a result of researching books for use in teaching and in developing teaching materials for use in schools, colleges and universities. I've tried to organise this list in sections, though some books could probably be put into multiple sections.
Sources of Ideas, including Stories and Fun to Read books
Books concerned with practical approaches to teaching and understanding computing at school and beyond- Once upon an algorithm How Stories Explain Computing by Martin Ewing. Computing is about problem solving and stories offer many good examples of problem solving that can be used when teaching computing to make it easier to visualise computing techniques and algorithms and to show the relevance of computing to daily life. Hansel and Gretel, for example, carry out an algorithm to get home from the forest. The movie Groundhog Day can be used to illustrate the problem of unsolvability. Sherlock Holmes manipulates information (data structures) when solving a crime. The magical world in the Harry Potter stories can be used to help think about types and abstraction. The Indiana Jones adventures demonstrate the complexity of searching for something. Not only a book for teachers but also a good read for all.
- Lauren Ipsum: A Story About Computer Science and Other Improbable Things A story by Carlos Bueno, who, because of this book, deserves to be thought of as a Lewis Carrol for the Twenty First Century. It tells of the adventures of Lauren, lost in Userland and who must find her way home by solving a series of puzzles. Lots of play on words as her adventures include visits to places like the Push & Pop Café and the making of friends with people like Hugh Rustic and the Wandering Salesman. It can be used for reading with yourself or with someone littler than you. There are notes at the back of the book that explain more about logic and computer science in the real world. It truly is "A looking glass tale for the computer age" , and part of a much larger movement that seeks to bring programming skills to everyone." Hopefully reading this book might inspire more girls to consider developing careers in Computing and IT.
- Computational Fairy Tales A fairy tale written by Jeremy Kubica that, by the by, introduces principles of computational thinking, introduces concepts and ideas from computer science. The story introduces the motivation behind various computer science approaches, and also illustrates their application in a non-computer—fairy tale—domain. Our heroine's adventures include learning the basics of programming in a blacksmith’s forge and fighting curses with recursion. The plot outline : "Fifteen seers delivered the same prophecy, without so much as a single minstrel to lighten the mood: an unknown darkness threatens the kingdom. Suddenly, Princess Ann finds herself sent forth alone to save the kingdom. Leaving behind her home, family, and pet turtle Fido, Princess Ann must face goblin attacks, magical curses, arrogant scholars, an unpleasant oracle, and rude Boolean waiters. Along the way she must build a war chest of computational knowledge to survive the coming challenge". It may very well be a "marmite kind of a book". You'll either love it or you won't.
- Best Practices of Spell Design Another tale, by the pen of Jeremy Kubica, of programming and software best practices from the Computational Fairy Tales universe. This tale concerns a wizard called Marcus and a spell that "goes horribly wrong". The plot is as follows : In all his years as a wizard, Marcus has never seen a spell cause this much damage. When Hannaldous's sloppy attempt at a shield spell accidentally curses the castle, the walls start crumbling at an alarming rate. Now Marcus and his apprentice Shelly must figure out how to repair the damage before the castle turns to dust. Along the way they will encounter gossiping worms, perfectionist bakers, opportunistic rabbits, and copious amounts of mold. This story introduces various practical aspects of software development that are often learned through painful experience. Through Marcus and Shelly’s quest, the story attempts to encourage its readers to think about how to go about writing readable, well-tested and maintainable programs. Along the way it tries to show the importance of comments in recipes, the value of testing potions, the dangers of poorly named ingredients, the wonders of code reviews in magic libraries, and the perils of premature optimization. Another excellent "marmite kind of a book".
- The Pattern On The Stone The Simple Ideas that Make Computers Work by W. Daniel Hillis. This is a book for people who are baffled by how computers work and assume that they will never understand them. As this, not very long and weighty, book so clevely illustrates is that the seemingly complex operations of computers can be broken down into a few simple parts that carry out the same simple procedures over and over again. In this book you will find an easy-to-follow explanation of how data is processed, and, hopefully, this will make the operations of a computer seem as straightforward as those of a bicycle. Mercifully, the book avoids technobabble or digressions into discussions of advanced aspects of computer hardware. It is full of lucid explanations and colorful anecdotes and goes straight to the heart of what computers really do. The book proceeds from an outline of basic logic to clear descriptions of programming languages, algorithms, and memory. It then introduces some of the really exciting developments in modern computing such as quantum computing, parallel computing, neural networks, and self-organizing systems. The author of this book was part of the team that built the Tinker Toy Computer the goal of which was to build a contraption out of tinkertoy parts the could win at Tic Tac Toe (Noughts and crosses to you and me).
- The Tinkertoy Computer and Other Machinations by A.K.Dewdney. This is a book by an eminent contributor to the pages of Scientific American. This book of puzzles and challenges includes such intriguing topics and questions such as - Can a contraption made of tinkertovs win at tic-tac-toe? Can a computer be programmed to converse? Compose music? Recreate thunderclouds? Can mathematics really explain anything" Everything'. Starting with the basics that Matter Computes, Matter Misbehaves, Mathematics Matters, and Computers Create the books lays the groundwork for exploring topics such as chaos and fractals, artificial intelligence, computer-generated works of art, and much more besides. The recreational value of this book lies in the various recipes and algorithms it provides from which working programs can be constructed. Readers will have the opportunity to get their computers playing golf, simulating weather and doing other amazing "high tech" things.