GEOG 863:
Web Application Development for Geospatial Professionals

Syllabus - O'Brien


Syllabus Fall 1 2020/21

GEOG 863: Web Application Development for Geospatial Professionals

This syllabus is divided into several sections. Please read the entire document.

  • Instructor
  • Course Overview
  • Course Objectives
  • Required Course Materials
  • Assignments and Grading
  • Course Schedule
  • Course Policies


James O'Brien
James O'Brien
Please use Canvas' e-mail client (Canvas Inbox)
Office hours: By appointment

Course Overview

GEOG 863: Web Application Development for Geospatial Professionals.
Recommended preparation: GEOG 485 or other experience in computer programming

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.

What will be expected of you?

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.

My colleagues and I have worked hard to make this the most effective and convenient educational experience possible. How much and how well you learn is ultimately up to you. You will succeed if you are diligent about keeping up with the class schedule and if you take advantage of opportunities to communicate with me, as well as with your fellow students.

For a more detailed look at what will be covered in each lesson, as well as due dates for our assignments and activities, please refer to the semester-specific course schedule that is part of this syllabus (see "Course Schedule").

Course 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;
  • 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;
  • describe the relationship between a server-hosted geoprocessing service and a client-based task; and
  • execute a geoprocessing task synchronously and asynchronously.

Required Course Materials

All materials needed for this course are presented online through our course website and in Canvas. In order to access the online materials, you need to have an active Penn State Access Account user ID and password (used to access the online course resources). If you have any questions about obtaining or activating your Penn State Access Account, please contact the Outreach Helpdesk.

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)

E-Book Option: An online version of one or more of your optional textbooks is available at no cost as a Penn State Library E-Book. Some E-Books will only be available online, while others will be available to download in full or in part. You may choose to use the E-Book as an alternative to purchasing a physical copy of the text. You can access the E-Book by selecting the Library Resources link on the course navigation, and then selecting the E-Reserves link. For questions or issues, you can contact the University Libraries Reserve Help (UL-RESERVESHELP@LISTS.PSU.EDU).

Using the Library

Just like on-campus students, as a Penn State student, you have a wealth of library resources available to you!

As a user of Penn State Libraries, you can...

  • search for journal articles (many are even immediately available in full-text);
  • request articles that aren't available in full-text and have them delivered electronically;
  • borrow books and other materials and have them delivered to your doorstep;
  • access materials that your instructor has put on Electronic Reserve;
  • talk to reference librarians in real-time using chat, phone, and email;
  • ...and much more!

Assignments and Grading

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 grades are awarded on the following basis :

Grade Assignments
A 93-100%
A- 90-92.9%
B+ 86-89.9%
B 83-85.9%
B- 80-82.9%
C+ 76-79.9%
C 70-75.9%
D 60-69.9%
F <60%
W Withdrew


Students need to earn at least a "C" grade in all four courses to be eligible for one of our Post-baccalaureate Certificates. Only credits associated with a grade of "B" or higher may be counted toward the MGIS degree.

GEOG 863 Course Schedule

imagePrintable Schedule

Below, you will find a summary of the learning activities for this course and the associated time frames. We will use the Calendar in Canvas to post assignments, due dates, etc. Please refer to that information in order to keep on top of things! Specific details for each project can be found in each lesson. If the need arises and changes to this syllabus are required, all students will be notified in advance.

Lesson 1: Creating Mapping Apps Without Programming
Date: Week 1
Topics: ArcGIS Online, Esri configurable apps, Web AppBuilder

Lesson 2: Web Publishing Technologies: HTML/XHTML/CSS
Date: Week 2

Lesson 3: Introduction to the ArcGIS API for JavaScript
Date: Week 3
Topics: 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

Lesson 4: Adding Layers
Date: Week 4
Topics: Loading ArcGIS Online web maps/web scenes, autocasting, the REST API, layer types, IDEs, debugging, JSLint/JSHint, code beautifiers

Lesson 5: Layer Visualization
Date: Week 5
Topics: non-programming options, 2D symbols, 3D symbols, Esri's Symbol Playground, renderers, using browser tools to obtain viewpoint values, popup configuration

Lesson 6: Building Search/Query Capability
Date: Week 6
Topics: the Search widget, promises, layer definition expressions, query definition & execution

Lesson 7: GUI Development
Date: Week 7
Topics: Esri widgets, customizing widget appearance & behavior, incorporation of HTML form elements, event handling

Lesson 8: Geoprocessing
Date: Week 8
Topics: tasks, identifying geoprocessing service inputs & outputs, synchronous & asynchronous job execution

Course Policies

Late Policy

Late projects are automatically marked down 10 percent (regardless of how late they're submitted). Hopefully, this will encourage you to stay on track, but not penalize you too harshly should you fall behind.