AAE875 Fundamentals of OOP and Data Analytics

Lectures: TH 113 on Tu [2:00 - 5:00pm] and Th [2:45 - 5:45pm]

Labs: CS 1370 on Wed [2:00 - 5:00pm]


In the first part of the class students will learn to define and utilize fundamental programming topics including variables and expressions, data types, loops, functions, how to organize a program using classes, basic testing and debugging techniques, IO processing. Additional topics include an introduction to good programming practices including consistent style and meaningful code comments and version control (Git, GitHub). The second part of the class will introduce students to topics in data analytics, such as data visualization (incl. Jupiter and JupiterLab notebooks), descriptive statistics, linear regression, and data mining.

This class meets for two 3 hours class periods each week plus a weekly 3 hours lab over the semester.

There will be one Final Programming assignment (FP) related to applied economics that will explore all these topics.

  • Final Exam is on Monday (8/12) between 3-5 pm in CS 1370. To open the exam click HERE. I will provide the password @ 3pm.
  • The Final Program is now posted online (see instructions below). Remember the deadline is Aug 9! To submit your work create a PRIVATE repository on GitHub and add Adam (adamtheising) and I (corneliailin) as contributors.
  • Exam 1 will take place on Friday (07/19) between 10-12 pm in room TH 113. Topics covered correspond to Ch 1-8 in zyBooks. How to prepare? read lecture notes, team labs and zyBooks.
  • There will be no lab on Wednesday, July 3 (Adam is at a conference in France) and no class on Thursday, July 4 (happy 4th!).
  • zyBook participation activities for Ch 1-4 are due before the first day of class on July 2. Check Lecture Plan section.
Class Logistics

Course Prerequisites

  • AAE 636

Programming Tools

  • PythonTutor is an awesome tool to visualize code and get live help. Check it here.

  • PyDev is a plugin that enables Eclipse to be used as a Python IDE. For instalation we recommend that you use the resources described here.

  • Git is a distributed version control system designed to track changes in any types of files. Check instalattion instructions here.

  • GitHub provides hosting for files development version control using Git. Sign up for an account here.

  • Jupiter and JupiterLab notebooks are great tools for interactive data visualization. You can install them in your computer using pip or Anaconda. More information here.


  • The required e-book for the course is zyBooks. To access the material create an account and enter the zyBook code WISCAAE875IlinSummer2019. Any additional materials will be posted in the Announcements section.


  • zyBooks participation and challenge activities are due each Sunday (except for the first week of class).
  • zyLabs are due each Friday (except for the first week of class) and will be submitted via zyBooks.
  • The Final Programming assignment (FP) is due on the Friday following the last day of class and will be submitted via zyBooks.
  • All types of assignments are individual. There is absolutely no exception to this rule. See Honor Code and Collaboration Policy section.

Lecture Plan

Date zyBook Chapter Lecture Materials Sunday Deadlines (11:59 pm) Friday Deadlines (11:59 pm)
Fundamentals of OOP
7/02 Ch 1: Introduction to Python
Ch 2: Variables and Expressions
Ch 3: Data Types
Ch 4: Branching
Week 1
Ch 1, 2, 3, 4 participation (due on 7/2)
Ch 5: Loops
Ch 6: Functions
Ch 7: Strings
Week 2 Ch 1, 2, 3, 4 challenge (due on 7/7)
Ch 5, 6, 7 participation (due on 7/7)
Ch 1, 2, 3, 4 zyLabs (due on 7/12)
Ch 8: Classes
Ch 9: Exceptions
Ch 10: Modules
Week 3
Exercise (solution)
Ch 5, 6, 7 challenge (due on 7/14)
Ch 8, 9, 10 participation (due on 7/14)
Ch 5, 6, 7 zyLabs (due on 7/19)
Ch 11: Lists and Dictionaries
Ch 12: IO Files
Ch 13: Plots
Week 4
IO files (text.txt, numeric.txt, seeds.csv, titanic.csv)
Ch 8 challenge (due on 7/21)
Ch 11, 12, 13 participation (due on 7/21)
Ch 8, 9, 10 zyLabs (due on 7/26)
Data Analytics
Ch 14: Data Visualization
Ch 15: Descriptive Statistics
Ch 16: Linear Regression
Other topics: bash basics, cloud computing, databases
Week 5
IO files (affairs.csv)
Ch 11, 13 challenge (due on 7/28)
Ch 14, 15, 16 participation (due on 7/28)
Ch 11, 12, 13 zyLabs (due on 8/02)
GIS with Python
Final Program (FP) questions
Week 6
Geometric objects
Read, write, edit spatial data
Geocoding using OSM
Final Program (FP) (due on 8/09)

Team Labs

Lab GitHub: here

Date Lab Materials Lab Readings
7/10 Lab 1
7/17 Lab 2
T. Schelling (paper), (code)
7/24 Lab 3
7/31 Lab 4
8/07 Lab 5

Final Program

For this task you will download the 2014, 2015, 2016 Hospital Inpatient Discharges (SPARCS De-Identified) data from the State of NY. This data consists of 3+ million de-identified patient level observations.

You will develop a computer program that simulates a Data Analyst chatbot, capable of processing user input and returning desired output following the rules and directions in the script. The chatbot can help identify your computer’s operating system (OS), set the input and output paths, read input data stored into the memory of your computer, provide descriptive statistics for key variables in the analysis, and finally, run a linear regression model of your choice. Check a sample output here.

The main script and accompanying modules can be found here.

Exam 1
The first exam will be on July 19th from 10:00 - 12:00pm in TH 113.
Exam 2
The final exam will be on August 12th from 3:00 - 5:00pm in CS 1370.

Final grades will be determined by computing the weighted average of Participation, zyLabs, Final Program (FP), Exam 1 and Exam 2. Final letter grades may be curved upward, but a minimum guarantee is made of an A for 93 or above, AB for 87 or above, B for 80 or above, BC for 75 or above, C for 70 or above, and D for 60 or above.

ParticipationzyBooks participation (5%), topHat (5%), zyBooks challenge (5%), teamLabs (5%)
zyLabs and Final Program (FP)40%. Each counting for 20%
Exam 1 and Exam 240%. Exams are cummulative. Exam 1 is 20% and Exam 2 is 20% or Exam 2 is 40%, whichever is higher
Office Hours

Cornelia: Tu, from 12 - 1:45 pm, or by appointment

Adam: Wed, from 12 - 1:45 pm, or by appointment

Cornelia Ilin (cilin@wisc.edu)
Adam Theising (theising@wisc.edu)
Late Policy
You are allowed to use 24 hours throughout the semester to account for late assignment submissions.
Honor Code and Collaboration Policy

You can discuss assignments with your colleagues but you must write your own solutions. Make sure to cite everyone who helped!

We will provide a citation template that must accompany all your code submissions.

This class follows the UW-Honor Code.

The template of this website was adapted from TheoRekatsinas@UW and created by HazyReseach@Stanford.