MPCS 52555 Backends for Applications (Spring 2022)

Section 1
Instructor(s) Binkowski, Thomas (abinkowski)
Location Online Only
Meeting Times Wednesday 10am - 11:30am
Fulfills Elective Specialization - Application Development (APP-2)

Syllabus

Course Description
The breakneck adoption of mobile computing as a platform has transformed how businesses and users interact with their data.  The expectations of being able to access your data anywhere and anytime has become the second pillar of application design and development.  New models, patterns and workflows are needed to connect applications to their server based data.  In addtion, other considerations such as privacy, scalability and cost must be balanced to meet the demands of all application stakeholders.
 
 
Course Content
This course will explore the current state of backend solutions for applications with a focus on mobile and web applications.  Students will work with third-party solutions such as Google Cloud Platform, Firebase, Amazon Web Services, Vapor, and iCloud.  Students will design and implement custom solutions hosted on cloud service providers with significant emphasis on API design and performance. While there are options for development languages across different backend platforms, demonstrations, the majority of lecture materials and tutorials will be conducted in Python and Swift. You should also be proficient in working from the command line. You will be required to write non-trivial Bash scripts to deply, test and debug web services.
 
 
Coursework
This course will be assignment and project based and have no exams.  This course will assume you are proficient in developing native iOS mobile applications and/or web applications. It is exclusively dedicated to developing the backend solutions. Instruction on building the applications that interact with backends will not be provided. If necessary, students should be willing to independently supplement their knowledge of iOS and web development to support the development of their backend solution.  While the course is designed to be cross-platform, emphasis will be given to specific platform features that interact directly with backends (eg. push notifications).  Students will need to have access to a Macintosh computer capable of running the latest version of Xcode.
 

Course Prerequisites

* Core Programming * iOS Application Development (50130) or Web Development (52553)

Other Prerequisites

* Proficient in developing native iOS mobile applications and/or web applications through formal coursework in the program * Proficient in writing complex, networked programs in Python * Proficient in working from the command line * Experience command line scripting * Understand HTTP request-response mechanisms, including request headers and response codes * All students should have access to a Macintosh computer running the latest version of MacOS and Xcode. Additional development used in the course are cross-platform (eg. VSCode). This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or take the online MPCS Unix Bootcamp Course on Canvas.

Overlapping Classes

This class is scheduled at a time that does not conflict with any other classes this quarter.

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 1) MS in Computational Analysis in Public Policy (Year 2) MS in Molecular Engineering MA in Computational Social Science (Year 1) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)