Mark Lutz's Python Training


[Main page]

This page describes our class's curriculum—its content and structure. Sections on this page:

For class price details, see the prices page. For additional background details, see the about page. To inquire about current availability or to schedule a class at your site, please contact us.


Class Topics

This section presents the class's topics list (a.k.a. syllabus) in both full and short forms, and other topics-related documents.

Full Topics Outline

For a detailed course topics outline in either HTML or PDF format, please select one of the following links:

Short Topics Outline

As a brief summary, our class is a general Python course, composed of four main sections:


  1. Introducing Python
    • General Python Survey

  2. Python Fundamentals  (primary focus)
    • Using the Interpreter
    • Types and Operators
    • Basic Statements
    • Functions
    • Modules
    • Classes
    • Exceptions
    • Built-in Tools

  3. Python Applications  (short surveys)
    • System Interfaces
    • GUI Programming
    • Databases and Persistence
    • Text Processing
    • Internet Scripting
    • Extending Python in C/C++
    • Embedding Python in C/C++
    • Advanced topics

  4. Resources

Related Documents

For more on course content, you can also fetch the following PDF (printable) topics-related documents prepared for recent clients:

About Customizations

Please note that this class's pace and emphasis are flexible, but its content is not—we do not customize class content to include new topics outside its scope, because teaching too much means teaching nothing well.

Our class is an in-depth introduction to Python itself, with short surveys of common application topics. Its goal is to help students master Python fundamentals that span all domains, and this is a substantial task by itself. Although clients may always elect to stress or omit any of this class's components, topics such as specific modules, tools, or applications are better studied after the class than presented shallowly.

Material versus Instructor

Although our classes include substantial material, it's important to note that its role is largely just conversation starter. The primary value of any worthwhile live class is in the subject matter expert who leads it, not in canned "content"—which can, after all, be gathered by people who may be arbitrarily naive about a class's topic, and presented by people ill-equipped to respond to questions outside the scope of prepackaged materials.

We strongly recommend that clients carefully evaluate instructors in conjunction with outlines. A vendor who focuses only on the latter is unlikely to meet your training needs.


Class Format

All our classes are in-person training sessions for private groups, held at the client organization's site. This section describes the format of our class. Most of the class structure covered here may be tailored for student needs and backgrounds, even during the class itself.

Class Structure

This class provides a mix of lecture and hands-on lab time. Its standard format is a 3-day session, which provides an in-depth introduction to the Python language, as well as surveys of its most common application domains. For most clients, the 3-day class is the ideal way to get your students off to a running start on Python programming.

A typical 3-day course with lab time runs 8 hours per day, with 1-hour breaks for lunch each day. Although the exact schedule varies per student needs and interests, the course generally provides 4 to 5 hours of lecture and Q&A per day, with 4 lab sessions each day lasting 30 to 45 minutes each. Lab session times tend to be longer on the first two days (for core language topics), and shorter on the third (for advanced topics).

We also offer longer and shorter options for more custom needs:

See the prices page for the pricing structure for your preferred class length.

Lab Work

This course is designed to provide a hands-on, interactive learning experience. To help meet this goal, the class includes approximately 30 minutes of lab work after each hour of lecture and Q&A time. Lab sessions are generally run four times per day; they are a crucial learning component of the class, and are strongly recommended.

The labs ask students to write simple programs, as well as modify pre-coded examples. As time allows and interest warrants, later exercises demonstrate more advanced concepts and tools, and are sometimes conducted as a group effort. Answers to all lab exercises, as well as source code for all examples, is provided with the class workbook on student CDs (or otherwise) with the course materials as described below.

Topics Schedule

New: For a printable, more detailed, and up-to-date time breakdown, see the off-page hourly class session schedule. This PDF document shows how a typical 3-day class allocates lecture and lab times.

In terms of the topics list earlier on this page, a full 3-day session covers the Python Fundamentals material on days 1 and 2, and turns to the Python Applications topics on day 3. However, this can vary based upon student skill level, needs, and interaction. For example, some clients have opted to extend the fundamentals topics to 3 days to help beginners; allocated more time to specific topics of interest; or added extra days to focus on the more advanced applications topics. Class speed and focus are both flexible, and can be tuned during the class itself.

Python 2.X or 3.X?

As of 2011, our class covers both Python 2.X and Python 3.X (the incompatible newer version of the language), to a degree which depends upon client needs and interest. We will select a version to emphasize either before or at the start of the class. Although most students today still use 2.X code and systems, 3.X features are introduced if they are a part of your present or future goals. Students may use either 2.X or 3.X for their lab exercise work. For more on the 2.X/3.X choice, see this page.


Class Workbook

New: view the class workbook's root page here.

Our class includes student access to a 300+ page workbook (if printed), in a package which includes lecture materials, examples source code, lab exercises with solutions, and supplemental examples and tools.

The class workbook package contains all materials displayed, used, and required during the class. The workbook itself is distributed in HTML format which may be viewed by students on their computers using any Web browser of their choosing (e.g., Internet Explorer, Chrome, Firefox, or other).

As of 2015, the class workbook package is available in multiple formats:

All students are given the URL of the Web version in class. The Web version of class material is identical to the CD and USB versions, except that the Web distribution may not include Python installers which may be freely fetched from Python's website, python.org.

In addition to the Web version, clients may choose to have the material made available on either CDs or USB flashdrives distributed to students in class. These media become the property of students after the class, and include Python self-installers for Windows which students may run during the first lab session if required.

Workbook Media Options

Because the online format includes a downloadable zipfile containing all class materials, the CD and USB formats are redundant if your students will have Web access. Moreover, some sites may have security constraints that limit use of external CDs and USB sticks, but allow general Web access.

In light of such tradeoffs, the CD and USB formats are today free but optional. Please let us know your material mediums preference as part of your request:

  1. Web only
  2. Web plus CDs
  3. Web plus USB flashdrives
The default is to provide materials on the Web only (option 1), but please ask if you're interested in the CD or USB options.

However the class workbook package is made available, students may use any of its formats during class. The next sections cover a few workbook-related points.

Other Workbook Alternatives

In the unlikely event that your students will not be able to use Web access, a CD drive, or a USB port during the class, please ask about alternative arrangements for accessing the class workbook. Other options include:

None of these are normally required, but some sites have unique constraints.

Note: paper copies of the class workbook may be freely printed by the client and students if desired, but we do not provide paper workbooks copies because the workbook is available in a more convenient HTML format on the Web or other media. Instead, we recommend that students bring notebooks to class as desired, or take notes electronically on their laptops or classroom computers.

Suggested Supplemental Texts

Because students are provided with a complete class workbook, no other textbooks are required. However, some students may be interested in further reading before or after class, and some clients may wish to provide additional materials for students.

The latest editions of the books Python Pocket Reference and Learning Python are suggested as class supplements. The former is useful for looking up details quickly during and after class, while the latter parallels much of the class itself and may be useful for review before or after the class. More advanced students may also find the latest version of the book Programming Python useful for exploring application programming concepts such as GUIs, Internet, and databases introduced in later portions of the class.



This section describes the knowledge prerequisites assumed by our class. For more on this class's goals and scope, please see the Mission statement.

General Prerequisites

In general, this class is designed to work best for students with some prior programming background, though no specific programming language or application is assumed.

Absolute student prerequisites are difficult to set because success in this class depends upon both student background and motivation. While students should ideally have some past experience with at least one programming language, this class has worked well for both relative novices and advanced experts alike. Motivated students find that our classes provide the solid introduction needed to make the next steps of their learning process successful.

What About Beginners?

Absolute beginners who have never done any programming or scripting in the past may find our classes challenging, as we assume some exposure to basic programming concepts in the past. Moreover, some latter portions of the class may be more suitable for a programming proficient crowd. However, no specific prior programming language experience is assumed; the class's pace is dictated by the mix of its students' skill levels; and the more advanced topics late in the class can easily be treated as optional for less experienced students.

[Python Logo] Home Topics Prices Setup About Contact Books Main Top ©M.Lutz