GIS Logo GSP 118 (318): GIS Programming

Notes to Instructors

Below are some notes to help instructors and teaching assistant to use this web site as a text for a class in geospatial programming.

Assignments

Software development is not just about programming. From the very start you will want to grade them on the documentation (header blocks and inline comments). As the course progresses, you'll want to add "help" documentation and supporting requirements and design documentation as appropriate to the assignment. These will be important in their future careers and for you to understand their code when grading. I recommend having a breakdown of approximately:

  • Code executed correctly: 40%
  • Documentation: 30%
  • Code would be easy to support (understandable and robust): 30%

Grading programs that may require a specific version of Python, ArcGIS, and especially a series of Open Source libraries can be extremely time consuming. You simply cannot reconfigure your system to run each students assignments. At the same time it may be important to run the first few assignments to make sure students are not cheating. In many situations, students may run their program, then add documentation. If they are not careful, this can break the program as well. My recommendations are:

  1. Require the folder organization described in this web site. This will make it easy to copy the students assignments to your "C:/ProjectsPython/Projects/Assignment1" folder, run it, and delete it. Then you can run the next student's assignment. This will keep you from having to change file paths in their code.
  2. Require the version of Python and ArcGIS that you and your TAs are using. If students have other versions of ArcGIS or Python on their computers, they will need to convert them to run on yours.
  3. Follow recommendations 1 and 2 through section 8. At this point the students will begin customizing their assignments. This will make them more motivated, expose them to the challenges of finding and integrating new packages, and make the class more interesting with discussions on the available packages. It will also allow the students to use the assignments to help with their projects. At the same time, it will make it basically impossible for you to run the programs they turn in. At this point you will need to trust them and just focus on the other aspects of their grade.