Friday, August 1, 2014

How to Think Like a Computer Scientist.

The book How to Think Like a Computer Scientist was originally written by Allen B. Downey for a JAVA course he was teaching. He states in the following article, "I had taught it three times and I was getting frustrated. The failure rate in the class was too high and, even for students who succeeded, the overall level of achievement was too low."

So he wrote a book with the following goals:

  • Keep it short. It is better for students to read 10 pages than not read 50 pages.
  • Be careful with vocabulary. I tried to minimize the jargon and define each term at first use.
  • Build gradually. To avoid trap doors, I took the most difficult topics and split them into a series of small steps.
  • Focus on programming, not the programming language. I included the minimum useful subset of Java and left out the rest.

  • He released the book under GNU Free Documentation License and Jeff Elkner, a high school teacher in Virginia translated to book into Python and sent a copy to Allen Downey. 

    Allen Downey published the Python version as Green Tea Press. It has evolved into a book called Think Python.

    Here is the article.

    Now, the book I'm using is still called How to Think Like a Computer Scientist. Their introduction says it best:


    About this Project

    This interactive book is a product of the Runestone Interactive Project at Luther College, led by Brad Miller and David Ranum. There have been many contributors to the project. Our thanks especially to the following:
    • This book is based on the Original work by: Jeffrey Elkner, Allen B. Downey, and Chris Meyers
    • Activecode based on Skulpt
    • Codelens based on Online Python Tutor
    • Many contributions from the CSLearning4U research group at Georgia Tech.
    • ACM-SIGCSE for the special projects grant that funded our student Isaac Dontje Lindell for the summer of 2013.
    The Runestone Interactive tools are open source and we encourage you to contact us, or grab a copy from GitHub if you would like to use them to write your own resources.

    The great part about this book is the interactive code. When you open the book you see a graphic program called Turtles. It is a spinning design in different colors. Right below this is a box where you can run the program and watch it spin again or show/hide the code. It gets you playing with code right away by having you show the code and change the number of turtles in the graphic from 10 to 6.


    I love how they emphasize playing and having fun. It is the best way to learn. I tried registering, but don't have a class name to put in. I also tried the log in with Facebook option and got an error message. It is open source, and freely available, but projects like this do cost money. If you are able to donate to them, they can receive donations through Paypal. 

    What I have found is even though I am not registered, the book keeps the work I've done within it. I'll have to experiment with turning my computer off and clearing cookies and history to see what might make it lose my work.

    They tell you from the beginning that the goal of the book is to teach you to think like a computer scientist. This involves being able to think critically about problems and formulate solutions to them. That's why I'm so excited about learning to program! These are skills that can extend to other aspects of life. 

    Programming is cool! (Remind me of that when I'm tearing my hair out over the Base 8 number system! Ok?

    If you are learning along with me, today I am reading the following pages in this book.

    The intro to the book with a link of next steps.

    The first of the next steps, which is an overview of the features of the book. You can play with the video, active code boxes, the Codelens tool and the review questions. I didn't fully understand the last couple of exercises. I just played with them until I got the right answer. I also cheated on the Octal question. :) I pulled up an Octal Conversion tool. 

    Remember, right now you are just learning about the book. Right answers are relative and not the goal!

    Have fun!

    No comments:

    Post a Comment