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! |