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.
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.
Textbook
Assignments
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 |
Intro Week 1 |
Ch 1, 2, 3, 4 participation (due on 7/2) | |
7/09 7/11 |
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) |
7/16 7/18 |
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) |
7/23 7/25 |
Ch 11: Lists and Dictionaries Ch 12: IO Files Ch 13: Plots |
Week 4 Exercise 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 | ||||
7/30 8/01 |
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) |
8/06 8/08 |
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) |
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.
Participation | zyBooks participation (5%), topHat (5%), zyBooks challenge (5%), teamLabs (5%) |
zyLabs and Final Program (FP) | 40%. Each counting for 20% |
Exam 1 and Exam 2 | 40%. Exams are cummulative. Exam 1 is 20% and Exam 2 is 20% or Exam 2 is 40%, whichever is higher |
Cornelia Ilin (cilin@wisc.edu) | |
Adam Theising (theising@wisc.edu) |
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.