Introduction to Python Programming

Python is one of the most powerful and widely used programming languages available. Its easily understood syntax makes it a popular choice for new coders, while its library or open source modules for everything from web development to data analysis make it the tool of choice for many fields.

This course is designed to be an introduction to Python and its uses as a data analytics tool. The material will emphasize the core concepts in Python, specifically data types, data structures, functions, and classes and how they can be implemented and used to address data analytics problems. Popular modules used in data analysis will also be covered at a high level to include both NumPy, Matplotlib, and statsmodels.


This is a list of books that were referenced during the construction of the course, or will help to further expand your Python knowledge. If want more information on Python or how it can be used in data analytics, these books will provide a good staring point. None of these books are required for this course.

Python basics

Lutz, Mark, Learning Python, O'Reilly Media, 5th Edition, 2013.

Python analytics

McKinney, Wex, Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, O'Reilly Media, 1st Edition, 2012
Grus, Joel, Data Science from Scratch: First Principles with Python, O'Reilly Media, 1st Edition, 2015.

More advanced Python

Lutz, Mark, Programming Python: Powerful Object-Oriented Programming, O'Reilly Media, 4th Edition, 2011.
Slatkin, Brett, Effective Python: 59 Specific Ways to Write Better Python, Addison-Wesley Professional, 1st Edition, 2015.

Transitioning from Python 2.7x to Python 3.x

Ramalho, Luciano, Fluent Python: Clear, Concise, and Effective Programming, O'Reilly Media, 1st Edition, 2015.


Hastie, Trevor, et. al., The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer, 2nd Edition, 2016.

Course Fee: $695 includes breakfasts, lunches, refreshments and free parking for both days.

Course location

U-Square. Room 359
225 Calhoun Street
Cincinnati, OH 45219 (View in Google Maps)


Drew Armstrong is a computer engineer and statistician primarily interested in the application of statistical and machine learning tools to complex data problems. He has done research in a wide range of fields including cryptography and real estate analysis, but recently has been focusing on physics and cosmology problems. Specifically in identifying and classifying stellar objects from noisy images, finding planets around distant stars, and the identifying various near Earth objects.

Drew currently works as an Assistant Professor of Statistics at the Air Force institute of Technology and as an Adjunct Assistant Professor of Business Analytics at the University of Cincinnati Lindner College of Business. Drew previously spent three years working as a Lead Engineer for the Air Force's Cryptographic Systems Division and several months as Visiting Scientist in Lawrence Livermore National Lab's physics division.