Should programming be part of a university GIS curriculum?

In my last post, on GIS training vs. education at university, I referred to a paper by Fagin and Wikle (2011) who had conducted a survey of GIS instructors in the U.S. regarding perceptions of the importance of various GIS subject areas.  One finding that I thought deserved its own post was that “Most respondants (65.9%) indicated that programming was either not covered/unimportant or only tangentially important” (p. 7, italics by original authors, boldface added).  I found this fascinating, as it appears to be so at odds with the general impression I have, via Twitter and elsewhere, that anything to do with GIS and programming is the hottest thing out there and where all the jobs are.  Perhaps this perception is biased, as I find that more developers seem to be on Twitter, and highly active on it as well, compared with other GIS practitioners.  I still wonder though, why do so many instructors dismiss programming as not an important topic when teaching GIS?

This is just a guess, but one reason may be that many of the instructors surveyed have little or no programming background themselves, and so don’t teach it (myself included).  I took programming in high school and first-year university many years ago, and have taken ArcObjects and VBA courses since then.  Although my programming skills are now virtually non-existent, I have benefitted greatly from having a basic understanding of it (e.g., loops, subroutines, if-then statements).  Having said that, I don’t teach programming in any of my courses, and have long wrestled with this.  My experience has been that programming is not something most introductory or “general” GIS students want (and may actually scare them off), but that it is likely more appealing to the advanced students who may be considering a GIS-related career.  Just to be clear: I’m not one of those instructors who thinks programming is not important, but I am one who would have say it is “not covered”.  One of the things on my study leave to-do list is to consider adding something like an introduction to Python section to my advanced GIS course.

Another possible reason for this lack of programming in university GIS curricula may also be that instructors see it as being too far towards the training end of the spectrum.  Does programming fall under training or education?  My thinking is that learning how to program (the actual process of coding) may be more training-oriented, but knowing what to code and why requires education as well.  Regardless, it appears from the results of the Fagin and Wikle study that, even though GIS-related programming appears to be in high demand, the people who are getting those jobs likely did not acquire those skills at a traditional four-year university, or at least not through its GIS courses (I may be completely wrong on this though, so please feel free to correct me).

I was chatting with a computer science professor about this yesterday, and his suggestion was that I recommend one of his department’s first-year courses that introduces students to programming by using Python.  I think this could be a great course for some of my GIS students who want to augment their GIS courses.  Additionally, I am considering including at least a brief introduction to Python as part of a section I am revising and expanding on ModelBuilder and geoprocessing.  The questions I’m currently thinking about are: can I really provide much of an effective introduction in perhaps 4 hours of class time?  I would love to have a whole new course on this, but don’t have the time in my teaching schedule, nor the expertise to mount such a course at this point.  Or should I just point those that are interested towards a more general-purpose Python course in the computer science department?  In a recent LinkedIn discussion (in the GIS, Mapping and Geo Technology group) about what languages a new GIS professional should learn, Python definitely came out as the favourite, but are there others?  Finally, is programming becoming as essential as I think it is, or is it still beyond what a typical GIS professional (if there is such a thing) should be expected to do?  If GIS developers didn’t get their programming background from a university GIS curriculum, where did they get it? So many questions!  If you have any comments, I would love to hear them.



Fagin, Todd D. and Thomas A. Wikle.  2011.  The instructor element of GIS instruction at US colleges and Universities, Transactions in GIS, 15(1): 1-15.







6 responses to “Should programming be part of a university GIS curriculum?”

  1. Diana Sinton Avatar
    Diana Sinton

    The skills are highly valued ones, aren’t they. I asked a friend of mine who owns a small GIS consulting company what types of projects he’d been working on lately, and he hesitated to even call them “GIS” projects. All of his recent hires have been programmers, not people coming out with only traditional GIS MS degrees.

    It seems to me that even if we can’t add any significant amount of programming to a course, given a lack of time or expertise or both, it’s still possible for students to gain an appreciation of that basic programming that you referred to (loops, if/then, etc.). In fact, in my experience, if a student can’t grasp a fundamental if/then concept, they have problems using conditional statements correctly (with raster data, for example). The structured, logical rules and workflows that careful programming entails can also be modeled by having students provide such workflows for the projects they do. I’ve found Esri’s Model Builder helpful for this, since the interface forces them to think through loops, sequential steps, if/thens, etc. At least this seems to set the stage for learning programming.

    1. Don Avatar

      Thanks for the great comments. I agree that they are highly valued skills, but I try to remind students who see programming as a way to get a job that they should probably like programming if that’s what gets them in!

      I also ask my students to use ModelBuilder (as well as more basic conceptual modeling) to encourage students to think through their project and problem solving in a structured, systematic way. I have to say that I haven’t gotten as far as having them use ModelBuilder for loops, if/thens, etc. but will certainly think about that for the next time around – great suggestion!

      1. Diana Sinton Avatar
        Diana Sinton

        I wonder how effective this kind of training could become, either for us faculty or for our students just trying to learn a bit but without other university alternatives. They have a GIS Programming 101 for Arc10 class that looks interesting.

        1. Don Avatar

          Thanks for the link. I’m going to start with the new book Getting to Know ArcGIS ModelBuilder first, and see how far I get with that!

      2. Alexey Tereshenkov Avatar
        Alexey Tereshenkov


        Take a look at this book. I think you and your students will find it very useful for learning programming.

        1. Don Avatar

          Thanks for the suggestion – looks like it would be great for someone just starting out with Python. -Don

Leave a Reply

Your email address will not be published. Required fields are marked *