The Graphics Network

Course Outline - Python

My Python training is hands-on and practical - you learn by doing. The course content can be tailored to your exact requirements and I can offer additional modules on subjects such as creating extensions in C if required. The course can be completed in one session, typically 4 days, or split over separate weeks if you prefer.

Steve is an excellent communicator + his interest for the subject is infectious.

Expand all

About Python
Why Python was invented. What Python is good for (and what it's not). History and versions. Development tools. Virtual environments.
Getting Started
Scripts vs programs. A simple Python script. Running a program. The interactive interpreter. Layout and white space. Storing scripts. Python 'variables' and names. How typing works in Python. Some of Python's types. Type conversion. Python's operators.
Control Flow
if, else and elif. Interval comparisons. for, sequences and ranges. break, continue and pass. Iterating through strings and collections. while loops. Implementing menus.
Collections
Lists - Python's smart arrays. Dictionaries - Python's ubiquitous collection. Tuples - Python's most used but often misunderstood collection. List and dictionary comprehensions. Generators and coroutines. The other collections.
Functions
The purpose of functions. Writing and calling functions. Passing arguments. Named (keyword) arguments. Optional (default) arguments. Local and global variables. The main function and __name__. Modules and packages. Writing and using modules. Import options. Lambdas. Recursion and closures.
Files and Strings
Opening files for read, write and append. Reading and writing. Using 'with'. Text and binary files. Using delimited text files for data. Error and exception handling. Formatting strings. Splitting strings. Slicing strings.
Object-oriented Python
Object-oriented programming and its benefits. Components, classes and objects. Defining a class and creating objects. Initialization and the __init__ method. 'Private' fields. Functions, methods and attributes. Object collections. Treating objects as strings. Implementing standard operators. Decorators. Read-only and read-write properties. Inheritance. 'Duck typing' and polymorphism.
Multitasking
Multitasking concepts. Threads, processes and processors. Creating and communicating with a process. Creating and starting a thread. Thread limitations and the process solution. Queues and shared arrays. The concurrent.futures module. Thread and process pool executors.
Networking
Networking concepts. TCP/IP. Sockets. A Python client. A Python server. Supporting many clients.
Unit Testing
The importance of testing. DocTest. Unit testing and Test Driven Development. Writing tests. Running tests and fixing problems.
Databases
How databases work, and how Python interacts with them. SQLite, MySQL and others. Connections and cursors. Querying and manipulating data.
Optional - Introducing Graphical User Interfaces
Tkinter and its alternatives. Creating a GUI. Basic controls. Event handling.
Introducing Python for Data Science
pandas and DataFrames. NumPy and multi-dimensional arrays. Matplotlib and pyplot. Machine learning.
Instructor passed on info with enthusiasm and was very helpful at all times.