Practical Python Programming
Upcoming Course Dates (Chicago):
Instructor: David Beazley
- Breakfast and lunch
- Course materials
- Python Essential Reference, 4th Ed.
This is a foundational course on Python programming with a focus
on the core language, programming environment, and script writing.
You'll learn about data manipulation using Python's built-in
datatypes, organizing code into functions, creating new objects with
classes, and writing larger programs consisting of modules and
packages. Practical advice concerning coding practice, error handling, testing, and debugging
is also a prominent concern. Finally, the underpinnings of popular standard library modules and
selected third-party extensions such as Numpy and Pandas are also
This course is best suited for people who would like to learn
the Python language in a highly organized manner from first principles. If you're
new to Python, but have experience with another programming language,
this course will give you the important concepts you need to get
started. If you've already learned some Python on your own, this
course will fill in gaps in your knowledge and help you write better
Each course day consists of a mix of prepared presentation (35%)
and hands-on programming exerices (65%). Participants should plan to
spend at least 4-5 hours each day working on the exercises and
using Python. The course is fully supported by a 450-page
guidebook, exercise solutions, and materials to allow further review
and study upon course completion.
Although no prior experience with Python is required, this course
assumes that students have prior experience with some other
introductory class for absolute beginners on how to program a computer!
Participants should already be familiar with the basic concepts of
programming such as variables, statements, control-flow, functions,
and data structures.
In addition, it is generally assumed that students already know how to work with
files, folders, editors, command shells, environment settings,
internet connections, and other essential aspects of using a
computer for software development.
- Introduction to Python. An introduction to the Python
interpreter, core language features, and basic datatypes. By the end
of this section, you'll be able to read files and perform simple
- Working with Data. A deeper dive into how to represent and
manipulate data structures. By the end of this section, you
will be writing programs that read data and perform more significant
kinds of calculations involving mapping, filtering, index building, and
- Program Organization, Functions, and Modules. The
problem of organizing larger programs into functions and modules is
described. You'll write a useful library function, learn how
to write executable scripts, and apply these concepts to your earlier
work. Common standard library modules are also introduced.
- Classes and Objects. An introduction to object-oriented
programming with a focus on using objects to make code more general
and extensible. Covers the basics of the class statement, data
abstraction, code reuse via inheritance, and ways to objects play nice
with the rest of Python using special methods.
- Inside the Python Object System. A brief look at how
objects are implemented under the hood in Python with an eye towards
some of the issues that arise in designing classes (e.g., encapsulation
of internals, controlling behavior, etc.).
- Iterators and Generators.
Covers the iteration protocol, iterable objects, generators and generator
expressions. You'll apply this knowledge to the problem of setting up
data processing pipelines--a particularly effective core organization technique for
addressing a wide range problems such as processing large datafiles, handling
data streams, and more.
- Some Advanced Topics. An assortment of more advanced
features you might encounter in Python programs. Includes variable
argument functions, anonymous functions (lambda), closures,
decorators, static and class methods.
- Testing, Debugging, and Software Development Practice.
This section discusses many isses that are considered important to
day-to-day Python software development. This includes program testing using the
unittest module, logging, and effective use of assertions. The
Python debugger and profiler are also briefly described.
- Packages. A discussion of how to take larger programs and
organize them into a package structure. Concludes with some information
on installing third-party packages and preparing your own code for
About the Instructor
The course is taught by David Beazley, author of the Python
Essential Reference, 4th Edition (Addison Wesley) and Python
Cookbook, 3rd Edition (O'Reilly Media). David has been actively
involved with the Python community since 1996 and was one of the early
pioneers of using Python with scientific software. From 1998-2005, he
was an assistant professor in the Department of Computer Science at
the University of Chicago.
On-site and Virtual Training
This course is available for on-site or virtual training of your team. More
information about on-site training can be found here.