Blog Post

Let’s Talk About Books

We’re several months into 2019, and this year I set a goal to read more computer science books and learn a new programming language. Did you make any resolutions for the new year?

 

Books
Image source: https://www.freepik.com/free-photo/two-open-books-front-two-stacks-books_1320115.htm

 

When I first decided I wanted to advance my computer science skills and shift from block-based coding to a language, I was overwhelmed. It seemed that Python would be a good choice to learn, and there were many free online courses to choose from. Javin Paul crafted a great resource outlining the best online options for learning Python in 2019:
https://hackernoon.com/top-5-courses-to-learn-python-in-2018-best-of-lot-26644a99e7ec

As a child of the 1980s and a true Generation Xer, I like to learn from a combination of online courses, podcasts, and books, so I headed to my local bookstore to see if I could find some books on programming. Here are my top picks of books that have helped me learn to program in the past five years, and the books that helped me build and organize my curriculum in a way that would be interesting and accessible for a diverse group of learners:

 

Python
Image Source: https://commons.wikimedia.org/wiki/File:Lozingle_10032014.jpg
 
 
  • HelloWorld! Computer Programming for Kids and Other Beginners, by Warren Sande and Carter Sande (Python)
    While this wasn’t the first book on Python that I read, this was the book that helped me build a solid foundation with my first real programming language. There are 449 pages of content, and many pages are filled with visuals and interactive exercises. I was able to work through each chapter quickly and gained a solid understanding of core concepts in Python. I think this book would be a great resource if you work with students in middle or high school.
     
  • Computer Coding for Kids, by Carol Vorderman (Scratch, Python)
    This book offers fun ideas for projects and games that students can build, including a bubble blaster and drawing machine. There are colorful, kid-friendly visual resources on ASCII, computer parts, debugging, and the Internet, just to name a few. This book could be used with students of all ages, but will work especially well with elementary and middle school students.
     
  • Python Programming: An Introduction to Computer Science, by John Zelle (Python)
    This was the book that helped me move from a beginner to a more intermediate programmer several years ago. Zelle’s book was recommended to me by an incredible veteran computer science teacher at an AP workshop, and would make for a great high school course textbook or resource.
     
  • Invent Your Own Computer Games with Python, by Al Sweigart (Python)
    One of my students found this book online, and after some digging we found that six of Al Sweigart’s books are available online for free at this site:
    https://inventwithpython.com/. This resource was a game-changer for my students. The books provide a plethora of examples and provide reinforcement for those students who could use a supplementary resource, as well as for those who wish to work on a more personalized path independently. In addition, there are many creative ideas for programming projects.

     
Swift
Image Source: https://commons.wikimedia.org/wiki/File:Swift_logo_with_text.svg
 
 
  • Coding iPhone Apps for Kids: A Playful Introduction to Swift, by Gloria Winquist and Matt McCarthy (Swift)
    App development is all the rage, and this book helped me gain a foundational understanding of Swift for programming iOS apps so I could better support students interested in the topic.

     
JavaScript
Image Source: https://commons.wikimedia.org/wiki/File:Javascript_badge.svg

 
  • JavaScript for Kids: A Playful Introduction to Programming, by Nick Morgan (JavaScript)
    When I noticed my students were focusing exclusively on syntax, I looked for a resource that had examples of variables, loops, and functions in different languages. This book was a valuable tool for helping me understand basic concepts in JavaScript so I could help students compare and contrast languages. The book progresses from how to write JavaScript in Google Chrome to using JQuery, event handlers, and canvas animations. It would be useful for students interested in website development. The book includes resources for building a word guessing game and your own version of the classic Snake.

Here are two more books I’ve read recently that are worth considering if you teach computer science:

  • Girl Code: Gaming, Going Viral, and Getting It Done, by Andrea Gonzales and Sophie Houser
    The inspiring journey of two teenager coders who built a viral game. Andy and Sophie share their story and valuable advice from female leaders in the tech industry.
     
  • Lauren Ipsum: A Story About Computer Science and Other Improbable Things, by Carlos Bueno
    A story reminiscent of Alice in Wonderland or the Phantom Tollbooth, this is a surprisingly informative book with a female protagonist about computer science concepts with loads of logic puzzles along the way. This book seems most appropriate for students in grade 5 or older.

 

What books have been valuable for you? What books would you recommend for other computer science educators or students?

 

Jenn Vermillion is the Director of Innovative Learning at St. Catherine’s School, an independent school for girls age 3 through grade 12 in Richmond, VA. She teaches an introduction to computer science course for students in grades 9-12 and an 8th grade Creative Technologies course. She also coaches a 4th grade Robotics team and coordinates school-wide professional development. Jenn welcomes your comments and questions at jvermillion@st.catherines.org.

Comments

Permalink

Submitted by Sheri Schoonmaker on Fri, 05/17/2019 - 08:41

Zelle's book is a classic and the most used Python book in colleges.  His book, pdf's, and sample code are all available online in many places.

I read Python for BioInformatics by Sebastian Bassi, Introduction to Digital Humanities by Johanna Drucker, and Program or Be Programmed by Douglas Rushkoff, which is more about the impacts of technology and social media than learning something new about computer science.  

Papers / small books that I read were Making Sense of Sensors by Omesh Tikoo, Capture the Flag Unplugged by Vitaly Ford, Ambareen Siraj, Ada Haynes, and Eric Brown, and CyberSecurity for Future Presidents by Apama Das, David Voorhies, Cynthia Choi, and Carl Landwehr.

As far as online classes, the SQL Bolt website got extremely high marks from my students learning SQL for the first time.  They were inspired after a talk by William Assaf, a nationally recognized expert in SQL, so I set aside a week for them to do the lessons.  As a former DBA using SQL on many platforms, I was extremely pleased when I found this site because it made solving the data puzzles fun.