GEOG 863 - Web Application Development for Geospatial Professionals
This is a sample syllabus.
This sample syllabus is a representative example of the information and materials included in this course. Information about course assignments, materials, and dates listed here is subject to change at any time. Definitive course details and materials will be available in the official course syllabus, in Canvas, when the course begins.
Overview
Geographic Information Systems have long provided skilled professionals with the means to map and analyze objects and phenomena on the Earth’s surface using desktop computers. In recent years, the Internet has greatly extended the reach of GIS beyond the desktop. Geospatial technology vendors and the open-source community have devised web service protocols and web mapping application programming interfaces (APIs) so that third-party developers can create their own applications for use on web-enabled devices. These applications serve a wide array of purposes, including place and way finding, data dissemination, and data collection. For example, tabular crime data published on a city’s website can be combined with base data layers such as municipal boundaries and roads to produce a map that is valuable for both the city’s police department and its citizens. This course focuses on how geospatial professionals can create such applications using industry-relevant geospatial APIs. Students will build applications using the core web technologies of HTML, CSS, and JavaScript. Topics covered will include the implementation of 2D maps and 3D scenes, understanding API documentation, layer discovery and visualization, user interface development, data querying, and geoprocessing.
GEOG 863 is an elective course in the Postbaccalaureate Certificate Program in GIS and the Master of Geographic Information Systems (MGIS) degree program. It is a required course in the Geospatial Programming and Web Map Development Graduate Certificate Program.
Objectives
GEOG 863 will provide students with an understanding of the technology that makes building geospatial web apps possible and teaches them how to build their own apps.
At the successful completion of this course, students should be able to:
- compose a geospatial app using non-programming tools such as app templates and application builders;
- build their own online/mobile map using ArcGIS Field Maps technology;
- have a better understanding of the various map development / deployment frameworks available;
- be able to choose an appropriate map framework for a particular task;
- use Esri's Arcade scripting language to populate form fields automatically;
- explain the basic rules/terminology of Hypertext Transfer Markup Language (HTML);
- assemble a simple web page containing paragraphs, lists, tables, images, and links without the aid of an HTML editor;
- discuss the benefits of using Cascading Style Sheet (CSS) technology;
- employ JavaScript (JS) to add dynamic content/behavior to a web page;
- describe how Asynchronous Module Declaration (AMD) work;
- locate and interpret class, property, and method documentation in a web mapping API reference;
- identify useful code samples and apply them in a web mapping sandbox;
- explain the concept of class inheritance;
- incorporate web maps and web scenes into a JavaScript application;
- describe how the REST web services protocol works;
- list the commonly used layer types in a web mapping API and discuss their use;
- diagnose problems in an app using browser debugging tools & strategies;
- describe and employ the user interface widgets available in a web mapping API;
- incorporate HTML form elements into an app;
- depict different geometry types using the appropriate symbol objects;
- choose and implement an appropriate layer renderer to convey the desired information on a web map;
- define popup window content/behavior programmatically;
- explain the concept of a promise in the context of JavaScript and demonstrate how to code one;
- define and execute queries to identify features of interest
Required Materials
The materials listed here represent those that may be included in this course. Students will find a definitive list in the course syllabus, in Canvas, when the course begins.
You do not need to purchase any materials for this course; however, the following books may be useful as references:
Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript and Web Graphics by Jennifer Niederst Robbins (ISBN-13: 978-1449319274)
Head First JavaScript Programming by Eric T. Freeman & Elisabeth Robson (ISBN-13: 978-1449340131)
A Smarter Way to Learn JavaScript by Mark Myers (ISBN-13: 978-1497408180)
Prerequisites
GEOG 485 or other experience in computer programming
Expectations
Like any graduate-level course, you will be challenged to move beyond the knowledge and skills that you bring to the class. However, you'll be glad to know that you don't have to show up for the class at a certain time! All you need to do is complete your assignments before the published deadlines. Some of the assignments are one week in length, while others are two.
During the term, I encourage everyone to use the class discussion forums, chat rooms, or email to help each other find materials related to the course content. I can always be contacted via class email and will check my account daily during the week (and typically at least once each weekend). If I am traveling, I may check somewhat less frequently, but I will alert you of this beforehand.
Major Assignments
Students earn grades that reflect the extent to which they achieve the learning objectives listed above. Opportunities to demonstrate learning include the following, and grades will be based on points assigned to each of several components of the course as follows:
8 Individual Projects - 50% of course grade
Each lesson concludes with a hands-on project to be completed individually by the student. See the Course Schedule for project due dates. In addition to producing solutions to the programming scenarios presented, you will also sometimes be required to produce a short write-up of what you learned or record a video that presents findings on a research topic.
8 Lesson Quizzes - 20% of course grade
A quiz will be held at the end of each lesson to test the student's comprehension of class materials and other reading as required.
Final Project - 20% of course grade
A student-selected final project will be submitted at the end of the course.
Review Quiz - 10% of course grade
A 20-question review quiz at the end of the course will cover all of the course material.
Course Schedule
Week | Lesson | Topics |
---|---|---|
1 | Lesson 1: Creating Mapping Apps Without Programming | ArcGIS Online, Esri configurable apps, Web AppBuilder |
2 | Lesson 2: Creating a Field Data Collection App | ArcGIS Field Maps |
3 | Lesson 3: Web Publishing Technologies: HTML/XHTML/CSS | HTML, XML, XHTML, CSS |
4 | Lesson 4: Introduction to the ArcGIS API for JavaScript | 2D maps, 3D scenes, JavaScript fundamentals, HTML/CSS/JS separation, Asynchronous Module Definition, the Document Object Model, Esri's JS Software Developer's Kit, graphic overlays |
5 | Lesson 5: Adding Layers | Loading ArcGIS Online web maps/web scenes, autocasting, the REST API, layer types, IDEs, debugging, JSLint/JSHint, code beautifiers |
6 | Lesson 6: Layer Visualization | non-programming options, 2D symbols, 3D symbols, Esri's Symbol Playground, renderers, using browser tools to obtain viewpoint values, popup configuration |
7 | Lesson 7: Building Search/Query Capability | the Search widget, promises, layer definition expressions, query definition & execution |
8 | Lesson 8: GUI Development | Esri widgets, customizing widget appearance & behavior, incorporation of HTML form elements, event handling |