Course 595:
Advanced Python Programming

(2 days)


Course Description

This course presents advanced topics in Python for professional programming. It contains sections on logging, debugging, profiling, and packaging. The course covers theory only where it will enhance programming ability. For each topic, the course presents one example, one or two new development exercises with class solutions, and one or two debugging exercises.

Learning Objectives

  • Programming tools: Git, Jupyter Notebook, and pydoc
  • Programming techniques: logging, debugging profiling, and packaging
  • New techniques introduced after Python 3.8
  • Details of decorators and closures
  • Why and how to use iterators and generators
  • Details of advanced data structures: collections, arrays, queues, sets, dictionaries
  • Network client-server: JSON and REST
  • Advanced introduction to concurrent programming: subprocesses, multiprocessing, threads, and concurrent.futures

Who Should Attend

Experienced Python programmers who want to expand their Python knowledge into advanced topics.

Suggested Prerequisites

Three months of active programming in Python or completion of an introduction and intermediate course in Python.

Anyone who is already proficient with:

  • All scalar and collection types
  • All flow control including loops, functions, if and exception handling
  • Creating classes with attributes and methods
  • Accessing external modules and packages
  • Applying iterators and generators
  • Running Unit Testing

Course Outline

Python Development Tools

  • Introduction to Python Documentation
  • pydoc and Docstrings
  • Typing Hints

Programming Techniques

  • How to Use Logging
  • Testing for Modification
  • Debugging Techniques for Faster Programming

Measuring Performance

  • Timing Functions
  • Profiling Memory

Some New Techniques and Modules

  • Dictionary
  • Formatted String Literals
  • Assignment Expression
  • Match Case Statement
  • Sets and Set Operators

Decorators, Closures, Lambdas, and Comprehensions

  • Introduction to Closures and Enclosed Functions
  • What Is a Decorator?
  • Understanding How Decorators Work
  • Writing a Simple Decorator

Data Structures

  • Counters
  • Arrays
  • Queues
  • Context Manager
  • Using with
  • Building a Context

Network Client Server

  • Basic Architectures
  • Exchanging Data Using JSON
  • Client and Server Programming for HTTP

RESTful Applications

  • Description
  • HTTP Requests and Responses

Concurrent Programming

  • What Is Concurrent Programming?
  • Working with Subprocesses
  • Techniques of Thread Programming
  • Details of Multiprocessing
  • Using concurrent.futures

Git and Revision Control

  • Basics of Git
  • Creating a Local Repository
  • Tracking Changes
  • Creating a Branch

Please Contact Your ROI Representative to Discuss Course Tailoring!