This course introduces the theory, techniques, and logic behind GIS programming and its applications related to scripting within desktop GIS software platforms. Methods for processing, analyzing, and visualizing geographic data will be introduced through the use of the Python programming language and the ArcPy library, which provides robust Python scripting and tool development functionality for the industry-standard ArcGIS for Desktop software platform. The course's focus on GIS-specific programming and mapping techniques is situated within a curriculum that introduces essential components of the theoretical context of computer science and software development. The first half of the course focuses upon introducing basic concepts in computer programming with the Python programming language, while the second half of the course focuses upon applying Python programming to geospatial analysis in ArcGIS. Practical applications of Python programming are a cornerstone of the course.