MPCS 53120 Applied Data Analysis (Spring 2024)

Section 1
Instructor(s) Singh Sahota, Davender (dsahota)
Location Ryerson 255
Meeting Times Monday 5:30pm - 8:30pm
Fulfills Elective Specialization - High Performance Computing (HPC-2)


This course provides a self-contained introduction to computational data analysis from an applied perspective. It is intended as a standalone course for students who are not pursuing the full data analysis sequence in the MPCS. As such, students who have taken MPCS 53110 Foundations of Computational Data Analysis and received a grade of B or higher should take MPCS 53111 Machine Learning. Students that have taken or are currently enrolled in MPCS 53111 Machine Learning cannot register for this class. 

The course will cover topics in basic probability theory, statistical inference, and basic machine learning models typically used in data analysis. Each topic will be accompanied by example illustrations using Python. Many of the topics covered form the basis of almost all algorithms and machine learning methods used in data analysis. As an applied course, the emphasis will be on the use of these tools to solve problems. 

Textbook: An Introduction to Statistical Learning

Optional: The Elements of Statistical Learning; Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython; Deep Learning with Python

Course Contents:

  • Elementary Probability and Statistics
    • Probability Theory
    • Random Variables
    • Distributions and Densities
  • Software Platforms
    • Variables, objects, and functions in Python
    • Working with data frames
    • Data pre-processing and visualization
  • Linear Models/Statistical Inference
    • Least-squares regression
    • Logistic regression
    • Hypothesis testing
  • Model Assessment and Selection
  • Machine Learning Models
    • Perceptron classifier
    • Neural networks
    • Decision trees/Random forests
    • Support vector machines
  • Clustering 
    • Unsupervised clustering
    • Recommender systems
  • Introduction to Deep Learning
    • Computer Vision
    • Natural Language Processing


  • Homework Assignments (12-14)
  • Course Project

Course Prerequisites

MPCS 50103 Discrete Mathematics and Core Programming

Other Prerequisites

Knowledge of Python is required for this class.

This course requires competency in Unix, Linux, and GitHub. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here:

Overlapping Classes

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

  • MPCS 51083-2 -- Cloud Computing
  • MPCS 52018-1 -- Advanced Computer Architecture
  • MPCS 51032-1 -- Advanced iOS Application Development
  • MPCS 53113-1 -- Natural Language Processing
  • MPCS 51050-1 -- OO Architecture: Patterns, Technologies, Implementations

Eligible Programs

MS in Molecular Engineering 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