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.

 

Reference

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.