The course will introduce students to the scripting and programming tools and skills commonly employed in GIS and spatial analysis. The skills learned in this course are equally applicable in scientific research, the public sector, and in industry. This course helps satisfy the programming requirements of the GIS and remote sensing the Geoinformatics major. No programming background is assumed for this course, but, because programming is an integral part of the course we strongly encourage students to make efforts to ensure they understand and practice the programming concepts discussed in this course.
During the labs offered in this course, the students will practically learn the programming skills. The main objectives of this module are to provide:


  •  An overview of computer systems.
  •  An introduction to functions of software components: operating systems, editors, compilers.
  • The knowledge of programming in a high-level language: selection and loop structures, routines, array and record types, text file operations.
  •  An introduction to object-based programming: use of class libraries and construction of simple classes.




Learning outcomes

At the end of this course, you will be able to:


  • Solve fairly simple computer programs using the Python language, but which are applicable to many other programming languages.
  • Be familiar with major geospatial vector and raster file formats and specifications for spatial reference coordinate systems Read and write the basic syntax of the Python language.
  • Have used and be comfortable with online resources that support geocomputing and programming in the GIS profession.
  • Know how to use Python with open-source GIS libraries.
  • Learn how Python can extend the capabilities of ArcGIS to solve problems difficult or impossible to address otherwise.
  • Develop basic skills in the Python programming language, and acquire programming concepts necessary for advanced GIS courses that require programming.
  • Be able to write shell commands to accomplish common geoprocessing tasks Understand the procedures involved in developing algorithms.
  • Translate a problem in the field of GI science into working computer programs.
  • Learn when scripted solutions are preferred over mainstream GIS software.





  • Getting Started
  • Command Shells and Shell Scripting
  • Spatial Reference Systems and Data
  • GDAL and OGR Utility Libraries
  • Python: Basics
  • Python: Functions
  • Python: Flow Control
  • Python: Containers
  • Python: Containers II
  • Python: Memory, Copies & Files
  • Python: System Access
  • Python: Objects
  • GDAL and Python I
  • GDAL and Python II




Allocated time per teaching and learning method


Teaching / learning method

Allocated Hours



Supervised practicals


Unsupervised practicals


Individual assignment


Group assignment






MSc thesis supervision


There will be a final closed book and closed notes examination. The practical skills are assessed based on the students’ performance during practical and a report for a small individual assignment.



Final Grade Determination


The final grade in this course will be based on the following components:




20 %

Individual Assignment

40 %

Final Examination

40 %


Lutz, Mark, Learning Python – Fifth Edition, O’REILY (2013)


K.N.Toosi University
Address: No. 1346, ValiAsr Street, Mirdamad cross, Geomatics Engineering Faculty, K.N. Toosi University of Technology, Tehran, Iran.
Post Code: 15433-19967 
 Tel: +98 21 88877071-2 
All Rights of Khajeh Nasir Toosi University are reserved.