General Information

About the online content

Drs. Punch and Enbody have combined over 50 years of teaching with Python to create an introduction to programming using Python. Our goal: when a student is presented with a problem their response will be "I can write a program to do that!" Students will learn about the design, implementation and testing of programs to solve problems with an emphasis on data manipulation using real-world, practical examples.

Our Approach

  • Read a topic in the text.
  • View a set of short videos demonstrating use (each video is less than 10 minutes).
  • Try it out.
  • "Rinse and repeat."

This course is based on our text, The Practice of Computing Using Python. This online material is a supplement to the book: read a topic, view videos on the topic, try it out. (We have not attempted to copy the 700+ pages of our book into a series of web pages – a foolish endeaver – so these online materials are not a substitute for reading the book.)


Given our focus on data manipulation we cover the organization of data into data structures (strings, lists, dictionaries, tuples, sets) and ways to manipulate the data (selection, iteration, methods, etc.). You need ways to get and report data (file I/O, matplotlib), and ways to organize your programs (functions, OOP). Along the way you will learn about user-defined classes.


Programming requires practice. There are multiple ways to practice. Our text has over 300 exercises. On Mimir there is a set of questions assigned to practice for each chapter.

Getting Started

If you don't have Python on your system, download the Anaconda Python 3.6 from here: IMPORTANT: Choose PYTHON 3.6


Start with our "welcome" video. (Here is the exoskeleton video I mention.)
If you haven't done so, a gentle introduction to programming can be found here : Hour of Code.

  1. Week1: Beginnings
  2. Week2: Control
  3. Week3: Strings
  4. Week4: Functions
  5. Week5: Files & Exceptions I
  6. Week6: Lists & Tuples
  7. Week7: Algorithms
  8. Week8: Dictionaries & Sets
  9. Week9: More on Functions and Mutables
  10. Week10: Program Development
  11. Week11: Classes Introduction
  12. Week12: Scope
  13. Week13: More on Classes
  14. Week14: More Files & Exceptions
  15. Week15: Last Week
  16. Extra: How to take exams (video)