DATA 690 Special Topics: Designing Data Driven Web Applications

Course Description: This course provides an introduction to designing data driven webapps. We will develop web applications for non data scientists to be able to derive decisions from data and create RESTful APIs to provide interfaces for other applications to use data science tools. We will use Flask, Jupyter widgets, Bokeh and Plotly.

Prerequisite: DATA 601: Introduction to Data Science, it is assumed you have a good understanding of python programming at this point.

Required Text: Instructors notes

Required Software: The course will be using Python 3 with the following libraries: numpy, sklearn, pandas, matplotlib, Tensorflow, Keras, Flask and Jupyter. It is the students responsibility to have a working environment. If you’d like to have the environment installed locally Anaconda is a Python distribution that has most of required libraries, the others can be installed with pip. We will be making use of Microsoft Azure resources, your UMBC enrollment gets you more than enough resources for this class.

Grade distribution: Homework 25%. Class participation 25%. Midterm Project 25%. Final Project 25%

Final grade will computed as follows: 90%-100% A. 80%-89% B. 70%-79% C. 60%-69% D. <60% F

Course Syllabus

  • Week 1 Why data driven web-apps? The difference between User Interfaces and REST.
  • Week 2 Jupyter Ipywidgets, Textboxes, buttons
  • Week 3 A just in time introduction to Python Classes, more on Jupyter IPywidgets
  • Week 4 Interaction between IPywidgets
  • Week 5 Interactive Visualizations, grids and pivot tables
  • Week 6 Layouts and Voila (full webapps)
  • Week 7 Start project 1
  • Week 8 Demo project 1
  • Week 9 Using RESTful APIs
  • Week 10 Creating a basic API with Flask
  • Week 11 Introduction to Azure
  • Week 12 Creating a Jupyter Webapp in Azure
  • Week 13 Creating a Flask App in Azure
  • Week 14 Start Project 2
  • Week 15 Demo Project 2