MPCS 51132 Full Stack Software Engineering (Summer 2023)

Section 1
Instructor(s) Gerber, Adam (gerber)
Location Online Only
Meeting Times Thursday 5:30pm - 8:30pm
Fulfills Elective Specialization - Application Development (APP-1)

Syllabus

Full-stack Software Engineering focuses on integrating components throughout the entire stack of a typical cloud-based client-server architecture, including: Android, Quarkus, Docker, MongoDB, AWS-API-Gateway, AWS-Lambda, AWS-LightSail, AWS-Cognito, AWS-Amplify, and AWS-SES. Students will develop projects of progressive complexity using the tools and technologies introduced in the course. For their final project, students will develop an Android client in Kotlin with authentication, as well as the corresponding server-side components which they will then deploy to their own AWS instances. In addition, students will have the option to train and integrate a machine-learning model which uses TensorFlow and a convolutional neural network for image recognition. Students will acquire a good understanding of cloud computing, as well as the differences between serverful and serverless cloud applications. Students will also learn best practices in developing full-stack applications which is an essential skill for any engineer aspiring to be a software architect.  

The programming languages used in Full-stack are Python and Kotlin. The first lecture will teach students how to program in Kotlin, which is a modern programming language that shares many characteristics with Python, including implicit typecasting. The fundamentals of Python will also be covered. 

 

Course Prerequisites

Core Programming

Other Prerequisites

Non-MPCS students need to complete the Course Request Form here: https://forms.gle/7mrwg2u3Knn8ogHL7. 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.

For MPCS students, this is an elective/specialization course and can only be taken after completion of three core classes or concurrent with third core class.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 56540-1 -- Software Quality Assurance

Eligible Programs

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