Request for New Course EASTERN MICHIGAN UNIVERSITY DIVISION OF ACADEMIC AFFAIRS REQUEST FOR NEW COURSE DEPARTMENT/SCHOOL: GEOGRAPHY AND GEOLOGY___COLLEGE: ARTS AND SCIENCES CONTACT PERSON: __HUGH SEMPLE____________________________________________________________ CONTACT PHONE: 734-487-8169 CONTACT EMAIL: HSEMPLE@EMICH.EDU REQUESTED START DATE: TERM___FALL__________YEAR____2015_______ A. Rationale/Justification for the Course The GIS Minor or the proposed undergraduate program in GIS Science and Technology does not have any course in GIS customization and programming, areas that continue to have the highest demand for GIS graduates. Due to the high demand for students with skills in GIS programming and customization, it is felt that a course that provides education and skills in these areas should be immediately established. The emphasis of the course is on concepts and techniques for constructing tools to solve geographic problems not easily solved using out-of-the-box GIS functionalities. Students will be exposed to details of both visual programming as well as the object model of the GIS software. B. Course Information 1. Subject Code and Course Number: GEOG 484 2. Course Title: GIS Customization and Programming 3. Credit Hours: 3 hrs 4. Repeatable for Credit? Yes_______ No___X___ If “Yes”, how many total credits may be earned?_______ 5. Catalog Description (Limit to approximately 50 words.): This course is designed for students who are familiar with GIS software at a technical level, but who are new to programming the software. Emphasis is on learning basic programming structures, studying the object model of the GIS software, reading and writing usable code for typical GIS tasks, and adding new, simple functionalities to out-ofthe-box GIS software. Prerequisite: GEOG 276 or departmental permission. 6. Method of Delivery (Check all that apply.) a. Standard (lecture/lab) On Campus X X Off Campus b. Fully Online X c. Hybrid/ Web Enhanced X 7. Grading Mode: Miller, New Course Sept. 09 Normal (A-E) X Credit/No Credit New Course Form 8. Prerequisites: Courses that MUST be completed before a student can take this course. (List by Subject Code, Number and Title.) GEOG 276 9. Concurrent Prerequisites: Courses listed in #5 that MAY also be taken at the same time as a student is taking this course. (List by Subject Code, Number and Title.) None 10. Corequisites: Courses that MUST be taken at the same time as a student in taking this course. (List by Subject Code, Number and Title.) None 11. Equivalent Courses. A student may not earn credit for both a course and its equivalent. A course will count as a repeat if an equivalent course has already been taken. (List by Subject Code, Number and Title) None 12. Course Restrictions: a. Restriction by College. Is admission to a specific College Required? College of Business College of Education Yes Yes No No X X b. Restriction by Major/Program. Will only students in certain majors/programs be allowed to take this course? Yes No X If “Yes”, list the majors/programs c. Restriction by Class Level Check all those who will be allowed to take the course: Undergraduate Miller, New Course Sept. ‘09 Graduate All undergraduates___X____ All graduate students____ Freshperson Certificate Sophomore Masters Junior Specialist Page 2 of 8 New Course Form Senior Doctoral Second Bachelor________ UG Degree Pending_____ Post-Bac. Tchr. Cert._____ Low GPA Admit_______ Note: If this is a 400-level course to be offered for graduate credit, attach Approval Form for 400-level Course for Graduate Credit. Only “Approved for Graduate Credit” undergraduate courses may be included on graduate programs of study. Note: Only 500-level graduate courses can be taken by undergraduate students. Undergraduate students may not register for 600-level courses d. Restriction by Permission. Will Departmental Permission be required? Yes No X (Note: Department permission requires the department to enter authorization for every student registering.) 13. Will the course be offered as part of the General Education Program? Yes No X If “Yes”, attach Request for Inclusion of a Course in the General Education Program: Education for Participation in the Global Community form. Note: All new courses proposed for inclusion in this program will be reviewed by the General Education Advisory Committee. If this course is NOT approved for inclusion in the General Education program, will it still be offered? Yes No C. Relationship to Existing Courses Within the Department: 14. Will this course be a requirement or restricted elective in any existing program(s)? Yes X No If “Yes”, list the programs and attach a copy of the programs that clearly shows the place the new course will have in the curriculum. Program Geospatial Information Science and Technology (B.S. Major) Required X Restricted Elective_ Program Required Restricted Elective 15. Will this course replace an existing course? Yes No X 16. (Complete only if the answer to #15 is “Yes.”) a. Subject Code, Number and Title of course to be replaced: b. Will the course to be replaced be deleted? Yes No 17. (Complete only if the answer #16b is “Yes.”) If the replaced course is to be deleted, it is not necessary to submit a Request for Graduate and Undergraduate Course Deletion. a. When is the last time it will be offered? Term Year b. Is the course to be deleted required by programs in other departments? Miller, New Course Sept. ‘09 Page 3 of 8 New Course Form Contact the Course and Program Development Office if necessary. Yes No c. If “Yes”, do the affected departments support this change? Yes No If “Yes”, attach letters of support. If “No”, attach letters from the affected department explaining the lack of support, if available. Outside the Department: The following information must be provided. Contact the Course and Program Development office for assistance if necessary. 18. Are there similar courses offered in other University Departments? If “Yes”, list courses by Subject Code, Number and Title Yes No X 19. If similar courses exist, do the departments in which they are offered support the proposed course? Yes No If “Yes”, attach letters of support from the affected departments. If “No”, attach letters from the affected department explaining the lack of support, if available. D. Course Requirements 20. Attach a detailed Sample Course Syllabus including: a. b. c. d. e. f. g. h. Course goals, objectives and/or student learning outcomes Outline of the content to be covered Student assignments including presentations, research papers, exams, etc. Method of evaluation Grading scale (if a graduate course, include graduate grading scale) Special requirements Bibliography, supplemental reading list Other pertinent information. NOTE: COURSES BEING PROPOSED FOR INCLUSION IN THE EDUCATION FOR PARTICIPATION IN THE GLOBAL COMMUNITY PROGRAM MUST USE THE SYLLABUS TEMPLATE PROVIDED BY THE GENERAL EDUCATION ADVISORY COMMITTEE. THE TEMPLATE IS ATTACHED TO THE REQUEST FOR INCLUSION OF A COURSE IN THE GENERAL EDUCATION PROGRAM: EDUCATION FOR PARTICIPATION IN THE GLOBAL COMMUNITY FORM. E. Cost Analysis (Complete only if the course will require additional University resources. Fill in Estimated Resources for the sponsoring department(s). Attach separate estimates for other affected departments.) Estimated Resources: Faculty / Staff Miller, New Course Sept. ‘09 Year One $_________ Year Two Year Three $_________ $_________ Page 4 of 8 New Course Form SS&M $_________ $_________ $_________ Equipment $_________ $_________ $_________ Total $_________ $_________ $_________ F. Action of the Department/School and College 1. Department/School Vote of faculty: For _____18_____ Against ____0______ Abstentions ____0______ (Enter the number of votes cast in each category.) Dr. Rick Sambrook Department Head/School Director Signature 10-10-2014 Date 2. College/Graduate School A. College College Dean Signature Date B. Graduate School (if Graduate Course) Graduate Dean Signature Date G. Approval Associate Vice-President for Academic Programming Signature Miller, New Course Sept. ‘09 Date Page 5 of 8 rsambroo 10/10/14 4:13 PM Formatted: Font color: Black New Course Form COURSE OUTLINE GIST 484 - Introduction to GIS Customization and Application Development COURSE DESCRIPTION: This course provides a foundation for application development in GIS using Python and ArcObjects. After completing this course, students will be able to read and understand Python\ArcObjects code, know how to access online help resources, write simple, usable code for common GIS programming tasks, and start building their own custom applications. The course is designed for GIS users who are familiar with ArcMap and ArcCatalog at a technical level, but who are new to programming. No previous exposure to any programming language is necessary for enrollment in this course. REQUIRED TEXTBOOK: Python Scripting for ArcGIS - With DVD - 13 edition by Paul A. Zandbergen, 2013. ESRI Press. COURSE GOAL To help students become proficient in basic object-oriented programming as applied to problem solving in geographic information systems. COURSE OBJECTIVES By the end of this course, students should be able to: 1. Describe the Python scripting language and explain how it fits into the ArcGIS geoprocessing framework. 2. Understand how Python integrates with ArcObjects to create customized GIS applications. 3. Investigate relationships between ArcObjects classes, using object model diagrams. 4. Assemble computer code in a logical, well-structured, and easy-to-read manner, including concise commenting. 5. Diagnose and resolve "bugs" and other problems in computer code through the combined processes of analysis and testing. 6. Employ Python and ArcObjects to create customized applications. 7. Compile Python code into executable files, using various bundling tools. 8. Solve geospatial problems and streamline GIS workflows through the design and development of custom GIS applications. COURSE CONTENT Section 1: Introduction to GIS Customization - The need for GIS customization and application development - ESRI and Open Source solutions for application development - Basic ArcGIS Desktop customization – creating custom toolbars, running macros and dlls, etc. - Working with Model Builder and available python scripts. Section 2: Python Language Fundamentals - Variables, data types, assignment statements, - Objects, methods, properties, classes - Using conditional statements in Python - Looping Miller, New Course Sept. ‘09 Page 6 of 8 New Course Form - Subroutines and functions - Working with arrays - Debugging; Error Handling - Python libraries Section 3. Programming with ArcObjects - Introduction to ArcObjects (objects, classes, properties, methods, interface programming, Object Model Diagrams) - The Geoprocessor Object - Geoprocessor Object Model Diagram (pdf) - Geoprocessor Methods - Lists, Describe Method, etc - Running arcgisscripting and arcpy scripts. Section 5: Basic Geoprocessing Operations - Setting workspace in arcpy - Setting output coordinate system - Calling standard tools - Checking if data exists - Describe Objects. Using describe to test object attributes - Enumeration Objects Using the Next and Reset methods Looping through enumeration objects - Cursor Objects Review of search, update, and insert cursors Section 6: Script Tools, Workflows, Batch Processing - Creating Script Tools - Adding Python Scripts as tools to Toolboxes - Automating workflows with Python - Automation with Batch File and Scheduled Tasks - Arcpy.mapping module Section 7: The Application Development Process - Overview of the application development process - Alternative models of application development process - Waterfall processes - Agile software development - Extreme Programming − Delivering Custom GIS Applications STUDENT ASSIGNMENTS Weekly Labs Each week, students will be given opportunities to write code to solve various types of GIS programming problems. Final Project Miller, New Course Sept. ‘09 Page 7 of 8 New Course Form Students will be required to complete a final project as part of the course. The project is intended to give students an opportunity to develop their skills in integrating various programming concepts to create a custom GIS application that adds additional functionalities to the GIS software. METHODS OF EVALUATION Weekly Labs - 50% Term Exam 1 - 15% Term Exam 2 - 15% Final Project - 20% Total GRADING SCALE A 100%-92% A91%-90% B+ 89%-87% - 100% B 86%-82% B- 81%-80% C+ 79%-77% C 76%-72% C- 71%-70% D+ 69%-67% D 66%-62% D- 61%-60% F below 60% BIBLIOGRAPHY Allen David, 2003. Getting to Know ArcGIS ModelBuilder. Redlands, CA: ESRI Press. Burke Robert, 2003. Getting to Know ArcObjects. Redlands, CA: ESRI Press Downey Allen, 2012. Python for Software Design: How to Think Like a Computer Scientist. Green Tea Press. Jennings Nathan, 2011. A Python Primer for ArcGIS. CreateSpace Independent Publishing Platform Pimpler Eric, 2013. Programming Arcgis 10.1 with Python Cookbook Packt Publishing, Birmingham, U.K. Langtangen Hansm, Petter, 2011. A Primer on Scientific Programming with Python, Springer, Berlin. Westra Erik, 2010. Python Geospatial Development, Pakt Publishing Miller, New Course Sept. ‘09 Page 8 of 8