PDS I (IDS 590)

PDS I (IDS 590)#

Practical Data Science I is a flipped-classroom, exercise and project-focused course. It requires zero prior experience with programming and begins with an introduction to Python, computational thinking, and the principles of good programming using the 7 Steps method. The class focus then shifts to data analysis with an emphasis on the type of analyses of interest to social scientists and public policy students. The course provides students with experience manipulating and analyzing real (often messy, error-ridden, and poorly documented) data using the full range of Python data science tools (like the command line, git, VS Code, numpy, pandas, matplotlib, statsmodels, and more).

Syllabus#

A preliminary syllabus can be found here.

Class Schedule#

Class will be Tuesdays and Thursdays from 1:25pm-2:40pm (EDT).

Date, Rm

Topic

Do Before Class

In-Class Exercise

Tues, Aug 27

  • Class Introduction

  • Welcome to VS Code

Thurs, Aug 29

  • Setting Up An Algorithm

  • 7 Steps

  • Python Programming Fundamentals, Module 1

Tues, Sep 3

  • Ideas Into Code

  • Python Programming Fundamentals, Module 2

Thurs, Sep 5

  • Testing Your Code

  • Python Programming Fundamentals, Module 3

Tues, Sep 10

  • Lists In Depth

  • Python Programming Fundamentals, Module 4

Thurs, Sep 12

  • Sets and Dictionaries

  • Data Science with NumPy, Sets, and Dictionaries, Module 1

Tues, Sep 17

  • Command Line Basics

  • Advanced Command Line

  • Packages

  • Jupyter

Thurs, Sep 19

  • Python Debugger

  • R / Python Differences

  • Packages

Tues, Sep 24

  • Git

Thurs, Sep 26

  • Numpy Basics

Tues, Oct 1

  • Numpy Arrays

More Numpy Concepts:

Matrices:

ND Arrays:

  • Ex 1

  • (Finish other numpy)

Thurs, Oct 3

  • Pandas: Series

Tues, Oct 8

  • Pandas: DataFrames

Thurs, Oct 10

  • Pandas: Indices & Missing

Tues, Oct 15

FALL BREAK

Thurs, Oct 17

FALL BREAK (Not technically, but take the week)

Tues, Oct 22

  • Pandas: Cleaning

  • Tracebacks

Thurs, Oct 24

  • Plotting

Tues, Oct 29

  • Plotting

Thurs, Oct 31

  • Merging

Tues, Nov 5

  • Statistics with statsmodels

Thurs, Nov 7

  • Defensive Programming

  • Workflow

  • Backwards Design

  • Getting Help Online

  • Git and Github

Discuss mid-semester project in class - Opioid Project

Tues, Nov 12

  • Defensive Programming

  • Groupby / Split-Apply-Combine

Thurs, Nov 14

  • Pandas: Reshaping

  • Pandas: Categoricals

Tues, Nov 19

  • Machine Learning with sckikit-learn

Thurs, Nov 21

LAST CLASS

  • ROUGH DRAFT OF OPIOID PROJECT DUE, extendable to Morning of Mon Nov 26 but feedback may be later

Wed Dec 12

Final Project Report Due