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

Intermediate Python


5 days


The Intermediate Python Programming training course is for experienced programmers who want to expand and deepen their Python programming skills. The class starts with a focus on configuring a proper development environment, including editor configuration, code formatters/linters, static type checking, virtual environments, and package management. Then, the class goes deeper into Python concepts such as iteration, specialized data structures, advanced functions, and classes. Next, the focus transitions to the many concurrent programming options within Python. Topics like the GIL, variable locks, and such are covered.


  • Learn to set up a modern Python development environment with Visual Studio Code.
  • Explore how to create virtual environments and manage packages.
  • Apply static typing to Python scripts through Type Hints.
  • Go deeper into iteration through built-in data types, generators, and comprehensions.
  • Leverage specialized data structures and classes provided by the Python standard library.
  • Improve script execution with concurrent programming techniques, including multiprocessing and asynchronous programming.
  • Learn how better to leverage the file system and networking in Python scripts.


All students should be able to write simple Python scripts using basic data types, program structures, and the standard Python library.

Training Materials

All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises.

Software Requirements

Students will need a free, personal GitHub account to access the courseware. Students will need permission to install Python and Visual Studio Code on their computers. Also, students will need permission to install Python Packages and Visual Studio Extensions. If students are unable to configure a local environment, a cloud-based environment can be provided.


  • Introduction
  • Development Environment
    • Visual Studio Code Extensions for Python
    • Code Reformatting with Black
    • Code Linting with Ruff
    • Type Hints with MyPy
    • Debugging Python Scripts with VS Code
  • Package Management
    • Configure Python Version with Conda/Mamba
    • Setup a Python Virtual Environment
    • Setup a Conda/Mamba Virtual Environment
    • Managing Packages with Pip
    • Managing Packages with Conda/Mamba
  • Type Hints
    • Built-In Types
    • Generic Types
    • Optional, Union, Any
    • Function Types
    • Generator Types
  • Iterators
    • For-In vs. While Loops
    • Iterating over Lists and Dictionaries
    • Iterating over Generators
    • Range, Enumerate
    • Itertools Module
    • Slicing Lists
  • Strings
    • String Encoding
    • Formatting Strings
    • Multiline Strings
  • Logging
    • Using the built-in logger
    • Handlers
    • Formatters
    • Filters
  • Comprehensions
    • List
    • Dictionary
    • Set
    • Generator
    • Conditional Comprehensions
  • Data Structures
    • List
    • Dictionary
    • Sets
    • Collections
    • Named Tuple
    • Counters
    • Default Dict
    • Deque
    • Ordered Dict
  • Functions
    • Unpacking Parameters
    • Packing Arguments
    • Nested Functions
    • Function Decorators
    • Generators
    • Multi-Dispatch
  • Classes
    • Setter and Getters vs. Properties
    • Class Data and Class Methods
    • Static Methods
    • Inheritance
    • Multiple Inheritance
    • Mixin Pattern
    • Abstract Classes
    • Protocols
    • Special / Magic / dunder methods
    • Monkey Patching
  • Packages and Modules
    • Namespaces and Scoping
    • Creating Modules
    • Import Modules
    • Dynamic Importing of Modules
    • Executing Modules as Scripts
    • Using the init File Effectively
  • Concurrent Execution
    • What is Concurrent Execution?
    • Concurrent Execution Models
      • Threads
      • Async/Await
      • Multiprocessing
      • Subprocesses
    • CPU bound vs. IO Bound
    • Process Pools
    • Async Programming
    • Async File Systems
    • Async Http Requests
    • Using Threads with Async
  • Files, Folders, and Operating System
    • Current Working Directory
    • File / Folder Paths
    • Asynchronous Reading and Writing Files
    • Create, Remove, & List Directories
  • Text Data Formats
    • Reading/Writing XML Files
    • Reading/Writing CSV Files
    • Reading/Writing JSON Files
    • Reading/Writing YAML Files
    • Reading/Writing Excel Files
  • Networking
    • HTTP Requests
    • Sending Email
    • Sending/Receiving Files over FTP
    • Sending SMS Messages with Twilio
    • Connecting via SSH to Servers
  • Conclusion
<<Download>> Download Microsoft Word Course Outline Icon Word Version Download PDF Course Outline Icon PDF Version