Advanced Python Programming

Course Description

A three-day Advanced Python course for participants with existing Python experience, who wish to deepen their programming knowledge further. Participants will be enabled to design robust Python applications using modern development methods, including how to use an AI Assistant to improve efficiency when writing code and adding AI features to Python applications.
3 Days
€1250.00
 

Who is the course for?

It is expected that attendees have some work experience with Python and/or have attended the Introductory Python course.

Learning Outcomes

At the conclusion of this course, attendees will be able to:

Design robust Python applications using modern development methods
Use Classes to maximise code reuse and portability
Use design patterns when creating Python applications
Design and create multi-threaded Python applications
Create standalone Python interface with Tkinter and PyQt
Work with JSON and XML data
Access HTML from web pages
Create web based applications with Flask
Access and Edit Data from a relational database
Create and run Unit tests
Use Numpy for numerical calculations
Use Pandas for data analysis
Create your own Python modules
Use an AI Assistant to improve efficiency when writing code
Add AI features to a Python application

Python Review

Data Types and Variables
Flow of Control
Functions
Lists, Tuples and Dictionaries
Files
Exceptions

Classes

Class variables and methods
Working with Properties
Special Class methods - "dunder" methods
The Python data model
Writing classes that can be sorted and iterated

Decorators

What is a decorator?
Some sample decorators
Decorators for oo programming @property @dataclass
Creating your own decorators

Test Driven Development

Test Driven Development – Unit Testing
Pytest
VSCode Pytest integration
Writing a test fixture to run for every test
Writing a test fixture to run for every session

Database Programming

The SQLite module
Database CRUD methods
The Data Access Object design pattern
Adding unit tests to the DAO

UI Programming

The TKInter module
A basic windowed application
Widgets
Adding a list
Event handlers

Using AI Assistants for Coding

Overview of AI
Warnings
Prompt engineering techniques
Getting ChatGPT or Copilot to write code
Iterative development

Working with APIs

The requests module
Making a call
Processing JSON / XML data
Blocking vs asynchronous calls
async await

PyQT UI Development

The PyQT module
PyQT vs TKInter
Creating a PyQT ui application
Adding widgets
Events
Listbox
Asynchronous api call from PyQT
Adding extra data to a ListBoxItem

Functional Programming

Functions are first class objects
Passing and returning functions
Lambda Functions
Map
Filter
Reduce

Web scraping

The BeautifulSoup module
Basic concepts of web scraping
Extracting all elements of a particular type
Filtering out unwanted tags
Extracting elements from tags
Sample application, extract information from worldometers.info

Regular Expressions

Creating expressions
Testing your expressions using regex101.com
Searching
Using groups in an expression
Replace
Sample - command line utility to obfuscate email addresses

Writing and Maintaining your Own Python Library

The __init__.py file
.toml files
Installing your module for local development
Adding an external dependency
Building your module

Introduction To Web Application Programming

The Flask module
Web development basics
Endpoints
Returning HTML
Using templates - the jinja template engine
Deploying your flask application

Adding AI To Your Python Application Using ChatGPT API

Making an API call from Python
Introducing the ChatGPT API
Making a request
A sample AI powered application

Understanding Git and GitHub

Code for course is shared using GitHub
Cloning a repository
Pushing to a repo
Some GitHub features
Configuring a GitHub action to run automated tests

Python for Data Science - Numpy and Pandas

The Data Science Handbook
Clone repository
Installing dependencies from requirements.txt
Review Jupyter Notebooks
Execute all code

Python For Data Visualisation - MatplotLib and Seaborn

The Matplotlib samples page
Copying and running a sample
dataforsci.com
Cloning repository
Installing dependencies
Review topics
Executing code

PythonPython ProgrammingAdvanced PythonData AnalyticsAIArtificial IntelligenceArtificialIntelligence