<<Download>> Download Microsoft Word Course Outline Icon Word Version Download PDF Course Outline Icon PDF Version

Updated June 2026

Advanced Python Programming

Class Duration

35 hours of live training delivered over 5 days.

Student Prerequisites

  • Some practical Python experience is required
  • Comfortable working knowledge of your operating system of choice (Linux, macOS, or Windows)
  • This course assumes you already know the fundamentals - they are not revisited beyond a short refresher
  • Students who need to build up those fundamentals first should consider Introduction to Python and Intermediate Python

Target Audience

This is an intermediate-and-beyond Python course aimed at developers who already write Python and want to take it further - whether that's powering web projects, automating routine work, or building production-grade tools and scripts.

Description

Advanced Python Programming is a hands-on course that takes experienced Python developers from intermediate fundamentals into the deeper waters of enterprise-grade development. Across five days, you'll work through OS-level scripting, graphical user interfaces, modular package design, unit testing, class design, network programming, database access, XML and JSON processing, and more. This is a working programmer's course - an in-depth tour of how the language is actually used in production, not a syntax-and-grammar walkthrough. The course is taught on a current Python release (3.13+, with 3.14 features highlighted where relevant).

The course runs roughly 50% hands-on, blending focused lecture and live demonstrations with practical lab exercises and group discussion. Sessions are led by working practitioners who pull examples and patterns straight from their day-to-day engineering work - so what you learn in class lines up with what you'll actually ship at the office.

Learning Outcomes

  • Tap into OS-level services from Python
  • Extend and enhance classes with advanced features
  • Build graphical interfaces for desktop applications
  • Apply Python's metaprogramming features with confidence
  • Author clean, maintainable modules and packages
  • Write and run unit tests with PyTest
  • Build multithreaded and multi-process applications
  • Talk to network services and remote systems
  • Craft polished, production-ready scripts
  • Query relational databases from Python
  • Read and produce XML, CSV, and JSON data
  • Work with additional data types if time permits
  • Apply type hints for clearer intent and contracts if time permits

Training Materials

Comprehensive courseware is distributed online at the start of class. All students receive a downloadable MP4 recording of the training.

Software Requirements

  • Permission to install Python 3.13 or later (installing with uv is demonstrated in class)
  • Text editor or IDE (VS Code with the Python extension recommended)
  • Permission to install Python packages, including PyQt6, pytest, and requests (SQLite, used for database labs, ships with Python)
  • Terminal/command-line access on Linux, macOS, or Windows
  • If a local environment is not possible, a cloud-based environment can be provided

Training Topics

Python Quick Refresher

  • Built-in data types
  • Lists and tuples
  • Dictionaries and sets
  • Program structure
  • Files and console I/O
  • If statement
  • for and while loops

Pythonic Programming

  • The Zen of Python
  • Tuples
  • Advanced unpacking
  • Sorting
  • Lambda functions
  • List comprehensions
  • Generator expressions
  • String formatting

OS Services

  • The os and os.path modules
  • Environment variables
  • Launching external commands with subprocess
  • Walking directory trees
  • Paths, directories, and filenames with pathlib
  • Working with file systems

Dates and Times

  • Basic date and time classes
  • Different time formats
  • Converting between formats
  • Formatting dates and times
  • Parsing date/time information

Binary Data

  • What is binary data?
  • Binary vs text
  • Using the struct module

Functions, Modules, and Packages

  • Four types of function parameters
  • Four levels of name scoping
  • Single/multi dispatch
  • Relative imports
  • Using init effectively
  • Documentation best practices

Intermediate Classes

  • Class/static data and methods
  • Inheritance (or composition)
  • Abstract base classes
  • Implementing protocols (context, iterator, etc.) with special methods

Metaprogramming

  • Implicit properties
  • globals() and locals()
  • Working with object attributes
  • The inspect module
  • Callable classes
  • Decorators
  • Monkey patching

Developer Tools

  • Analyzing programs with linters (pylint, ruff)
  • Using the debugger
  • Profiling code
  • Testing speed with benchmarking

Unit Testing with PyTest

  • What is a unit test?
  • Writing tests
  • Working with fixtures
  • Test runners
  • Mocking resources

Database Access

  • The DB API
  • Available interfaces
  • Connecting to a server
  • Creating and executing a cursor
  • Fetching data
  • Parameterized statements
  • Using metadata
  • Transaction control
  • ORMs and NoSQL overview

GUI Programming with PyQt

  • PyQt6 overview
  • Qt 6 architecture
  • Using Qt Designer
  • Standard widgets
  • Event handling
  • Extras

Network Programming

  • Built-in classes
  • Using requests
  • Grabbing web pages
  • Sending email
  • Working with binary data
  • Consuming RESTful services
  • Remote access (SSH)

Multiprogramming

  • The threading module
  • Sharing variables
  • The queue module
  • The multiprocessing module
  • Creating pools
  • The GIL today, and the free-threaded build (PEP 703/779)
  • About async programming with asyncio

Scripting for System Administration

  • Running external programs
  • Parsing arguments
  • Creating filters to read text files
  • Logging

Serializing Data - XML and JSON

  • Working with XML
  • XML modules in Python
  • Getting started with ElementTree
  • Parsing XML
  • Updating an XML tree
  • Creating a new document
  • About JSON
  • Reading JSON
  • Writing JSON
  • Reading/writing CSV files
  • YAML, other formats as time permits

Advanced Data Handling (time permitting)

  • Discover the collections module
  • Use defaultdict, Counter, and namedtuple
  • Create dataclasses
  • Store data offline with pickle

Type Hinting (time permitting)

  • Annotate variables
  • Learn what type hinting does NOT do
  • Use the typing module for detailed type hints
  • Understand union and optional types
  • Write stub interfaces
<<Download>> Download Microsoft Word Course Outline Icon Word Version Download PDF Course Outline Icon PDF Version