Also, computer science is by its very nature is not static. Having a great set of reference books to work from has been essential this past year.
These three were my main resources:
- Computer Science: An Overview by J. Glenn Brookshear
- This book did a good job of covering the basics, plus it covered some other areas like artificial intelligence and computer graphics.
- Computer Science Illuminated by Nell Dale and John Lewis
- This one takes a layered approach starting with the information layer of how data is stored and processed and then moved up through applications. Each chapter had a good set of thought questions, beyond just simple vocabulary and multiple choice, that related to the topics covered.
- Explorations In Computer Science by Mark Meyer
- This books takes a laboratory approach with a series of hands on applets. Great for brainstorming how to approach a topic.
- Introduction to Computational Science by Angela B. Shiflet and George W. Shiflet-
- This book was new to me this year. One of the hardest areas to teach with the CS Principles course was Large Datasets. While the book is over the head of your average high school student, it is a fabulous resource for teachers. It is all about how computers are used in modeling and simulation and has an entire module on errors in modeling. Each topic covered has several case studies that range from Drug Dosage to Skydiving to Mushroom Fairy Rings. Great examples to pull from.
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
- This covers the first steps of representing data as a code - like Morse code all the way through graphics. It is clear and easy to follow with fun examples. It is a it a level high school students could follow most of it, although some passages get a little more mathy than most students are comfortable with. This is one of the books I came back to again and again.
- The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography by Simon Singh
- This is one of my all time favorites. His website also has lots of great interactive tools for teaching on this topic. I have used the digital version in class for several years. I also have developed a set of hands-on cryptography activities whenever the network is down at school-like Caesar sticks and Morse code. Understanding some of the history of how humans used encryption to send messages makes the abstraction of computer science easier to understand