Summary and Schedule
This workshop will focus on tools and concepts that are a step beyond an introductory python workshop. The learner will be assumed to have a basic understanding of the following python / programming concepts:
- Basic python syntax
- Writing Conditionals and “For” loops
- Installing and running third party libraries
- Basic Version control with git
We will cover the following topics in the course of this workshop:
- Virtual Environments
- Classes and Object Oriented Programming
- Inheritance and Composition
- Creating a Python Module
- Static Code Analysis
- Unit Testing
- Publishing a python package
Prior to the workshop, please ensure that you have a working python
installation (3.9 or higher) and the uv package manager
installed. Setup instructions for both can be found below.
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Introduction | What is the goal of this workshop? |
| Duration: 00h 00m | 2. Virtual Environments |
What is a Virtual Environment? / Why use a Virtual Environment? How do I create a Virtual Environment? |
| Duration: 00h 00m | 3. Python Bits and Bobs | What are some elements of python that are not covered in beginner courses but are still useful to know? |
| Duration: 00h 12m | 4. Iterables and Generators |
What is an iterable in Python? What is a generator in Python? How can I succinctly create a list or dictionary in Python? What are sets and how can I use them in Python? |
| Duration: 00h 24m | 5. Collections & Iterables | What built in modules come with python that can help with iterable objects like lists and tuples? |
| Duration: 00h 36m | 6. The Logging Module |
What can I do to log my code more effectively than using print
statements? How can I set up and customize the logging module in Python? |
| Duration: 00h 48m | 7. Decorators & Caching |
What is a decorator and how can it be useful? What built in functionalities come with the functools module?What is caching and how can it speed up my code? |
| Duration: 01h 00m | 8. Creating A Module |
How do I create a Python module? How do I import a local module into my code? |
| Duration: 01h 12m | 9. Class Objects |
What is a class object? How can I define a class object in Python? How can I use a class object in my module? |
| Duration: 01h 24m | 10. More On Class Objects |
What are these methods that have __ before and after their
names?What are static properties and methods, and how do they differ from instance properties and methods? What are the @property, @classmethod, and
@staticmethod decorators, and how do they work?
|
| Duration: 01h 36m | 11. Extending Classes with Inheritance |
What if we want classes that are similar, but handle slightly different
cases? How can we avoid duplicating code in our classes? |
| Duration: 01h 48m | 12. Unit Testing |
What is unit testing? Why is unit testing important? How do you write a unit test in Python? |
| Duration: 02h 00m | 13. Inheritance and Composition |
How does Composition differ from Inheritance? When should I use Composition over Inheritance? |
| Duration: 02h 12m | 14. Static Code Analysis |
What is static code analysis? How can static code analysis tools help improve code quality? |
| Duration: 02h 24m | 15. Building and Deploying a Package | How do we build and deploy our project as a package? |
| Duration: 02h 36m | 16. Multiprocessing |
How can I speed up my code by running multiple processes at the same
time? What is multiprocessing and when should I use it? |
| Duration: 02h 48m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
This workshop content assumes that you have the following prerequisites:
- A laptop or desktop computer running Windows, MacOS, or Linux
- An installation of Python 3.9 or later
- An installation of the UV package management tool
- (Optional) A GitHub account
- (Optional) A TestPyPi account
- (Optional) Git Version Control, authenticated to your GitHub account
Software Setup - Python
This workshop relies on an installation of python on your device. You will need to have at least python version 3.9 or later for the project that we will create here.
If you do not already have python installed on the device you are bringing to the workshop, you can go to the python.org downloads page and download the most recent version.
Software Setup - UV
We will also be working with the UV package management tool. You can follow the install instructions found on the project website.
Software Setup - git and GitHub (Optional)
We will be demonstrating the use of GitHub during the workshop, however if you would prefer not to use the service it is not required to have an account in order to participate in the workshop.
We will be using git and GitHub to manage our code during the workshop. If you do not already have a GitHub account, you can create one for free at github.com.
Once you have an account, you will need to authorize git on your device to push code to your GitHub account. There are two ways to do this: using an SSH Keypair or a Personal Access Token (PAT). You can find directions for both methods below, but you only need to set up one of them.
Account Setup - TestPyPi (Optional)
We will be using TestPyPi to publish our package during the workshop. If you would like to follow along and publish your package to the test instance, you will need to create an account on TestPyPi if you do not already have one. You can do that at test.pypi.org.