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.
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.
|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
|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
|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
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)|
|Ch 14: Data Visualization
Ch 15: Descriptive Statistics
Ch 16: Linear Regression
Other topics: bash basics, cloud computing, databases
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
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|
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.