Introduction to programming with Python: Lesson Design

Help Wanted

We are filling in the exercises below in order to make the lesson plan more concrete. Contributions (both in the form of pull requests with filled-in exercises, and comments on specific exercises, ordering, and timings) are greatly appreciated.

Process Used

Michael Pollan’s advice if he taught R or Python programming:

  1. Write code.
  2. Not too much.
  3. Mostly plots.

Michael Koontz

This lesson was developed using a slimmed-down variant of the “Understanding by Design” process. The main sections are:

  1. Assumptions about audience, time, etc. (The current draft also includes some conclusions and decisions in this section - that should be refactored.)

  2. Desired results: overall goals, summative assessments at half-day granularity, what learners will be able to do, what learners will know.

  3. Learning plan: each episode has a heading that summarizes what will be covered, then estimates time that will be spent on teaching and on exercises, while the exercises are given as bullet points.

Stage 1: Assumptions

Stage 2: Desired Results


How do I…


I can…


I know…

Stage 3: Learning Plan

Summative Assessment

Running and Quitting Interactively (9:00)

Variables and Assignment (9:15)

Data Types and Type Conversion (09:35)

Built-in Functions and Help (09:55)

Coffee: 15 min (10:20)

Libraries (10:35)

Reading Tabular Data (10:55)

DataFrames (11:15)

Plotting (11:45)

Lunch (12:15): 45 min

Lists (13:00)

Loops (13:20)

Looping Over Data Sets (13:45)

Writing Functions (14:00)

Variable Scope (14:25)

Coffee (14:45): 15 min

Conditionals (15:00)

Programming Style (15:25)

Wrap-Up (15:55)

Feedback (16:15)

Finish (16:30)