The Graphics Network
Course Outline - Python
While I do use slides for revision, the key thing about my Python training is
it's all hands-on and practical - you learn by doing. I have modules on the
Python language as well as its use in
data science and machine Learning. These can be given individually
or in combination, and a popular choice is to split a 5 day course into separate
weeks, for example 3 days on the language followed by 2 days on using
Python for data.
The Python Language
Why Python was invented.
What Python is good for (and what it's not).
History and versions.
Scripts vs programs.
A simple Python script.
Running a program.
The interactive interpreter.
Layout and white space.
Python 'variables' and names.
How typing works in Python.
Some of Python's types.
if, else and elif.
for, sequences and ranges.
break, continue and pass.
Iterating through strings and 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.
The purpose of functions.
Writing and calling functions.
Named (keyword) arguments.
Optional (default) arguments.
Local and global variables.
The main function and __name__.
Modules and packages.
Writing and using modules.
Recursion and closures.
Files and Strings
Opening files for read, write and append.
Reading and writing.
Text and binary files.
Using delimited text files for data.
Error and exception handling.
Object-oriented programming and its benefits.
Components, classes and objects.
Defining a class and creating objects.
Initialization and the __init__ method.
Functions, methods and attributes.
Treating objects as strings.
Implementing standard operators.
Read-only and read-write properties.
'Duck typing' and polymorphism.
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.
A Python client.
A Python server.
Supporting many clients.
The importance of testing.
Unit testing and Test Driven Development.
Running tests and fixing problems.
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.
Python for Data Science
IPython and Jupyter.
The SciPy family.
Anaconda and Miniconda.
Loading and storing data.
Grouping, merging and joining.
Slicing and indexing.
Time and date manipulation.
Hierarchies and multi-dimensional data.
ndarray - the multi-dimensional array.
Manipulation without using 'for'.
Shapes and axes.
Splitting and stacking.
Indexing and slicing.
Shallow and deep copies and views.
Plotting and charting
Matplotlib and pyplot.
Colours and appearance.
Using charts for analysis.
Integration with pandas and NumPy.
What machine learning means.
Training and test data.
Clustering, classification and regression.
Big data examples.