"

Introduction

Preface

I started my post secondary education at Utah State University in 1996 as a Computer Science major.  Before that, while still in High School, I was actively programming in Basic, Pascal, and writing BASH shell scripts for fun on a machine that I had built.  After a full year of classes in Computer Science classes,  and a full year of Business Information Systems, I was ready to do something different and changed my major to Geology.  The hope was to be spending less time behind a screen and more time outside.  The further I studied the Earth, the more I realized the utility of computer analyses to better understand its many systems.  Geographic Information Systems (GIS) became a mainstay of my studies and I continued to leverage my skills to develop models and create new methods of analyses.  As I turned my professional focus to education, I wanted to transfer this knowledge to my ambitious students.

My first attempt at teaching basic programming was a disaster.  I knew my students were sharp with their computer skills, so I gave it a go.  By the end of the follow-along demonstration, out of a class of eighteen, sixteen students were emphatic that we do no more coding and that the experience was confusing and unenjoyable.  They had gained no new knowledge and were left with a bad taste in their mouth.  In retrospect, my approach severely lacked foresight into my audience.  It wasn’t that they weren’t capable, but I had failed to properly introduce the subject in a relatable and understandable method.  What I had given them was the equivalent of pushing someone in the deep-end of a pool who didn’t know how to swim.  Actually, more like someone who had never seen water!  The experience led me to rethink my approach.  Classroom testing using the method outlined in this book has yielded a significantly higher percentage of acceptance and understanding.  The big thing to watch out for is resignation.  If something doesn’t work once, some individuals are prepared to give up.  Don’t allow it.  Rework the example and try again. Code that runs and does what it’s supposed to do is a beautiful thing that brings a great amount of confidence and satisfaction.  However, fixing problems (debugging) is just part of the game.  Frustration is normal.  As you embrace determinism to make something work, you’ll find speed and abilities both increase.

There’s loads of help online.  If you’re struggling with examples in the book, feel free to reach out to me at jcooper@csi.edu.

License

Icon for the Creative Commons Attribution-NonCommercial 4.0 International License

Zen and the Art of Scripting in Google Earth Engine Copyright © by College of Southern Idaho is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License, except where otherwise noted.