Geospatial Development: Enhancing GIS curricula with programming skills at UNB
Geospatial information science and technology (GIS&T) has rapidly evolved over the last few decades. This evolution has created a highly demanding job market for GIS professionals [3,4]. Recently, students, graduates, and professionals are more and more forced to complement GIS competence with programming skills. On the flip side, University departments feel the urge to adjust and enrich their curricula accordingly.
The Difficulty Teaching Programming
Recent studies  have shown few university programs currently guarantee the acquisition of adequate and appropriate programming skills within the primary GIS degree. There are many reasons that delay the transition to a more programming-oriented degree in Geography or Geomatics. First, many of the instructors in these programs have little or no programming background themselves. Even if they are capable to draft simple or complex programs, they usually do not feel comfortable to teach programming. Second, existing curricula are usually very compact and do not offer much room for new programming courses. The pressure for a reduction of credit hours along with curricular constraints (core courses, accreditation requirements, etc.) makes the situation even more challenging. Third, learning programming is usually frustrating especially for non-computer science students attending a class offered by a computer science department. Although most programming does not require a special brain, non-computer science students need to be motivated and encouraged throughout the programming learning process . The concepts, purpose, and value of programming methods and tools must be clearly specified and linked to their geospatial domain. This is rarely offered within a computer-science department.
Teaching Programming at UNB
In the department of Geodesy and Geomatics Engineering (GGE)  at the University of New Brunswick (UNB), Canada there has been a continuous attempt over the last five years to enrich the curricula with programming courses and better prepare the students for the GIS job market. The program is currently offering one introductory course to programming, two core GIS courses, and three technical electives in Geographic Databases, Geospatial Web, and Data Science. These courses provide a combination of lectures and hands on exercises on exploration, management, processing, analysis, display, and dissemination of geospatial data. A wide range of software packages are in use to support these tasks. Special attention has been given in the introduction and use of various programming languages and scripts to enhance the functionality offered by the software packages.
Both instructors and students have recognized the benefits of the transition to a more programming-oriented degree. Students feel more confident to use software packages at their full capacity. At the same time, both assignments and projects have become more demanding in terms of programming. But the indication that changes are heading in the right direction came recently in the town hall meeting with the students who requested an enrichment of the curriculum with more programming courses.
New Elective: Geospatial Development
To address this demand, starting the winter term 2017, a new technical elective course, entitled Geospatial Development, will be added to the program. The scope of this course is to get the students acquainted with geospatial programming. Students will learn how to: develop standalone programs, use geospatial libraries, and extend the functionality of geomatics software systems. The learning outcomes of the course are: develop programming skills in high-level and script programming; understand the value of these skills in geomatics; understand and make use of the programming resources (libraries) in support of geomatics applications; learn how to extend the functionality of open source and commercial packages widely used in geomatics; and develop web-based applications to disseminate or visualize geospatial data.
The course can accommodate students with limited programming skills. The only prerequisite is an introductory course to GIS, so that students are familiar with basic concepts such as geographic data, data models, coordinate reference systems, map projections, data formats, etc. According to the plan, the course will be offered as a second year core course in the future so that students can benefit from the learning outcomes and exploit them in subsequent courses. It is aspired that this course will contribute in the enrichment of knowledge and competence of GGE graduates in programming and help them smoothly integrate themselves in the Geospatial industry.
 Bowlick, F.J., Goldberg, D.W., and Bednarz, S.W. (2017) Computer Science and Programming Courses in Geography Departments in the United States, The Professional Geographer, 69:1, 138-150, DOI: 10.1080/00330124.2016.1184984. Available at
http://dx.doi.org/10.1080/00330124.2016.1184984 [Visited on November 1, 2016]
 GGE: Department of Geodesy and Geomatics Engineering. University of New Brunswick. http://gge.unb.ca/ [Visited on November 1, 2016]
 Kumar, M., 2014. Learning GIS programming: An overview. Geoawesomeness. http://geoawesomeness.com/learning-gis-programming-an-overview/ [Visited on November 1, 2016]
 Sinton, D.S., 2015. GIS Jobs of Today: Should you have programming skills? Directions Magazine. Available at http://www.directionsmag.com/entry/gis-jobs-of-today-should-you-have-programming-skills/473296 [Visited on November 1, 2016]
 Stefanakis, E., 2015. Education and Training on Web Mapping and the Geospatial Web. Geomatica Journal, Special Issue: Cartography in Canada 2011–2015, Vol. 69, No. 2, pp. 145-160. http://pubs.cig-acsg.ca/doi/pdf/10.5623/cig2015-202 [Visited on November 1, 2016]