Department Home

Cloud Software Development

Google App Engine Programming in Python
MA/CS 197, Fall 2016, Tuesday, 3:00-4:05, Galileo 105
Information on this page is current as of November 10th, 2016.
St. Mary's Home

Jump to Outline

Lecturer

Prof. Brian R. Hill, Ph. D. (follow this link for contact and office hours)

Software

We will use IntelliJ IDEA Ultimate with various Python extensions and the Google App Engine SDK:

References
Examples and Assignments

GitHub Location for Examples and Assignments

Outline

We will cover the following topics:

  • Getting Started
    • Using a Python IDE (IntelliJ IDEA Ultimate)
    • Running and Debugging
    • Unit Testing with the unittest Library
    • PEP8 Conformance
    • Example/Review: Get Pokemon or Other Algorithm from Your Last Python Course Running Under IntelliJ
  • Google App Engine Front End
    • Google App Engine SDK
    • Web Servers
    • Debugging Web Apps
    • Example: Hello World
    • Python webapp2 Library
    • Request Handling
    • Response Writing
    • Example: Guestbook
  • Representational State Transfer (REST)
    • HTTP GET/POST/PUT/DELETE
    • Datastore Create/Read/Update/Delete (CRUD)
    • JSON Request Bodies and JSON Responses
    • Controlling API Access with Google's OAuth Service
    • Example: Tic-tac-toe
  • Google App Engine Datastore
    • Using ndb library for reading from and writing to the Datastore
    • Example/Assignment: RESTful Movies
    • Querying from the ndb library
    • Example/Assignment: RESTful Movies (Part II — Queries)
  • Google App Engine Task Queues
    • Task Queues for deferring time-consuming, but not time-critical operations
    • Example/Assignment: RESTful Movies (Part III — Recalculating Rating Averages)
  • Statistical Learning
  • Optimization Methods
    • Newton's Optimization Method for One Dimension
    • Example/Assignment: Minimization of a Quartic Cost Function
    • Newton's Optimization Method for Two and More Dimensions
    • Example/Assignment: Photocurrent Fit
    • Stochastic Optimization for Higher Dimensions
    • Example/Assignment: Stochastic Optimization Part I (Preliminaries, including Generating Perturbations and Using the Simultaneous Approximation to Get Derivatives)
    • Stochastic Optimization with
    • Example/Assignment: Stochastic Optimization Part II (Looping a la Spall)
  • Tie Client and Server Together
    • Example/Assignment: Create RESTful iOS client that fetches all reviews for a movie